Використання спільної підмережі IPv6 між двома офісами з'єднаними IPv4 через тунель 6to4.

Маємо один офіс “A” з сервером (Server A) котрий має реальні статичні адреси IPv4 та IPv6 та підмережу IPv6.
Інший офіс “B” з сервером (Server B) котрий має реальний статичний адрес IPv4.
Задача використати IPv6 адреси під мережі офісу “A” у офісі “B”.

З’єднання офісів з використанням протоколу IPv6 та тунелю 6to4 над протоколом IPv4. [3]
Обладнання
Офіс “A”, Server A:
OC: FreeBSD 9.1
інтерфейс em0: ipv4 (зовнішня мережа)
інтерфейс em0: ipv6 (зовнішня мережа)
інтерфейс em1: ipv6 (внутрішня мережа)
інтерфейс stf0: ipv6 (тунель 6to4)
Офіс “B”, Server B:
OC: FreeBSD 9.1
інтерфейс em0: ipv4 (зовнішня мережа)
інтерфейс em1: ipv6 (внутрішня мережа)
інтерфейс stf0: ipv6 (тунель 6to4)
Планування адресного простору
Сервер офісу “A” має адресний простір IPv6: 2001:DB8:0000::/48. [1]
Цей адресний простір розподілимо на декілька під мереж /64 [4].
Для офісу “A” виділимо під мережу : 2001:DB8:0000:000A::/64
Для офісу “B” виділимо під мережу : 2001:DB8:0000:000B::/64
Сервер офісу “A” має:
зовнішній адрес IPv6: 2001:DB8:0000::1/48. [1]
зовнішній адрес IPv4: 203.0.113.1/24 [2]
тунелювальну адресу IPv6: 2002:CB00:7101::1 [6]

Приклад отримання адреси для тунелю 6to4
Сервер офісу “B” має:
зовнішній адрес IPv4: 198.51.100.1/24 [2]
тунелювальну адресу IPv6: 2002:C633:6401::1 [6]
внутрішній адрес IPv6: 2001:DB8:0000:000B::1/64 [1]
адреса шлюзу IPv6 є тунелювальна адреса сервера офісу “A” 2002:CB00:7101::1
Налаштування серверів
Сервер офісу “A”
rc.conf
#external ipa
ifconfig_rl0="inet 203.0.113.1 netmask 255.255.255.0"
ifconfig_rl0_ipv6="inet6 2001:DB8:0000::2 prefixlen 48"
#Internal ipa
ifconfig_nfe0_ipv6="inet6 2001:DB8:0000:000A::1 prefixlen 64"
#ip 6to4 tunel iface (203.0.113.1)
cloned_interfaces="stf0"
ifconfig_stf0_ipv6="inet6 2002:CB00:7101::1 prefixlen 16"
#ISP GW of OFFICE A
ipv6_defaultrouter="2001:DB8:0000::1"
static_routes="officeb"
route_officeb="-inet6 -net 2001:DB8:0000:000B:: 2002:CB00:7101::1 -prefixlen 64"
Сервер офісу “B”
rc.conf
#external ipa
ifconfig_rl0="inet 198.51.100.1 netmask 255.255.255.0"
ifconfig_rl0_ipv6="inet6 2001:DB8:0000::2 prefixlen 48"
#Internal ipa
ifconfig_nfe0_ipv6="inet6 2001:DB8:0000:000A::1 prefixlen 64"
# IP 6to4 tunel iface (198.51.100.1)
cloned_interfaces="stf0"
ifconfig_stf0_ipv6="inet6 2002:C633:6401::1 prefixlen 16"
# IP 6to4 of OFFICE A as GW
ipv6_defaultrouter="2002:CB00:7101::1"
rtadvd_enable="YES"
rtadvd_interfaces="nfe0"
Використання /64
У одному з випадків провайдер видав тільки підмережу /64 для сервера офісу А, тому прийшлось порушити рекомендації щодо розподілення підмережі /64, і розробити її на декілька /80, відповідно описавши зміни у налаштуваннях серверів. І при цьому відмовитися від використання rtadvd, і надати усім клієнтам статичні адреси IPv6.
Використанні матеріали
- RFC 3849
- RFC 5737
- Для діаграми використано програму “Edraw6” (ознайомлювальна версія)
- Online IPv4/IPv6 subnet calculator
- FreeBSD IPv6 - IPv6 Intelligence
- Routing_between_6to4_and_native_IPv6 http://6to4 - Wikipedia, the free encyclopedia