Глава 25. Различные аспекты работы в сети

Глава 25. Различные аспекты работы в сети

Русский перевод: Вадим Лопатюк

25.1. Мост

Мост может использоваться для объединения различных физических сетей в логическую сеть, т.е. соединить их на 2 уровне модели ISO-OSI, а не через 3 уровень, как это должен делать маршрутизатор. Драйвер «моста» NetBSD предоставляет функциональность моста в системе NetBSD.

25.1.1. Пример моста

В этом примере две физических сети будут объединены в одну логическую сеть, 192.168.1.0, используя мост NetBSD. Машина NetBSD, которая выполняет функцию моста, имеет два сетевых интерфейса, ne0 и ne1, которые оба подключены в одну физическую сеть.

Первый шаг - убедитесь, что ядро скомпилировано с поддержкой «моста». Поддержка включена в ядре GENERIC.

Когда система готова к созданию моста, его можно создать с помощью команды brconfig(8). Первый из интерфейсов моста должен быть создан. Следующей командой ifconfig будет создан «bridge0»:

$ ifconfig bridge0 create
  

Пожалуйста убедитесь, что в этот момент оба интерфейса ne0 и ne1 подняты. Следующий шаг - добавление интерфейсов ne0 и ne1 к мосту.

$ brconfig bridge0 add ne0 add ne1 up
  

Эта конфигурация может быть автоматически установлена созданием вайла /etc/ifconfig.interface, в таком случае /etc/ifconfig.bridge0, со следующим содержанием:

create
!brconfig $int add ne0 add ne1 up
  

После установки моста, конфигурация может быть просмотрена с помощью команды brconfig -a. Запомните, что если Вы хотите получить машину с IP адресом, Вам нужно назначать IP только одному из интерфейсов, являющихся частью моста.

25.2. Сетевая файловая система (Network File System - NFS)

