У меня есть VPS, которому назначен блок адресов /64 IPv6. Я пытаюсь развернуть туннель 6in4 из моего маршрутизатора pfSense дома и получить доступ к адресам IPv6 через этот туннель.

Я успешно установил шлюз, но я не могу пропинговать любые другие IP-адреса, кроме /64, из моего окна pfSense. Пинг от VPS работает, хотя.

Вот мой /etc /network /interfaces config -

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 123.456.xxx.yyy
    netmask 24
    gateway 123.456.xxx.1
    dns-nameservers 8.8.8.8 8.8.4.4
iface eth0 inet6 static
    address aaaa:bbbb:my:ipv6::1
    netmask 48
    gateway aaaa:bbbb::1

auto tunnel0
iface tunnel0 inet6 v4tunnel
    address aaaa:bbbb:my:ipv6::9
    netmask 64
    endpoint 66.abc.def.20
    up ip -6 route add aaaa:bbbb:my:ipv6::/64 via aaaa:bbbb:my:ipv6::10
    pre-up iptables-restore < /etc/iptables/rules.v4
    pre-up ip6tables-restore < /etc/iptables/rules.v6

Вот правило iptables для v4

iptables -I INPUT -p 41 -s 66.abc.def.20 -j ACCEPT

Вот правила ip6tables для v6

ip6tables -I FORWARD -i tunnel0 -j ACCEPT
ip6tables -I FORWARD -o tunnel0 -j ACCEPT

Я также добавил следующие строки в /etc/sysctl.conf

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2

Конечной точкой туннеля на моем маршрутизаторе pfSense является aaaa:bbbb:my:ipv6::10.

1 ответ1

0

Насколько я понимаю, ваши соединения выглядят так: подсеть 1 - это глобальная /48 Vultr, а подсеть 3 будет вашим собственным адресным пространством, объявленным BGP:

[Vultr router] ---subnet 1--- [Your VPS] ---subnet 2--- [pfSense] ---subnet 3--- <LAN>

Поэтому, во-первых, не имеет смысла использовать одинаковый префикс /64 во всех трех подсетях - когда вы делаете это, вы просто даете противоречивые инструкции маршрутизатору.

Не помогает тот факт, что этот префикс фактически не направляется на ваш VPS; Vultr видит в этом просто неразрывную часть интернет-ссылки /48. Поэтому, когда маршрутизатор Vultr пытается достичь aaaa:bbbb:my:ipv6::10 (ваш pfSense), он не знает, что пакеты должны быть отправлены на ваш VPS - он думает, что адрес находится на связи, и пытается обнаружить его используя ND (ARP).

Есть хаки, которые делают это возможным (например, проксирование ND/ARP), но вам это действительно нужно? Нет, потому что у вас достаточно собственного IP-пространства.

Таким образом , вместо того, чтобы взять /64 от вашего BGP раскрученный блока (например , если у вас есть 2001:db8:12::/48 а затем 2001:db8:12:ffff::/64 будет общий выбор) и настроить , что , как туннельный префикс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .