Выбрать главу

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

Сети основанные на IPv6 соединяются одна с другой инкапсуляцией IPv6 в IPv4 и пересылкой по существующей инфраструктуре IPv4.

Именно здесь применяются тоннели.

Для того, чтобы использовать IPv6, наше ядро должно иметь его поддержку. Существует много хороших описаний, как это сделать. Но все сводится к нескольким шагам:

• Возьмите достаточно новую версию дистрибутива Linux, с соответствуюшей glibc.

• Обновите исходные тексты ядра.

После этого можно приступать к сборке ядра, с включенной поддержкой IPv6:

• Перейдите в каталог /usr/src/linux и запустите:

• make menuconfig

• Перейдите в раздел "Networking Options"

• Отметьте пункты "The IPv6 protocol", "IPv6: enable EUI-64 token format", "IPv6: disable provider based addresses"

Tip

Не используйте "модули". Часто они плохо работают.

Другими словами, код поддержки IPv6 должен быть связан с ядром статически. Теперь сохраните конфигурацию и соберите ядро. 

Tip

Перед сборкой измените строку в Makefile: EXTRAVERSION = –x → EXTRAVERSION = –x-IPv6

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

Начать стоит с файла /usr/src/linux/README. После того, как вы разберетесь с пересборкой ядра и перезагрузитесь с новым ядром, выполните команду /sbin/ifconfig –a. Вы должны будете увидеть новый класс устройств sit0-device, где SIT означает Simple Internet Transition. Поздравляю, вы сделали большой шаг в направлении IP Next Generation ;-)

Теперь следующий шаг. Вы хотите подключить ваш хост или сеть к другой сети IPv6. Это может быть "6bone", которая и была создана для таких задач.

Предположим, что у вас имеется сеть IPv6 3ffe:604:6:8::/64 и вы хотите подключить ее к 6bone или аналогичной ей. Обратите внимание, что нотация /64 означает тоже самое, что и в обычном IP вдресе.

Ваш адрес IPv4 — 145.100.24.181, а адрес маршрутизатора 6bone — 145.100.1.5

# ip tunnel add sixbone mode sit remote 145.100.1.5 [local 145.100.24.181 ttl 255]

# ip link set sixbone up

# ip addr add 3FFE:604:6:7::2/126 dev sixbone

# ip route add 3ffe::0/16 dev sixbone

Обсудим приведенные команды. Первой строкой создается интерфейс тоннеля с именем sixbone и определяется его режим — sit (т.е. тоннелирование IPv6 в IPv4), а так же указываются адреса отправителя и получателя. Напоследок устанавливается максимальный TTL — 255.

В следующей строке интерфейс активируется (up). Далее, добавляется наш сетевой адрес и задается маршрут к сети 3ffe::/15 (что на сегодняшний день является всей 6bone) через тоннель. Если машина, на которой выполняются эти команды, является шлюзом IPv6, то нужно будет выполнить еще и такие команды:

# echo 1 >/proc/sys/net/ipv6/conf/all/forwarding

# /usr/local/sbin/radvd

radvd, как и zebra, демон маршутизации, поддерживающий автоконфигурационные возможности IPv6. Более детальную информацию ищите в Internet. Проверить настройку системы можно командой:

# /sbin/ip –f inet6 addr

Если на вашем шлюзе IPv6 запущен radvd и вы загрузите в вашей сети систему Linux с поддержкой IPv6, то сможете оценить возможности автонастройки IPv6:

# /sbin/ip –f inet6 addr

1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue inet6 ::1/128 scope host

3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100

inet6 3ffe:604:6:8:5054:4cff:fe01:e3d6/64 scope global dynamic

valid_lft forever preferred_lft 604646sec inet6 fe80::5054:4cff:fe01:e3d6/10

scope link

Теперь можно сделать следующий шаг и настроить bind для адресов IPv6. У типа A существует эквиваоент для IPv6: AAAA. Для in-addr.arpa эквивалентом является: ip6.int. По данной теме доступно множество информации.

Существует много приложений поддерживающих IPv6 и их количество все время увеличивается. Это secure shell, telnet, inetd, браузер Mozilla, веб-сервер Apache и многие другие. Но все это выходит за рамки данного документа ;-)

На стороне Cisco конфигурация должна выглядеть примерно так:

!

interface Tunnel1

description IPv6 tunnel

no ip address

no ip directed-broadcast

ipv6 address 3FFE:604:6:7::1/126

tunnel source Serial0

tunnel destination 145.100.24.181

tunnel mode ipv6ip

!

ipv6 route 3FFE:604:6:8::/64 Tunnel1

Если в вашем распоряжении нет Cisco, можно попробовать использовать тоннельные брокеры IPv6, которых сейчас в Internet существует предостаточное количество. В большинстве случаев они не откажут вам в создании дополнительного тоннеля к вам на своих маршрутизаторах Cisco. Чаще всего это можно сделать при помощи веб-интерфейса. Поищите фразу "ipv6 tunnel broker" в вашей любимой поисковой системе.

Глава 7. IPSEC: безопасная передача данных протоколами ip через Интернет