Bert Hubert - Linux Advanced Routing & Traffic Control HOWTO
ip tunnel del netb
Конечно, вы можете изменить netb на neta и выполить это на маршрутизаторе B.
5.3.2. Тоннелирование IPV6.
За кратким описанием адресации IPv6 обратитесь к шеcтой главе: Тоннелирование IPv6 при помощьи Cisco и/или 6bone.
Продолжим с тоннелями.
Предположим у вас есть сеть IPv6 и вы хотите подключить ее к 6bone, или к другу.
Network 3ffe:406:5:1:5:a:2:1/96
Ваш адрес IPv4 это 172.16.17.18, а маршрутизатор 6bone имеет адрес 172.22.23.24.
ip tunnel add sixbone mode sit remote 172.22.23.24 local 172.16.17.18 ttl 255
ip link set sixbone up
ip addr add 3ffe:406:5:1:5:a:2:1/96 dev sixbone
ip route add 3ffe::/15 dev sixbone
Рассмотрим детальнее эти команды. В первой строке мы создали тоннельное устройство с именем sixbone. Тоннелю задан режим sit (что значит тоннелирование IPv6 в IPv4), целевой адрес и адрес источника. TTL установлен в максимальное значение, 255. Далее, мы активируем устройство. После этого задаем наш сетевой адрес и определяем маршрут для 3ffe::/15 (что есть вся сеть 6bone) через тоннель.
Тоннели GRE на сегодняшний день являются самыми предпочтительными. Это стандарт, который широко применяется за пределами сообщества Linux, а потому представляет собой Хороший выбор.
5.4. Тоннели неядерного уровня.
Существует буквально масса реализаций тоннелей неядерного уровня. Наиболее известными являются, конечно, PPP и PPTP, но их много больше (некоторые проприетарные, некоторые высокозащищенные, некоторые даже не используют IP) и это определенно выходит за рамки этого документа HOWTO.
Глава 6. Тоннелирование IPV6 при помощьи Cisco и/или 6bone.
Марко Давидс (Marco Davids) < [email protected]>
Note
Мэйнтейнеру:
Насколько я понимаю, этот способ тоннелирования IPv6-IPv4 по определению не GRE-тоннелирование. Вы можете тоннелировать IPv6 по IPv4 с помощью тоннельных устройств GRE (GRE тоннелирует что угодно через IPv4), но в этом варианте используются интерфейс ("sit") тоннелирующий только IPv6 через IPv4, а потому это что-то другое.
6.1. Тоннелирование IPV6.
Это еще один вариант применения возможностей тоннелирования Linux. Он популярен среди пионеров во внедрении протокола IPv6. Практический пример, описанный ниже, конечно не единственный способ организовать тоннелирование IPv6. Однако, этот метод часто используется при создании тоннеля между Linux и маршрутизатором Cisco. Опыт говорит, что многих пользователей интересует именно этот. Десять к одному — это относится и к вам ;-)
Небольшое отступление об адресах IPv6:
По сравнению с адресами IPv4, адреса IPv6 действительно большие: 128 бит по сравнению с 32 битами. Это дает нам именно то, что нужно – много, очень много IP-адресов, если быть более точным: 340,282,266,920,938,463,463,374,607,431,768,211,465. Кроме этого, IPv6 (или IPng, сокращение от IP Next Generation) позволяет уменьшить таблицы маршрутизации на магистральных маршрутизаторах Internet, упростить конфигурацию оборудования, увеличить безопасность на уровне IP и улучшить качество обслуживания (QoS).
Пример: 2002:836b:9820:0000:0000:0000:836b:9886
Использование адресов IPv6 может оказазаться весьма трудным. Потому, существуют некоторые правила:
• Не используйте лидирующие нули. Аналогично с IPv4.
• Используйте двоеточия для отделения каждой 16-битной (2-байтной) группы .
• Если в адресе есть последовательность нулей, ее можно записать как ::. Это можно сделать только один раз в адресе и только для кратных 16-ти битам последовательностей.
Так, например, адрес 2002:836b:9820:0000:0000:0000:836b:9886 может быть записан как 2002:836b:9820::836b:9886, что гораздо короче и удобней.
Другой пример, адрес 3ffe:0000:0000:0000:0000:0020:34A1:F32C может быть записан как 3ffe::20:34A1:F32C, что значительно короче.
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 через Интернет
На сегодняшний день существует две реализации IPSEC в Linux. Для ядер 2.2 и 2.4 — это пакет FreeS/WAN, который является первой основной реализацией IPSEC. Этот проект имеет два сайта: официальный — http://www.freeswan.org/ и неофициальный — http://www.freeswan.ca/. FreeS/WAN не вошел в состав ядра по ряду причин. Наиболее часто упоминается причина "политического" характера, связанная с Американскими законодательством, запрещающим экспорт технологий шифрования. Кроме того, этот пакет довольно трудно интегрируется в ядро Linux, что еще больше осложняет их слияние.