Переадресация IPv6 работает в 1 сторону извне

Первоначально спросили о сетевой инженерии, но вместо этого сказали спросить здесь.

У меня возникла проблема с маршрутизацией моего собственного префикса ipv6 для произвольной передачи. Я получил свой ASN и IPV6/48, спонсируемые RIPE, и я изо всех сил пытаюсь заставить их работать должным образом. Любые указатели на вещи, которые нужно проверить, будут очень признательны.

Моя проблема на данный момент заключается в том, что сервер назначения (VPS) получает запросы и обрабатывает их, но не отправляет ответ.

Я настроил DNS-сервер на целевом vps, который отлично работает через предоставленный провайдером адрес IPv4 и IPv6, а также правильно работает через локальную сеть, но когда я пытаюсь использовать его через внешнее соединение, он просто зависает.

Я использовал тест ping dot pe mtr6, который перестает отвечать, как только попадает на мой «пограничный маршрутизатор», и отправляет запросы на раскопки с удаленных компьютеров, чтобы проверить, отвечает ли DNS-сервер, но безуспешно.

Я запустил wireshark с помощью sshdump в локальной сети vnic, которая взаимодействует с «пограничным маршрутизатором» и может видеть запросы icmp6 и dns, поступающие на правильный сервер через IP-адрес ipv6, который я установил для входящего трафика.

Wireshark показывает запросы icmp6:

126 17.162128   2001:19f0:7401:885e:5400:4ff:fe1e:3ed8  2001:67c:2284::1    ICMPv6  78  Echo (ping) request id=0x3532, seq=33089, hop limit=12 (no response found!)

NIC: enp1s0 (wan) NIC: enp6s0 (lan) NIC: bgp0 (фиктивный интерфейс для моего диапазона IP-адресов, я пробовал его как дополнительный IP-адрес для enp6s0 с теми же результатами)

Настройка выглядит следующим образом; Edge Router: Vultr VPS с виртуальной частной сетью ОС: Fedora 36 Маршрутизация: Bird2 объявляет мой префикс /48 и прослушивает данные ospfv3 Брандмауэр: iptables

ип -6 р:

::1 dev lo proto kernel metric 256 pref medium
unreachable ::/96 dev lo metric 1024 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 pref medium
2001:67c:2284::/64 via fe80::1eb1:e0d5:55fd:df73 dev enp6s0 proto bird metric 32 pref medium
unreachable 2001:67c:2284::/48 dev lo proto bird metric 32 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 pref medium
2a05:f480:1000:3ba::/64 dev enp1s0 proto ra metric 100 pref medium
2a05:f480:1000:3ba::/64 dev enp1s0 proto kernel metric 256 expires 2591658sec pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 pref medium
fd28:e0d9:543c:c651::/64 dev enp6s0 proto bird metric 32 pref medium
fd28:e0d9:543c:c651::/64 dev enp6s0 proto kernel metric 101 pref medium
fe80::/64 dev enp1s0 proto kernel metric 1024 pref medium
fe80::/64 dev enp6s0 proto kernel metric 1024 pref medium
default via fe80::fc00:4ff:fe1c:740d dev enp1s0 proto ra metric 100 pref medium
default via fe80::fc00:4ff:fe1c:740d dev enp1s0 proto ra metric 1024 expires 1458sec hoplimit 64 pref medium

ip6таблицы:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp1s0 -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -p ipv6-icmp -j ACCEPT
-A FORWARD -i enp1s0 -o enp6s0 -j ACCEPT
-A FORWARD -i enp6s0 -o enp1so -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT

SystemD выполняет следующее как StartExecPost для птицы:

#!/bin/bash
/usr/sbin/sysctl -w net.ipv4.ip_forward=1
/usr/sbin/sysctl -w net.ipv6.conf.all.forwarding=1
/usr/sbin/sysctl -w net.ipv6.conf.default.forwarding=1
/usr/sbin/sysctl -w net.ipv6.conf.enp1s0.accept_ra=2

DNS-сервер: Vultr VPS с виртуальной частной сетью ОС: Fedora 36 Маршрутизация: Bird2, обновление таблицы маршрутизации «пограничных маршрутизаторов» через OSPFv3 Брандмауэр: iptables DNS-сервер: PowerDNS

ип -6 р:

::1 dev lo proto kernel metric 256 pref medium
unreachable ::/96 dev lo metric 1024 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 pref medium
2001:67c:2284::/64 dev bgp0 proto kernel metric 550 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 pref medium
2a05:f480:1000:210::/64 dev enp1s0 proto ra metric 100 pref medium
2a05:f480:1000:210::/64 dev enp1s0 proto kernel metric 256 expires 2591532sec pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 pref medium
fd28:e0d9:543c:c651::/64 dev enp6s0 proto kernel metric 101 pref medium
fe80::/64 dev enp1s0 proto kernel metric 1024 pref medium
fe80::/64 dev enp6s0 proto kernel metric 1024 pref medium
fe80::/64 dev bgp0 proto kernel metric 1024 pref medium
default via fe80::fc00:4ff:fe17:2945 dev enp1s0 proto ra metric 100 pref medium
default via fe80::fc00:4ff:fe17:2945 dev enp1s0 proto ra metric 1024 expires 1332sec hoplimit 64 pref medium

ip6таблицы:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
-A INPUT -i enp1s0 -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT

маршрутизация ipv6 bgp ospf

Предприниматель ЭйДжей

1 ответ
1

Я вижу одну опечатку, которая нарушит исходящий трафик:

-A FORWARD -i enp6s0 -o enp1so -j ACCEPT

Имя выходного интерфейса enp1so в то время как это должно быть enp1s0. В результате входящий трафик работает, но любой исходящий трафик, включая ответ, отклоняется: внешний мир ничего не увидит, в то время как попытки внутреннего мира (или ответы) будут отклонены, возможно, даже не оставляя следов текущего соединения с использованием netstat.

Чтобы обнаружить этот вид проблемы ip6tables-save -c (акцент на -c) может помочь, показывая, где правила не совпадают (нет встречного совпадения), когда они должны.

АБ

Добавить комментарий

Ваш адрес email не будет опубликован.