Я хочу настроить туннельный сервер SIT IPv6-in-IPv4. Я прочесал Вики-страница Ubuntu IPv6 но все ориентировано на подключение к туннелю в качестве клиента, а не на его хостинг. Я хотел бы использовать 6in4, поскольку он довольно простой / универсальный и, кажется, без проблем работает с большинством домашних маршрутизаторов / межсетевых экранов.
Это будет в первую очередь использоваться нашими сотрудниками системных администраторов для доступа к IPv6 из дома по DSL / кабельным соединениям, которые изначально его не поддерживают. Причина, по которой я хотел бы запустить это сам, двоякая:
Это будет использоваться 5-10 пользователями одновременно.
В моем распоряжении есть оборудование, которое можно использовать в качестве хоста:
Заранее спасибо.
Если не ошибаюсь, SIT симметрична: с обеих сторон выполняется одно и то же.
Конфигурация должна быть довольно простой:
Cisco IOS:
interface Tunnel0
description 6in4 to <client>
no ip address
ipv6 enable
ipv6 address 2001:db8:::1/64
tunnel source <local ipv4>
tunnel destination <client ipv4 addr>
tunnel mode ipv6ip
Можжевельник JunOS
interfaces {
ip-0/1/0 {
unit 0 {
tunnel {
source <local ipv4>;
destination <client ipv4 addr>;
}
family inet6 {
address 2001:db8::1/64;
}
}
}
}
Linux iproute2:
ip tunnel add tun-6in4 mode sit remote <client ipv4 addr> local <local ipv4>
ip link set tun-6in4 up
ip addr add 2001:db8:::1/64 dev tun-6in4
У меня нет опыта настройки ASA, но это тоже возможно.
Однако у 6in4 есть несколько недостатков:
N туннелей на узловом узле для N одноранговых узлов
Нет простого способа обновить одноранговый IP-адрес для клиентов с динамическим IP-адресом.
Возможно, вы захотите взглянуть на динамические технологии VPN, такие как OpenVPN (решает проблему №2, хотя устройства будут генерироваться динамически) или олово (решает оба) или любой другой, способный инкапсулировать Ethernet (например, IPv6) с устройствами ответвления.
Предоставление сотрудникам интернет-провайдера домашнего подключения к IPv6 - это очень важный.
6in4 является симметричным, поэтому вы настраиваете туннель одинаково на обоих концах (формируя между ними виртуальный «кабель»). Затем маршрутизация выполняется как обычно: «клиентская» сторона использует туннель в качестве шлюза по умолчанию, а «сервер» направляет префиксы по соответствующему туннелю. Этот последний бит может потребовать некоторого (ручного или автоматического) перераспределения маршрутов.
На Cisco IOS redistribute static
в конфигурации вашего протокола маршрутизации - это простой способ сделать это, но вы можете захотеть отфильтровать перераспределение. Обычно я перераспределяю «клиентские» маршруты в BGP. Он поддерживает чистоту IGP (например, ISIS или OSPF), что помогает ускорить конвергенцию вашего ядра после прерывания связи или сбоя. А BGP предлагает гораздо лучшие параметры фильтрации. Например, прикрепляя сообщества к перераспределенным маршрутам.
Чтобы немного расширить ответ, данный Петрусом. Я дам обозначение Cisco, но это будет работать в других операционных системах примерно так же.
Вы можете иметь нумерованные и ненумерованные ссылки. Пронумерованные ссылки могут облегчить отладку, но несколько усложнят ваш план адресации. В обоих случаях вам придется делегировать пользователю немного адресного пространства. Адреса по ссылке используются только на ссылка, и у пользователя, вероятно, также должны быть адреса для сетей за ссылкой. Итак, маршрут а /56
или /48
по ссылке.
Начнем с ненумерованной ссылки. Создайте ссылку с помощью ipv6 enable
для создания локальных адресов для ссылки. Что-то вроде этого на стороне «сервера»:
interface Tunnel1
description 6in4 to <client-1>
no ip address
ipv6 enable
tunnel source <local ipv4>
tunnel destination <client-1 ipv4 addr>
tunnel mode ipv6ip
interface Tunnel2
description 6in4 to <client-2>
no ip address
ipv6 enable
tunnel source <local ipv4>
tunnel destination <client-2 ipv4 addr>
tunnel mode ipv6ip
ipv6 route 2001:db8:a001::/48 Tunnel 1
ipv6 route 2001:db8:a002::/48 Tunnel 2
router bgp 65530
address-family ipv6
redistribute static
А на «клиентской» стороне:
interface Tunnel1
description 6in4 to <server>
no ip address
ipv6 enable
tunnel source <client-1 ipv4>
tunnel destination <server ipv4 addr>
tunnel mode ipv6ip
interface FastEthernet0/0
ipv6 address 2001:db8:a001:1::1/64
ipv6 route ::/0 Tunnel 1
И теперь точно так же с пронумерованными ссылками. Преимущество состоит в том, что вы можете легко пропинговать другую конечную точку туннеля. Что-то вроде этого на стороне «сервера»:
interface Tunnel1
description 6in4 to <client-1>
no ip address
ipv6 address 2001:db8:0:a001::1/64
tunnel source <local ipv4>
tunnel destination <client-1 ipv4 addr>
tunnel mode ipv6ip
interface Tunnel2
description 6in4 to <client-2>
no ip address
ipv6 address 2001:db8:0:a002::1/64
tunnel source <local ipv4>
tunnel destination <client-2 ipv4 addr>
tunnel mode ipv6ip
ipv6 route 2001:db8:a001::/48 2001:db8:0:a001::2
ipv6 route 2001:db8:a002::/48 2001:db8:0:a002::2
router bgp 65530
address-family ipv6
redistribute static
redistribute connected
А на «клиентской» стороне:
interface Tunnel1
description 6in4 to <server>
no ip address
ipv6 address 2001:db8:0:a001::2/64
tunnel source <client-1 ipv4>
tunnel destination <server ipv4 addr>
tunnel mode ipv6ip
interface FastEthernet0/0
ipv6 address 2001:db8:a001:1::1/64
ipv6 route ::/0 2001:db8:0:a001::1
я выбираю 2001:db8:0:a001::/64
для соединения точка-точка, связанного с делегированием 2001:db8:a001::/48
для удобства. Вы можете выбрать любой префикс, который вам нравится, но сохранение узнаваемости объектов с адресным пространством размером с IPv6 может помочь ...