Назад | Перейти на главную страницу

Debian, 6-й туннель и проблемы с подключением

Короче говоря, у меня возникают проблемы с 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

Итак, резюме:

  1. iptraf всегда показывает трафик IPv6, поэтому он всегда попадает на сервер

  2. сервер перестает отвечать на IPv6 после отсутствия трафика в течение некоторого времени (10 минут), пока не будет установлено исходящее соединение, затем процесс повторяется.

  3. сервер НИКОГДА не доступен через тот же интернет-провайдер (пока 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-ти клиентов от вашего интернет-провайдера, если вы хотите получать от них трафик.