Pull to refresh

Плавный переход сети компании на IPv6

Reading time4 min
Views43K
Здравствуйте, хабрасообщество.

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

image

Что мы имеем? Маршрутизатор, подключенный к сети интернет, выполняющий функции NAT для внутренних сетей. Сети находятся в vlan10 и vlan20.

Конфигурация маршрутизатора следующая:
Router(config)#int fa0/0
Router(config-if)#ip address 192.0.2.2 255.255.255.252
Router(config-if)#ip nat outside
Router(config)#int fa0/1.10
Router(config-if)#encapsulation dot1Q 10
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int fa0/1.20
Router(config-if)#encapsulation dot1Q 20
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#ip nat pool natpool 192.0.2.2 192.0.2.2 netmask 255.255.255.252
Router(config)#ip nat inside source list 100 pool natpool overload
Router(config)#ip access-list extended 100
Router(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any
Router(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 any


Для того, чтобы перейти на IPv6 – необходимо получить блок адресов. Переговоры с двумя провайдерами, к которым подключен офис компании, завершились не так, как хотелось бы – один провайдер тестирует IPv6 внутри своей сети и клиентам пока не выдает блоки, второй же еще даже не задумывался об использовании IPv6. Недолгие поиски привели на TunnelBroker от Hurricane Electric. Из предлогаемых возможностей после регистрации – до 5 блоков /64 или /48 (на выбор). Тем, кто еще не сталкивался с IPv6 довольно таки трудно представить себе сколько это адресов. Для сравнение – весь IPv4 блок – 232=4,2×109 адресов. В IPv6 блок /64 – это 264=1,8×1019 адресов. На 10 порядков больше, нежели весь блок IPv4.

Для получения блока IPv6-адресов необходимо заполнить одну форму, в которой указать внешний IPv4-адрес и выбрать один из серверов (на момент написания статьи всего 18 серверов – 3 в Азии, 6 в Европе и 9 в Северной Америке).

image

После получения блока вносим изменения на маршрутизатор.
Включаем поддержку ipv6 маршрутизации:
Router(config)#ipv6 unicast-routing
Router(config)#ipv6 cef


Создаем тунельный интерфейс с провайдером-IPv6 (TunnelBroker):
Router(config)#interface Tunnel0
Router(config-if)#description Hurricane Electric IPv6 Tunnel Broker
Router(config-if)#no ip address
Router(config-if)#ipv6 address 2001:470:18:11A::2/64
Router(config-if)#ipv6 enable
Router(config-if)#tunnel source GigabitEthernet0/0.510
Router(config-if)#tunnel destination 216.218.221.6
Router(config-if)#tunnel mode ipv6ip


Добавляем маршрут по-умолчанию:
Router(config)#ipv6 route ::/0 Tunnel0

Если на вашем маршрутизаторе настроен DNS, то можно уже насладиться работой через IPv6:
Router#ping ipv6.google.com
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2A00:1450:4008:C00::6A, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/69/84 ms


На этом этапе у меня возник вопрос – как перенести старую адресацию, чтобы не пришлось запоминать для каждого компьютера по два IP адреса – IPv4 и IPv6. Выход есть. Для начала необходимо перевести IPv4 в hex, чем и займемся:
192.168.1.0 → C0.A8.1.0
192.168.2.0 → C0.A8.2.0


Запишем в виде, более соответствующем IPv6: C0A8:0100 и C0A8:0200. Ведущие нули можно опускать, поэтому C0A8:100 и C0A8:200.

Наши сети 192.168.1.0 и 192.168.2.0 имели маску 255.255.255.0 (или более коротко — /24). Вспомним немного теории – маска /24 говорит о том, что начальные 24 бита не меняются в пределах сети, а могут меняться лишь оставшиеся 8 бит (IPv4 адрес состоит из 32 бит – 4 разряда по 8 бит). Нам необходимо сделать аналогичную маску для новой IPv6-сети, однако IPv6 адрес состоит из уже 128 бит. Последние 8 бит могут меняться, первые 120 бит – не могут. Маска: /120.

Когда мы определились с нужной маской – необходимо ввести старые сети в новый IPv6-блок.
192.168.1.0/24 → 2001:470:18:11A::C0A8:100/120
192.168.2.0/24 → 2001:470:18:11A::C0A8:200/120


Настраиваем маршрутизатор:
Router(config)#int fa0/1.10
Router(config-if)#ipv6 enable
Router(config-if)#ipv6 address 2001:470:18:11A::C0A8:101/120
Router(config)#int fa0/1.20
Router(config-if)#ipv6 enable
Router(config-if)#ipv6 address 2001:470:18:11A::C0A8:201/120


Настройка маршрутизатора окончена.

Осталось на компьютерах включить поддержку IPv6, прописать адрес, маску и шлюз. Для примера настроим компьютер, с адресом 192.168.2.189:
192.168.2.189 → C0.A8.2.BD → C0A8:2BD → 2001:470:18:11A::C0A8:2BD
Маска: /120
Шлюз по-умолчанию: 2001:470:18:11A::C0A8:201


Отключаем Teredo (если включен):
>netsh interface teredo set state disabled
OK.


Проверяем работу через IPv6:
>ping ipv6.google.com
Обмен пакетами с ipv6.l.google.com [2a00:1450:4008:c00::6a] с 32 байтами данных:
Ответ от 2a00:1450:4008:c00::6a: время=80мс
Ответ от 2a00:1450:4008:c00::6a: время=65мс
Ответ от 2a00:1450:4008:c00::6a: время=81мс
Ответ от 2a00:1450:4008:c00::6a: время=76мс

Статистика Ping для 2a00:1450:4008:c00::6a:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 65мсек, Максимальное = 81 мсек, Среднее = 75 мсек


Вдобавок можно насладиться анимированой черепахой на www.kame.net (если у Вас черепаха не анимирована – значит Вы попали на сайт через IPv4).

Хотелось бы подвести итоги. Нет необходимости настраивать проброс портов, можно зайти с помощью ssh или удаленного рабочего стола на любой компьютер/сервер внутри локальной сети. Однако очень открыто стоит вопрос безопасности – понятие внутренней сети пропадает, теперь это часть интернета.
Tags:
Hubs:
+80
Comments42

Articles