Туннель 6in4 на Debian 9

377
HotBreeze

У меня есть 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.

0
Изменения вашего адреса не позволяют понять схему подсети, которую вы используете. Вы пытаетесь дублировать один и тот же префикс на обоих интерфейсах? Почему ваш eth0 настроен как / 48 вместо / 64? На самом ли деле / ​​64 маршрутизируется вам провайдером, или это просто диапазон связи? grawity 6 лет назад 0
@grawity - Когда я развернул виртуальную машину, конфигурация eth0 inet6 генерировалась с помощью маски сети 48, и я ее не беспокоил. Насколько я понимаю, если мои конечные точки туннеля находятся в той же подсети, что и подсеть фактической виртуальной машины IPv6, я смогу общаться с соседом BGP виртуальной машины из моей коробки pfSense, используя туннель. Кроме того, я полагаю, что / 64, назначенный VPS, находится на связи. HotBreeze 6 лет назад 0
Нет, дублирование одной и той же подсети в 2 или 3 местах абсолютно не помогает в маршрутизации ... Однако ваша главная проблема - это назначение по ссылке. grawity 6 лет назад 0
В любом случае я могу использовать назначение по ссылке для установления этого туннеля? Я пытаюсь настроить это на Vultr, который предлагает сеанс BGP и выполняет только назначения по ссылке. HotBreeze 6 лет назад 0
Хм, разве это не довольно противоречиво? Если вы рекламируете свой собственный префикс через BGP, то партнер будет всегда направлять его к вам, так как в этом весь смысл BGP. С другой стороны, если вы используете адресное пространство _Vultr's_, то я не понимаю, как BGP участвует. grawity 6 лет назад 0
Планируется установить туннель между Vultr и коробкой pfSense, запустить Bird на Vultr VM, которая установила eBGP с Vultr и iBGP с машиной pfSense. Машина pfSense будет объявлять мое пространство IPv6 виртуальной машине Vultr, которая, в свою очередь, перенаправляет ее в ASN Vultr. HotBreeze 6 лет назад 0

1 ответ на вопрос

0
grawity

Насколько я понимаю, ваши соединения выглядят так: подсеть 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был бы общим выбор) и настроить, что в качестве префикса туннеля.