Теперь, когда сеть работает, возможно сделать доступными файлы и каталоги через сеть, используя сетевую файловую систему (Network File System - NFS). С точки зрения разделения файлов, компьютер, который предоставляет доступ к этим файлам и каталогам, называется сервером, а компьютер использующий эти файлы и каталоги клиентом. Компьютер может быть клиентом и сервером в одно и то же время.

  • Ядро должно быть скомпилировано с установленными опциями для клиента и сервера (опции легко найти в конфигурационном файле ядра). См. Раздел 21.1, «Проверка конфигурации ядра» для более полного ознакомления с опциями ядра, связанными с NFS.

  • Сервер должен подключать rpcbind, mountd lockd statd и nfs_server демоны в /etc/rc.conf:

    rpcbind=yes
    mountd=yes
    nfs_server=yes
    lockd=yes 
    statd=yes 
  • Клиент должен подключать rpcbind, lockd statd и nfs_client демоны в /etc/rc.conf:

    rpcbind=yes
    nfs_client=yes
    lockd=yes 
    statd=yes 
  • Сервер должен иметь список экспортируемых каталогов в /etc/exports и запускать команду kill -HUP `cat /var/run/mountd.pid (hup mountd также должна работать!).

Клиентский хост может иметь доступ к удаленным каталогам через NFS если:

  • Хост сервера экспортирует каталоги клиенту. Список экспортируемых файловых систем NFS сервера может быть проверен командой showmount -e, см. showmount(8):

    # showmount -e 192.168.1.2
    Exports list on 192.168.1.2:
    /home        host1 host2 host3 
  • Хост клиента монтирует удаленные каталоги командой: mount 192.168.1.2:/home /home

Команда mount имеет богатый выбор опций для удаленных каталогов, которые не очень интуитивны (если не сказать больше).

25.2.1. Пример настройки NFS

Сценарий, описываемый здесь, следующий: пять клиентских машин (cli1, ..., cli5) разделяют несколько каталогов на сервере (buzz.toys.org). Некоторые каталоги экспортируются сервером для определенных клиентов, остальные каталоги доступны всем машинам. Все клиенты загружаются с сервера и должны примонтировать каталоги.

Каталоги экспортируемые сервером:

/export/cli?/root

Пять корневых каталогов для пяти клиентских машин. Каждый клиент имеет его собственный корневой каталог.

/export/cli?/swap

Пять каталогов подкачки для пяти разделов подкачки машин.

/export/common/usr

/usr каталог; общий для всех клиентских хостов.

/usr/src

Каталог /usr/src общий для всех клиентов.

На сервере существуют следующие файловые системы:

/dev/ra0a on /
/dev/ra0f on /usr
/dev/ra1a on /usr/src
/dev/ra2a on /export

Каждому клиенту необходимы следующие файловые системы:

buzz:/export/cli?/root on /
buzz:/export/common/usr on /usr
buzz:/usr/src   on /usr/src

Сервер имеет следующую конфигурацию:

# /etc/exports
/usr/src -network 192.168.1.0 -mask 255.255.255.0
/export -alldirs -maproot=root -network 192.168.1.0 -mask 255.255.255.0

На клиентских машинах /etc/fstab содержит:

buzz:/export/cliX/root /  nfs rw
buzz:/export/common/usr /usr  nfs ro,nodev,nosuid
buzz:/usr/src   /usr/src nfs rw,nodev,nosuid

На каждой клиентской машине подставляется ее номер вместо символа «X» в первой строке предыдущего примера.

25.3. Настройка NFS автомонтирования для /net с amd(8)

25.3.1. Введение

Проблема с NFS (и другими) монтированиями в том, что обычно Вы должны быть в пользователе root чтобы это сделать, что может быть довольно неудобно для пользователя. Используя amd(8) Вы можете настроить определенные каталоги (обычно /net), в котором он может выполнять любое NFS монтирование как обычный пользователь, так долго как долго будет доступна файловая система, экспортируемая NFS сервером.

Для проверки какие файловые системы экспортируются сервером используйте команду showmount с опцией -e:

$ showmount -e wuarchive.wustl.edu
Exports list on wuarchive.wustl.edu:
/export/home      onc.wustl.edu
/export/local      onc.wustl.edu
/export/adm/log     onc.wustl.edu
/usr        onc.wustl.edu
/         onc.wustl.edu
/archive       Everyone

Если Вы потом захотите смонтировать каталог для доступа к чему-либо в нем (например /archive/systems/unix/NetBSD), просто перейдите в этот каталог:

$ cd /net/wuarchive.wustl.edu/archive/systems/unix/NetBSD

Файловая система будет примонтирована (amd), и у Вас будет доступ к любым файлам так как будто каталог был примонтирован суперпользователем Вашей системы.

25.3.2. Фактическая настройка

Вы можете настроить такой каталог /net по следующим шагам (включая основную конфигурацию amd):

  1. in /etc/rc.conf, установите следующие переменные:

    amd=yes
  2. mkdir /amd

  3. mkdir /net

  4. Скопируйте /usr/share/examples/amd/amd.conf, в /etc/amd.conf:

    [ /net ]
    map_name =    /etc/amd/net  
  5. Скопируйте /usr/share/examples/amd/net как пример в /etc/amd/net:

    /defaults  type:=host;rhost:=${key};fs:=${autodir}/${rhost}/root
    *    host==${key};type:=link;fs:=/       
        host!=${key};opts:=ro,soft,intr,nodev,nosuid,noconn
  6. Перезагрузитесь или (пере)загрузите amd в ручную:

    # sh /etc/rc.d/amd restart

25.4. IPv6 соединения и переход сквозь 6to4

Этот раздел концентрируется на том, как получить сетевое соединение для IPv6 и - так как это до сих пор изначально не легко - говоря в дальнейшем об альтернативных способах исконного IPv6 соединения, возможно говорить как о переходном методе к естественному IPv6.

Поиск провайдера предоставляющего IPv6 обычно требует совсем не мало удачи. Что Вам необходимо еще для маршрутизатора, который будет способен управлять трафиком. Сегодня не все маршрутизаторы созданы с поддержкой IPv6 и, даже если это так, они обычно не имеют аппаратного ускорения IPv6 маршрутизации или перенаправления. Довольно дешевой альтернативой аппаратному маршрутизатору в наши дни часто используется стандартный ПК и настраивается как маршрутизатор, например, используя некоторые машины под управлением операционных систем Linux или BSD NetBSD, и программного обеспечения типа Zebra для управления протоколами маршрутизации. Это решение довольно популярно сегодня для использования там где необходимо подключение IPv6. Недостатки в том, что Вам необходима поддержка провайдером IPv6 и, что вам необходимо выделенное подключение только для IPv6.

Если это не вариант для Вас, Вы все еще можете получить соединение IPv6 используя туннели. Вместо открытого обмена IPv6, пакеты IPv6 инкапсулируются в пакеты IPv4, как показано на Рисунок 25.1, « Часто используемый способ для перехода - туннелирование IPv6 в пакетах IPv4 ». Используя существующую IPv4 инфраструктуру, инкапсулированные пакеты отправляются на IPv6 соединение, которое затем удаляет инкапсуляцию и перенаправляет пакеты IPv6 через родной IPv6.

Рисунок 25.1. Часто используемый способ для перехода - туннелирование IPv6 в пакетах IPv4

Часто используемый способ для перехода - туннелирование IPv6 в пакетах IPv4

Когда используются туннели, тогда имеется две возможности. Одна - использовать так называемый «настроенный» туннель, другая называется «автоматический» туннель. «Настроенный» туннель это единственное, что необходимо подготовить на обоих концах туннеля, обычно подключен с несколькими типами регистрации для обмена настроечной информацией. Пример такого настроенного туннеля это инкапсуляция IPv6-через-IPv4, описанная в [RFC1933], и это осуществляется, например устройством gif(4)1 находящимся в NetBSD.

А «автоматический» туннель состоит из публичного сервера, имеющего несколько типов соединений IPv6, например через 6Bone. Этот червер делает данные этих соединений публичными и, также, запускает протокол туннелирования который делает ненужной явную регистрацию мест использующих его как восходящее соединение. Пример хорошего использования такого протокола это механизм 6to4 описанный в [RFC3056] и это осуществляется в устройстве stf(4) находящемся в NetBSD. Другой механизм, который не требует регистрации IPv6 информации, это механизм 6over4, который осуществляет транспортировку IPv6 через подключение группового вещания сети IPv4, вместо, например ethernet или FDDI. 6over4 описан в [RFC2529]. Основной недостаток, что Вам необходимо создавать инфраструктуру группового вещания. Если у Вас ее нет, ее настройка стоит больших усилий чем установка и настройка прямого IPv6 туннеля, так что это обычно не стоит затрачиваемых в этом случае усилий.

25.4.1. Поднятие 6to4 IPv6 и запуск

6to4 простейший путь для получения соединения IPv6 для хостов, которые имеют лишь IPv4 восходящее соединение, если Вы ранее усвоили в Раздел 20.7, «Интернет протокол следующего поколения - IPv6». Это можно использовать со статическими также хорошо, как и с динамически назначенными адресами IPv4, например как в модемных сценариях удаленных соединений. Когда используется динамическая адресация IPv4, смена IP адреса станет проблемой для входящего трафика, т.е. Вы не сможете запускать выделенные сервера.

Пример конфигурации, полученной в этом разделе для NetBSD 1.5.2.

25.4.2. Получение адресного пространства IPv6 для 6to4

Установка 6to4 IPv6 на Вашей стороне не заключается одном адресе IPv6; Вместо этого Вы обретаете всю /48 подсеть! Адреса IPv6 производятся из Вашего (единственного) адреса IPv4. Префикс адреса «2002:» зарезервирован для 6to4 основанных адресов (т.е. адреса IPv6 производятся из IPv4 адресов). Следующие 32 бита Ваш IPv4 адрес. В результате чего /48 сеть, которую Вы можете использовать как Вам заблагорассудится. Здесь остается 16 бит пространства для 216 IPv6 подсетей, которые могут иметь до 264 узлов каждая. Рисунок 25.2, « 6to4 получает IPv6 из IPv4 адреса » иллюстрирует создание IPv6 адреса (диапазона) из Вашего IPv4 адреса.

Благодаря префиксу 6to4 и Вашему уникальному всемирному адресу IPv4, этот блок адресов уникален и он отображается на Вашу машину, несущую адрес IPv4 в запросе.

Рисунок 25.2. 6to4 получает IPv6 из IPv4 адреса

6to4 получает IPv6 из IPv4 адреса

25.4.3. Как соединиться

В отличие от установки конфигурируемого «туннеля IPv6-через-IPv4», Вы не имеете зарегистрированного как 6bone шлюза, который будет в дальнейшем перенаправлять Вам любой IPv6 трафик (инкапсулированный в IPv4). Взамен, как Ваш адрес IPv6 происходит из Вашего IPv4 адреса, любые ответы могут быть отправлены через Ваш ближайший шлюз 6to4 к Вам. Деинкапсуляция пакетов выполняется через 6to4 совместимый интерфейс, который затем перенаправляет результирующие пакеты IPv6 в соответствии с Вашими настройками маршрутизации (в таком случае у Вас имеется более одной машины подключенной к вашей 6to4 сети).

Для отправки IPv6 пакетов, 6to4 совместимый сетевой интерфейс должен получать IPv6 пакет и инкапсулировать его в IPv4 пакет. Вам все еще необходимо 6bone подключение 6to4 шлюза как выделенного подключения, который должен деинкапсулировать Ваши пакеты и перенаправлять их на 6Bone. Рисунок 25.3, « Запрос и ответ могут быть смаршрутизированы через различные шлюзы в 6to4 » это иллюстрирует.

Рисунок 25.3. Запрос и ответ могут быть смаршрутизированы через различные шлюзы в 6to4

Запрос и ответ могут быть смаршрутизированы через различные шлюзы в 6to4

25.4.4. Соображения безопасности

А отличие от установки «сконфигурированного туннеля», Вы обычно устанавливаете пакетные фильтры на блок пакетов 6to4 из неавторизованных источников, как и ожидается 6to4 полностью работает. Так злонамеренные пользователи могут посылать пакеты с неправильной/опасной нагрузкой IPv6. Если Вы не готовы все фильтровать на Вашей стороне шлюза, пакеты со следующими характеристиками не должный приниматься как действительные 6to4 пакеты, а некоторые брандмауэры оказываются лояльными к:

  • неопределенному IPv4 адресу источника/адресата: 0.0.0.0/8

  • адресу локальной машины на выходе (v4) источника/адресата: 127.0.0.0/8

  • широковещательные IPv4 в источнике/назначении: 224.0.0.0/4

  • ограниченные широковещательные: 255.0.0.0/8

  • широковещательный адрес подсети как источник/адресат: зависит от Ваших IPv4 настроек

Страница помощи NetBSD stf(4) описывает некоторые общие конфигурационные ошибки перехватываемые по умолчанию стеком KAME так же хорошо как некоторые будущие советы по Фильтрации, но имейте в виду, что из-за требований этих фильтров, 6to4 не абсолютно безопасен. Все же, если подделанные 6to4 пакеты вызывают проблемы, Вы можете использовать аутентификацию IPsec, чтобы убедиться, что пакеты IPv6 не модифицированы.

25.4.5. Данные, необходимые для установки 6to4

В порядке установки и конфигурирования IPv6 через 6to4, необходимо знать некоторые пункты настроек. Это:

  • Ваш локальный адрес IPv4. Его можно определить с помощью команд 'ifconfig -a' или 'netstat -i' на большинстве Unix систем. Если Вы используете шлюз с трансляцией адресов или еще что-то, убедитесь что используется официальный, видимый снаружи адрес, а не Ваш частный (10/8 или 192.168/16).

    Мы будем использовать 62.224.57.114 как локальный адрес IPv4 в нашем примере.

  • Ваш локальный IPv6 адрес получается из IPv4 адреса. См. в Рисунок 25.2, « 6to4 получает IPv6 из IPv4 адреса » как это сделать.

    Для нашего примера, это 2002:3ee0:3972:0001::1 (62.224.57.114 == 0x3ee03972, 0001::1 выбран произвольно).

  • Вы хотите использовать адрес IPv6 для 6to4 шлюза восходящего соединения. Адрес IPv6 может это делать, так как он также содержит адрес IPv4 в стандартной трансляции 6to4.

    Мы будем использовать 2002:c25f:6cbf::1 (== 194.95.108.191 == 6to4.ipv6.fh-regensburg.de).

25.4.6. Подготовка ядра

Для обработки пакетов 6to4, ядро операционной системы должно знать об этом. Для этого драйвер, компилируемый в ядро, знает об 6to4 и как им управлять.

Для ядра NetBSD, включите следующее в Ваш конфигурационный файл ядра, чтобы подготовить его к использованию IPv6 и 6to4:

options INET6     # IPv6
pseudo-device stf    # 6to4 IPv6 over IPv4 encapsulation

Заметьте, что устройство stf(4) не включено по умолчанию. Пересоберите ядро и затем перезагрузите систему с использованием нового ядра. Пожалуйста сверьтесь с Глава 28, Компиляция ядра для ознакомления с информацией по конфигурированию, сборке и установке нового ядра!

25.4.7. Установка 6to4

Этот раздел описывает команды установки 6to4. Вкратце, этот раздел выполняет следующее:

  1. Конфигурацию интерфейса

  2. Установку маршрутизатора по умолчанию

  3. Установку объявления маршрутизатора, если необходимо

Первый шаг в установке 6to4 - назначение IPv6 адреса 6to4 интерфейсу. Это достигается с помощью команды ifconfig(8). Принимая во внимание вышеописанный пример конфигурации, командой для NetBSD будет:

# ifconfig stf0 inet6 2002:3ee0:3972:1::1 prefixlen 16 alias (local)

После конфигурирования 6to4 устройства этой командой, необходимо установить маршрутизацию, для перенаправления всего трафика IPv6 на шлюз 6to4 (восходящего соединения). Лучший способ это сделать это настройки маршрутизатора по умолчанию, это делается командой:

# route add -inet6 default 2002:cdb2:5ac2::1 (remote)

Заметьте, что в NetBSD устройство stf(4) определяет адрес IPv4 восходящего соединения 6to4 из таблицы маршрутизации. Используя это свойство легко установить Ваш собственный 6to4 шлюз (восходящего соединения) если Вы имеете восходящее соединение IPv6, например, через 6Bone.

После этой команды, Вы подключитесь к миру IPv6 - поздравляем! Принимемые соглашения имен теже что и в IPv4, Вы теперь можете пинговать сайты IPv6, типа like www.kame.net или www6.NetBSD.org:

# /sbin/ping6 www.kame.net

Последний шаг установки IPv6 через 6to4, Вам необходимо установить объявления маршрутизатора, если Вы имеете несколько хостов в Вашей сети. Пока возможно установить 6to4 на каждом узле, сделав так, в результате в очень дорогой системе маршрутизации от одного узла к другому - пакеты будут отправляться к удаленному маршрутизатору 6to4, который затем маршрутизирует пакеты обратно узлу окружения. Вместо этого, установка 6to4 на одной машине и общение непосредственно родным IPv6 это предпочтительный положение вещей.

Первый шаг на пути к этому - назначение IPv6 адреса Вашему ethernet. В следующем примере мы примем подсеть «2» из сети IPv6, которая использует для локальных ethernet и MAC адресов ethernet интерфейс 12:34:56:78:9a:bc, т.е. Ваш локальный IP адрес ethernet инрефейса шлюза будет 2002:3ee0:3972:2:1234:56ff:fe78:9abc. Назначьте этот адрес Вашему ethernet интерфейсу, например:

# ifconfig ne0 inet6 alias 2002:3ee0:3972:2:1234:56ff:fe78:9abc

Здесь, «ne0» пример Вашего интерфейса ethernet карты. Это, конечно, отличается от ваших установок, в зависимости от того, какой тип карты Вы используете.

Следующее, что необходимо - убедиться в настройках маршрутизатора, который будет в действительности перенаправлять пакеты с локального устройства 6to4 на устройство ethernet и обратно. Для подключения перенаправления пакетов IPv6, установите «ip6mode=router» в /etc/rc.conf, который в результате установит переменную sysctl «net.inet6.ip6.forwarding» в «1»:

# sysctl -w net.inet6.ip6.forwarding=1

Рисунок 25.4. Подключение перенаправления пакетов, необходимого для маршрутизатора 6to4

Подключение перенаправления пакетов, необходимого для маршрутизатора 6to4

Для установки объявления маршрутизатора в BSD, необходимо проверить файл /etc/rtadvd.conf. В нем можно настраивать множество вещей, но обычно настройка по умолчанию не содержит никаких данных. По умолчанию адреса IPv6 найденные на всех сетевых интерфейсах маршрутизатора будут объявлены.

После проверки конфигурации объявлений маршрутизатора на правильность и включения перенаправления IPv6, может быть запущен демон управления. Под NetBSD, он называется 'rtadvd'. Возможен ручной его запуск (для тестирования его в первое время) или через сценарии системной загрузки, и просмотр всех Ваших локальных узлов, автоматическая настройка объявлений адреса подсети в добавок к их существующим локальным адресам соединений.

# rtadvd

25.4.8. Быстрый старт использования pkgsrc/net/hf6to4

Далее. Мы уже имеем описание как работает 6to4 и как его настроить вручную. Для автоматизации пути, чтобы сделать осчастливить всех, например, для выхода в онлайн, удобен пакет 'hf6to4'. Он определит Ваш IPv6 адрес из IPv4, назначенного Вам провайдером, затем сообщит Вам, что Вы подключены.

Шаги по установке пакета pkgsrc/net/hf6to4:

  1. Установка пакета или сборка его из pkgsrc командой установки pkg_add пакета 6to4-1.2.

    # cd /usr/pkgsrc/net/hf6to4
    # make install
  2. Убедитесь, что у Вас имеется псевдоустройство stf(4) в Вашем ядре, см. выше.

  3. Настройка пакета 'hf6to4'. Сначала, скопируйте /usr/pkg/share/examples/hf6to4/hf6to4.conf в /usr/pkg/etc/hf6to4.conf, затем настройте переменные. Заметьте, что этот файл имеет иснтаксис /bin/sh.

    # cd /usr/pkg/etc
    # cp ../share/examples/hf6to4/hf6to4.conf hf6to4.conf
    # vi hf6to4.conf

    Пожалуйста, посмотрите страницу помощи hf6to4(8) чтобы понять значение всех переменных, которые Вы можете установить в hf6to4.conf. Если вы имеете динамический IP через PPP и не хотите запускать объявленный маршрутизатор для других машин IPv6 в Вашей домашней или офисной сети, Вам не нужно ничего настраивать. Если Вы хотите установить объявленный маршрутизатор, Вам необходимо установить in_if на внутреннем (ethernet) интерфейсе, например.

    $in_if="rtk0";   # Inside (ethernet) interface
  4. Теперь подключайтесь, затем вручную запустите команду 6to4:

    # /usr/pkg/sbin/hf6to4 start
  5. После этого вы подключитесь, используйте ping6(8): чтобы увидеть, когда все работает:

    # ping6 www.NetBSD.org
    PING6(56=40+8+8 bytes) 2002:d954:110b:1::1 --> 2001:4f8:4:7:2e0:81ff:fe52:9a6b
    16 bytes from 2001:4f8:4:7:2e0:81ff:fe52:9a6b, icmp_seq=0 hlim=60 time=250.234 ms
    16 bytes from 2001:4f8:4:7:2e0:81ff:fe52:9a6b, icmp_seq=1 hlim=60 time=255.652 ms
    16 bytes from 2001:4f8:4:7:2e0:81ff:fe52:9a6b, icmp_seq=2 hlim=60 time=251.237 ms
    ^C
    --- www.NetBSD.org ping6 statistics ---
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/std-dev = 250.234/252.374/255.652/2.354 ms
    
    # traceroute6 www.NetBSD.org
    traceroute6 to www.NetBSD.org (2001:4f8:4:7:2e0:81ff:fe52:9a6b)
    from 2002:d954:110b:1::1, 64 hops max, 12 byte packets
     1 2002:c25f:6cbf:1::1 66.31 ms 66.382 ms 69.062 ms
     2 nr-erl1.6win.dfn.de 76.134 ms * 76.87 ms
     3 nr-fra1.6win.dfn.de 76.371 ms 80.709 ms 79.482 ms
     4 dfn.de6.de.6net.org 92.763 ms 90.863 ms 94.322 ms
     5 de.nl6.nl.6net.org 116.115 ms 93.463 ms 96.331 ms
     6 nl.uk6.uk.6net.org 103.347 ms 99.334 ms 100.803 ms
     7 uk1.uk61.uk.6net.org 99.481 ms 100.421 ms 100.119 ms
     8 2001:798:28:300::2 89.711 ms 90.435 ms 90.035 ms
     9 ge-1-0-0-2.r20.londen03.uk.bb.verio.net 179.671 ms 185.141 ms 185.86 ms
    10 p16-0-0-0.r81.nycmny01.us.bb.verio.net 177.067 ms 179.086 ms 178.05 ms
    11 p16-1-1-3.r20.nycmny01.us.bb.verio.net 178.04 ms 179.727 ms 184.165 ms
    12 p16-0-1-1.r20.mlpsca01.us.bb.verio.net 249.856 ms 247.476 ms 249.012 ms
    13 p64-0-0-0.r21.snjsca04.us.bb.verio.net 239.691 ms 241.404 ms 240.998 ms
    14 p64-0-0-0.r21.plalca01.us.bb.verio.net 247.541 ms 246.661 ms 246.359 ms
    15 xe-0-2-0.r20.plalca01.us.bb.verio.net 240.987 ms 239.056 ms 241.251 ms
    16 ge-6-1.a01.snfcca05.us.ra.verio.net 240.868 ms 241.29 ms 242.337 ms
    17 fa-5-2.a01.snfcca05.us.ce.verio.net 249.477 ms 250.4 ms 256.035 ms
    18 2001:4f8:4:7:2e0:81ff:fe52:9a6b 268.164 ms 252.97 ms 252.366 ms 

    Пожалуйста запомните, что traceroute6 отображает лишь v6 переходы, любые внутренние туннели невидимы и не отображаются.

  6. Если это работает, Вы можете добавить следующие строки в Ваш /etc/ppp/ip-up сценарий, для запуска команды каждый раз при соединении:

    logger -p user.info -t ip-up Configuring 6to4 IPv6
    /usr/pkg/sbin/hf6to4 stop
    /usr/pkg/sbin/hf6to4 start
  7. Если Вы хотите маршрутизировать IPv6 для Вашей локальной сети, Вы можете указать 6to4.pl устанавливать объявление маршрутизатора также и для Вас:

    # /usr/pkg/sbin/hf6to4 rtadvd-start

    Вы можете вставить эту команду в /etc/ppp/ip-up также как делали это ранее.

  8. Если Вы изменили /etc/ppp/ip-up для установки 6to4 автоматически, Вам лучше всего изменить и /etc/ppp/ip-down тоже, чтобы отключить его, когда вы разрываете соедиенние. Это то, что необходимо вставить в /etc/ppp/ip-down:

    logger -p user.info -t ip-down Shutting down 6to4 IPv6
    /usr/pkg/sbin/hf6to4 rtadvd-stop
    /usr/pkg/sbin/hf6to4 stop

25.4.9. Известные шлюзы 6to4

На сегодняшний день существует не очень много общедоступных шлюзов 6to4 и из нескольких возможных Вам необходимо выбрать ближайший к Вам. Список известных рабочих шлюзов 6to4 доступен здесь: http://www.kfu.com/~nsayer/6to4/. На поверку только 6to4.kfu.com и 6to4.ipv6.microsoft.com являются рабочими. Cisco имеет еще один, но Вам необходимо зарегистрироваться перед его использованием, см. http://www.cisco.com/ipv6/.

Также экспериментальный сервер 6to4 расположен в Германии, 6to4.ipv6.fh-regensburg.de. Этот сервер работает под NetBSD 1.6 и установлен с использованием способа, описанного выше. Полную конфигурацию машины можно увидеть по адресу: http://www.feyrer.de/IPv6/netstart.local.

25.4.10. Туннелирование 6to4 через брандмауэр IPFilter

Протокол 6to4 инкапсулирует пакеты IPv6 в IPv4 и назначает им их собственный IP тип, который блокируется большинством брандмауэров как неизвестный, так как их полезный тип не совпадает ни с чем вроде "TCP", "UDP" или "ICMP". Которые обычно и требуются плохим парням для проникновения через брандмауэр. Обычно, Вам необходимо установить Ваш шлюз 6to4 на той машине, которая напрямую подключена к (IPv4) Интернет и которая обычно использует брандмауэр. В таком случае Вам необходимо запускать Ваш шлюз 6to4 за брандмауэром, Вам необходимо прорубить дыру в брандмауэре, чтобы дать пройти пакетам 6to4. Здесь описано как это сделать!

Для примера посчитаем, что Вы используете интерфейс "ppp0" на брандмауэре для подключения к Интернет.

Вставьте следующие строки в /etc/ipf.conf чтобы разрешить Вашему брандмауэру IPfilter пропускать все пакеты 6to4 (строки заканчивающиеся означают продолжение, пожалуйста вставляйте следующие за ними строки в эту же строку):

# Handle traffic by different rulesets
block in quick on ppp0 all head 1
block out quick on ppp0 all head 2

### Incoming packets:
# allow some IPv4:
pass in log quick on ppp0 proto tcp from any to any 
	port = www flags S keep state keep frags	group 1
pass in  quick on ppp0 proto tcp from any to any 
	port = ssh keep state 				group 1
pass in  quick on ppp0 proto tcp from any to any 
	port = mail keep state				group 1
pass in log quick on ppp0 proto tcp from any to any 
	port = ftp keep state				group 1
pass in log quick on ppp0 proto tcp from any to any 
	port = ftp-data keep state			group 1
pass in log quick on ppp0 proto icmp from any to any	  group 1
# allow all IPv6:
pass in  quick on ppp0 proto ipv6  from any to any group 1
pass in log quick on ppp0 proto ipv6-route from any to any group 1
pass in log quick on ppp0 proto ipv6-frag from any to any group 1
pass in log quick on ppp0 proto ipv6-icmp from any to any group 1
pass in log quick on ppp0 proto ipv6-nonxt from any to any group 1
pass in log quick on ppp0 proto ipv6-opts from any to any group 1
# block rest:
blockin log quick on ppp0 all        group 1

### Outgoing packets:
# allow usual stuff:
pass out  quick on ppp0 proto tcp from any to any flags S 
	keep state keep frags group 2	
pass out  quick on ppp0 proto udp from any to any   
	keep state keep frags group 2
pass out  quick on ppp0 proto icmp from any to any   
	keep state   group 2
# allow all IPv6:
pass out  quick on ppp0 proto ipv6  from any to any group 2
pass out log quick on ppp0 proto ipv6-route from any to any group 2
pass out log quick on ppp0 proto ipv6-frag from any to any group 2
pass out log quick on ppp0 proto ipv6-icmp from any to any group 2
pass out log quick on ppp0 proto ipv6-nonxt from any to any group 2
pass out log quick on ppp0 proto ipv6-opts from any to any group 2
# block rest:
block out log quick on ppp0 all				  group 2
  

Теперь любой хост в Вашей сети может отправлять (правила "out") и получать (правила "in") v4-инкапсулированные пакеты IPv6, позволяя устанавливать на каждом из них шлюз 6to4. Конечно Вы хотите сделать это всего лишь на одном хосте и использовать родной IPv6 между Вашими хостами и Вы может также желаете усилить это более ограниченными наборами правил, пожалуйста посмотрите ipf.conf(5) для более подробного ознакомления с правилами IPFilter.

После того как Ваш брандмауэр настроен пропускать инкапсулированные пакеты IPv6, вы, возможно, захотите настроить ваш шлюз 6to4 для мониторинга трафика IPv6 или даже его ограничения. Чтобы это сделать Вам необходимо получше настроить IPfilter на Вашем шлюзе 6to4. Для базового мониторинга, включите "ipfilter=yes" в /etc/rc.conf и вставьте следующее в /etc/ipf6.conf:

pass in log quick on stf0 from any to any
pass out log quick on stf0 from any to any
  

Это позволит журналировать весь (IPv6) трафик идущий из и в Ваш "stf0" туннелированного интерфейса. Вы можете добавлять правила фильтра как Вам необходимо.

Если Вас более интересует состояние трафика чем обычный просмотр трафика Вашей сети, используйте MRTG в тандеме с "net-snmp" пакетом, который рекомендуется вместо анализа файлов журнала IPfilter.

25.4.11. Выводы и рекомендуемая литература

В сравнении с IPv4 сегодня, IPv6 остается на ранних стадиях развития. Это необходимо там, где доступен весь набор сервисов и клиентов, только упущена пользовательская база. Надеемся, что информация, предоставленная здесь, поможет людям лучше понять что такое IPv6 и начать играть с ним.

Несколько ссылок для интересующихся:

  • Пример сценария для установки 6to4 на BSD основанных машинах доступен на http://www.NetBSD.org/packages/net/hf6to4/. Сценарий определяет ваш IPv6 адрес и устанавливает 6to4 и (если требуется) объявление маршрутизатора. Он создан для работы с настройками удаленного соединения с динамическим адресом IPv4.

  • Предлагаемое здесь сегодня не стандартно для IPv6 в краю Linux, здесь альтернативные инструкции установки для большинства дистрибутивов. Установку IPv6 на Debian GNU/Linux можно найти на http://people.debian.org/~csmall/ipv6/setup.html.

  • В BSD Unix реализована ее собственная документация IPv6, интересные URL: http://www.NetBSD.org/Documentation/network/ipv6/ для NetBSD, http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-ipv6.html для FreeBSD.

  • Проекты, работающие над реализацией стека протоколов IPv6 для свободно распространяемых Unix подобных операционных систем - KAME для BSD и USAGI для Linux. Их сайты можно найти на http://www.kame.net/ и http://www.linux-ipv6.org/. Список хостов и маршрутизаторов можно найти на http://playground.sun.com/pub/ipng/html/ipng-implementations.html.

  • С другой стороны официальный архив RFC на ftp://ftp.isi.edu/in-notes, информация по IPv6 может быть найдена на различных Интернет сайтах. Первый и главный, сайт 6Bone на http://www.6bone.net/ самый упоминаемый. 6Bone стартовал как тестовая площадка для IPv6, а стал теперь важнейшей частью IPv6 соединений в мире. Другие Интернет страницы содержащие относящуюся к IPv6 информацию: http://www.ipv6.org/, http://playground.sun.com/pub/ipng/html/ и http://www.ipv6forum.com/. Большинство из этих сайтов содержат дополнительные ссылки убедитесь, что просмотрели все!

Обновлено: 16.03.2015