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

Недоступный IPv4 блокирует поиск IPv6 dns

Я использую IPv4 + IPv6 на сервере (№1).

Иногда IPv4-адрес сопоставляется с другим сервером (№2), поэтому №1 недоступен через IPv4, но остается доступным через IPv6.

В этом случае поиск IPv6 dns не будет работать.

$ ping6 mirror.ipv6.hetzner.de
unknown host

Если я отключу адрес IPv4, все будет работать нормально.

$ ping6 mirror.ipv6.hetzner.de
PING mirror.ipv6.hetzner.de(2a01:4f8:0:a101::1:1) 56 data bytes
64 bytes from 2a01:4f8:0:a101::1:1: icmp_seq=1 ttl=60 time=0.469 ms

Как это возможно? Сеть IPv6 должна служить запасным вариантом, если адрес IPv4 сопоставлен с другим сервером. Но если я не могу разрешить какие-либо имена хостов, я не могу работать с ним.

Есть ли возможности заставить IPv6 dns работать, несмотря на то, что IPv4 доступен или нет?

Редактировать:

/etc/resolv.conf

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 213.133.99.99
nameserver 213.133.100.100
nameserver 213.133.98.98
nameserver 2a01:4f8:0:a0a1::add:1010
nameserver 2a01:4f8:0:a102::add:9999
nameserver 2a01:4f8:0:a111::add:9898

Маршрутизация:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         5.9.61.167      0.0.0.0         UG    100    0        0 eth0
5.9.61.167      0.0.0.0         255.255.255.255 UH    0      0        0 eth0

$ route -6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2a01:4f8:162:7ffe:1::2/128     ::                         U    1024 0     1 eth0
2a01:4f8:162:7ffe:6::/80       ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
::/0                           2a01:4f8:162:7ffe:1::2     UG   1024 0     0 eth0
::/0                           ::                         !n   -1  1     6 lo
::1/128                        ::                         Un   0   1     5 lo
2a01:4f8:162:7ffe:6::2/128     ::                         Un   0   1   190 lo
fe80::5054:ff:fe3d:5f4c/128    ::                         Un   0   1     0 lo
ff00::/8                       ::                         U    256 0     0 eth0
::/0                           ::                         !n   -1  1     6 lo

Вы описываете ситуацию как «IPv4-адрес сопоставлен с другим сервером». Означает ли это, что IPv4-адрес фактически удален с сервера №1 (не настроен из сетевого интерфейса) или просто он не маршрутизируется в систему?

Я спрашиваю об этом, потому что порядок в resolv.conf сначала будет пробовать IPv4, а затем IPv6, поэтому, когда сервер `` думает '', что у него есть IPv4, он отправит пакет по IPv4 и никогда не увидит ответа (а сервер # 2 проигнорирует его ).

Решением было бы выяснить, какой процесс вызывает адреса IPv4 в конфигурации resolvconf и какой процесс вызывает адреса IPv6, и переключить их в / etc / resolvconf / interface-order