Короче говоря, у меня возникают проблемы с IPv6, использующим 6-й туннель с моим интернет-провайдером, чартерным бизнесом. Они предлагают 6-й туннель, который, я думаю, я правильно настроил, но сервер не отвечает на каждый запрос IPv6. Когда на сервере сетевые интерфейсы простаивают без трафика в течение примерно 10 минут, IPv6 перестает принимать входящие соединения. чтобы снова разрешить это, я должен войти на сервер и сделать исходящее соединение IPv6 (обычно ping
), чтобы запустить его обратно. Что странно, если я сбегу iptraf
когда он не работает, он все еще показывает входящий пакет IPv6… сервер просто не отвечает, и я не могу понять почему. Кроме того, если я попытаюсь получить доступ к своему серверу через IPv6 из дома, расположенного примерно в 1,6 км от того же провайдера, он никогда не сможет подключиться. это всегда время ожидания, но снова iptraf
показывает входящий пакет IPv6. Опять же, он просто не отвечает. Чтобы проверить, доступен ли мой сервер через IPv6, мне всегда приходится использовать мой телефон vzw 4g (они используют IPv6) или ipv6proxy dot net.
Вот вся информация о конфигурации, которую мой интернет-провайдер предоставляет на туннельный сервер:
6rd Prefix = 2602:100::/32
Border Relay Address = 68.114.165.1
6rd prefix length = 32
IPv4 mask length = 0
Вот мой /etc/network/interfaces
для IPv6 (используются x для блокировки реальных адресов)
auto charterv6
iface charterv6 inet6 v4tunnel
address 2602:100:189f:xxxx::1
netmask 32
ttl 64
gateway ::68.114.165.1
endpoint 68.114.165.1
local 24.159.218.xxx
up ip link set mtu 1280 dev charterv6
вот мой iptables
config
filter
:INPUT DROP [0:0]
:fail2ban-ssh – [0:0]
:OUTPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:hold – [0:0]
-A INPUT -p tcp -m tcp —dport 22 -j fail2ban-ssh
-A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport -j ACCEPT —dports 80,443,25,465,110,995,143,993,587,465,22
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp —dport 10000 -j ACCEPT
-A INPUT -p tcp -m tcp —dport 5900:5910 -j ACCEPT
-A fail2ban-ssh -j RETURN
-A INPUT -p icmp -j ACCEPT
COMMIT
и последний вот мой ip6tables
конфигурация брандмауэра
filter
:INPUT DROP [1653:339023]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [60141:13757903]
:hold – [0:0]
-A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport —dports 80,443,25,465,110,995,143,993,587,465,22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp —dport 10000 -j ACCEPT
-A INPUT -p tcp -m tcp —dport 5900:5910 -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
COMMIT
Итак, резюме:
iptraf
всегда показывает трафик IPv6, поэтому он всегда попадает на сервер
сервер перестает отвечать на IPv6 после отсутствия трафика в течение некоторого времени (10 минут), пока не будет установлено исходящее соединение, затем процесс повторяется.
сервер НИКОГДА не доступен через тот же интернет-провайдер (пока iptraf
все еще показывает запрос IPv6)
Примечания: Когда я пытаюсь получить к нему доступ от того же интернет-провайдера через город, даже если iptables
и ip6tables
разрешая ВСЕ входящий трафик, вот что iptraf
показывает.
IPv6 (92 bytes) from 97.92.18.xxx to 24.159.218.xxx on eth0
ICMP dest unrch (port) (120 bytes) from 24.159.218.xxx to 97.92.18.xxx on eth0
Странно, что это происходит даже с IPv6-адресом, установленным в файле hosts на имя домена сервера. С участием iptables
при нормальной настройке с указанными выше конфигурациями он говорит только следующее:
IPv6 (100 bytes) from 97.92.18.xxx to 24.159.218.xxx on eth0
Еще я заметил еще одну вещь. Когда я могу получить доступ к своему серверу, все запросы IPv6 показывают это
IPv6 (100 bytes) from 68.114.165.1 to 24.159.218.xxx on eth0
Это означает, что они проходят через 6-й ретранслятор, но когда в одном и том же ISP запросы поступают с честного исходного IP-адреса, что заставляет меня думать, что маршруты могут иметь какое-то отношение к этому.
Я ДЕЙСТВИТЕЛЬНО зациклился на этом, и любая помощь будет ОЧЕНЬ признательна.
РЕДАКТИРОВАТЬ: Не знаю, поможет ли это или нет, но вот мои маршруты.
root@XXXXXXX:~# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::68.114.165.1/128 :: U 1024 0 1 charterv6
2602:100::/32 :: Un 256 0 0 charterv6
fe80::/64 :: Un 256 0 0 charterv6
fe80::/64 :: U 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth2
::/0 ::68.114.165.1 UG 1024 0 30 charterv6
::/0 :: !n -1 1 32 lo
::1/128 :: Un 0 3 47 lo
2602:100:189f:xxxx::1/128 :: Un 0 1 50 lo
fe80::189f:xxxx/128 :: Un 0 1 0 lo
fe80::21b:21ff:fe98:456a/128 :: Un 0 1 0 lo
fe80::21b:21ff:feab:bd3c/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 charterv6
ff00::/8 :: U 256 0 0 eth1
ff00::/8 :: U 256 0 0 eth2
::/0 :: !n -1 1 32 lo
Вы используете фильтрацию с отслеживанием состояния для ipv4, и я не вижу никаких правил, разрешающих входящий инкапсулированный 6-й трафик, может быть, в этом проблема?
Если не ошибаюсь, 6rd тоже использует протокол №41?
iptables -I INPUT 3 --protocol 41 -s 68.114.165.1 -j ACCEPT
РЕДАКТИРОВАТЬ: вам также необходимо ПРИНИМАТЬ трафик из диапазонов других 6-ти клиентов от вашего интернет-провайдера, если вы хотите получать от них трафик.