Маршрутизация пакетов 6to4 через NAT
У меня есть роутер linux (dd-wrt без модуля ipv6, места для этого нет) и ПК с linux (Arch linux). Я пытаюсь настроить мой маршрутизатор для пересылки пакетов 6to4 (протокол 41) на мой компьютер и настроить туннель на нем.
Что я сделал до сих пор на маршрутизаторе:
iptables -t nat -A POSTROUTING -p 41 -d ! 192.168.1.0/24 -j SNAT --to _WANIP_
iptables -t nat -A PREROUTING -p 41 --dst _WANIP_ -j DNAT --to-destination _LANDEST_
где _WANIP_
мой "внешний" IPv4-адрес и _LANDEST_
компьютер с настройкой 6to4. Настройка 6to4 сделана так:
export IPV4_ADDRESS=_WANIP_
export OUR_IPV6_GW=`printf "2002:%02x%02x:%02x%02x::1" \`echo $IPV4_ADDRESS | tr '.' ' '\``
ip tunnel add tun6to4 mode sit ttl 32 remote any local $IPV4_ADDRESS
ip link set dev tun6to4 up
ip -6 addr add $OUR_IPV6_GW/16 dev tun6to4
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1
OUR_IPV6_GW
содержит один из 6to4 адресов. После выполнения всех этих шагов для теста я делаю ping6 ipv6.google.com
чтобы увидеть, если установка работает, и я получаю сообщения об ошибках Destination unreachable: Address unreachable
Я могу пинговать (IPv4) до 192.88.99.1, ip -6 route
выглядит хорошо. Я тоже пробовал бегать iptables -I [...]
для настройки NAT, чтобы быть уверенным, что никакие тени правил не вставлены.
Я использовал некоторые ресурсы из http://www.wtfm.org/ip6to4
1 ответ
Вы не можете использовать 6to4 через NAT. Адреса IPv6 зависят от общедоступного IPv4-адреса, которого нет в вашей коробке 6to4.
Кроме того, 6to4 является устаревшим / устаревшим протоколом. Если вам требуется подключение по протоколу IPv6, а ваш провайдер не предоставляет его, то лучше использовать управляемый туннель 6in4, например, для Hurricane Electric, нашего SixXS.