Не удается пинговать сайты по IPv6. Иногда работает, иногда вообще не получает ответа.

Вопрос или проблема

Я на новой установке Ubuntu 24.04 LTS и сталкиваюсь с странной проблемой с IPv6. Иногда я не могу пинговать веб-сайты IPv6, такие как ipv6.google.com или даже google.com с использованием их IPv6 адреса. Эта проблема вызывает бесконечную загрузку веб-сайтов в браузерах.

Самая странная часть заключается в том, что мой ПК загружен с Windows 11, и в Windows пинг работает прекрасно. Кроме того, другие дистрибутивы Linux (не основанные на Debian), такие как Manjaro, тоже работают нормально (тестировалось с использованием live USB).

Вот некоторая информация, которая может помочь выявить проблему.

Настройки в моем маршрутизаторе

Подключение к моему интернет-провайдеру (WAN) осуществляется через PPPoE с использованием IPv4. Они не поддерживают установление PPPoE через IPv6.

  • Получение IPv6 от интернет-провайдера с использованием SLAAC;
  • Использование делегации префикса (/64);
  • DNS-адрес в данный момент предоставляется интернет-провайдером.

С этой конфигурацией я успешно получаю публичный IPv6 адрес от интернет-провайдера.

Конфигурация LAN для предоставления IPv6 – SLAAC + Stateless DHCP.

Если я пингую ipv6.google.com непосредственно с интерфейса маршрутизатора:

PING ipv6.google.com (2800:3f0:4002:810::200e): 64 байта данных

Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=1 time=39.723 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=2 time=39.825 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=3 time=44.562 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=4 time=39.262 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=5 time=40.207 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=6 time=40.878 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=7 time=39.551 ms
Ответ от 2800:3f0:4002:810::200e: bytes=64 ttl=58 seq=8 time=39.319 ms

--- Статистика пинга "ipv6.google.com" ---

Пакеты: Отправлено=8, Получено=8, Потеряно=0 (0.00% потерь)

Минимальное/среднее/максимальное время в пути = 39.262/40.416/44.562 ms

пинг остановлен.

Как видите, все работало отлично!

Мой ПК

Теперь, вот конфигурация, в которой я думаю, что проблема. Я использую Ubuntu 24.04 LTS с NextDNS, настроенным в /etc/systemd/resolved.conf.

Вывод ip addr следующий:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 5e:17:72:7a:97:05 brd ff:ff:ff:ff:ff:ff permaddr 70:85:c2:24:6a:87
    inet 192.168.10.61/24 brd 192.168.10.255 scope global dynamic noprefixroute enp0s31f6
       valid_lft 84955sec preferred_lft 84955sec
    inet6 2804:7f0:a210:e963:9466:90d6:6d6e:7294/64 scope global dynamic noprefixroute 
       valid_lft 295sec preferred_lft 295sec
    inet6 fe80::9fd2:1acf:9bcc:c800/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlp114s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 6c:f6:da:66:12:a5 brd ff:ff:ff:ff:ff:ff

Хорошо, теперь давайте посмотрим на саму проблему.

johndoe@ubuntu:~$ ping ipv6.google.com
PING ipv6.google.com (2800:3f0:4002:810::200e) 56 байтов данных
^C
--- статистика пинга ipv6.google.com ---
49 пакетов передано, 0 получено, 100% потерь пакетов, время 49134ms

Все пакеты потеряны. Теперь давайте посмотрим с IPv4:

johndoe@ubuntu:~$ ping -4 google.com
PING google.com (142.251.133.238) 56(84) байт данных.
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=1 ttl=116 время=39.1 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=2 ttl=116 время=41.2 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=3 ttl=116 время=44.8 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=4 ttl=116 время=42.1 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=5 ttl=116 время=42.2 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=6 ttl=116 время=42.9 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=7 ttl=116 время=39.0 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=8 ttl=116 время=43.0 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=9 ttl=116 время=40.1 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=10 ttl=116 время=41.5 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=11 ttl=116 время=38.4 ms
64 байта от eze10s08-in-f14.1e100.net (142.251.133.238): icmp_seq=12 ttl=116 время=41.4 ms
^C
--- статистика пинга google.com ---
12 пакетов передано, 12 получено, 0% потерь пакетов, время 11014ms
rtt мин/сред/макс/среднекв. = 38.373/41.303/44.832/1.811 ms

IPv4 работал отлично.

Мы также можем проверить traceroute для ipv6.google.com:

johndoe@ubuntu:~$ traceroute ipv6.google.com
traceroute к ipv6.google.com (2800:3f0:4002:810::200e), 30 прыжков максимум, 80 байтов пакеты
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Некоторая дополнительная информация

Моя конфигурация DNS

john@dow:~$ resolvectl 
Global
         Протоколы: -LLMNR -mDNS +DNSOverTLS DNSSEC=no/unsupported
  resolv.conf режим: uplink
Текущий DNS-сервер: 2a07:a8c1::#78da41.dns.nextdns.io
       DNS-серверы: 45.90.28.0#78da41.dns.nextdns.io 2a07:a8c0::#78da41.dns.nextdns.io 45.90.30.0#78da41.dns.nextdns.io
                    2a07:a8c1::#78da41.dns.nextdns.io

Ссылка 2 (enp0s31f6)
    Текущие области: нет
         Протоколы: -DefaultRoute -LLMNR -mDNS +DNSOverTLS DNSSEC=no/unsupported

Ссылка 3 (wlp114s0f0)
    Текущие области: нет
         Протоколы: -DefaultRoute -LLMNR -mDNS +DNSOverTLS DNSSEC=no/unsupported

Пингование IPv6 с использованием Windows

PowerShell 7.4.6
PS C:\Users\johndoe> ping ipv6.google.com

Пингую ipv6.l.google.com [2800:3f0:4001:806::200e] с 32 байтами данных:
Ответ от 2800:3f0:4001:806::200e: время=13ms
Ответ от 2800:3f0:4001:806::200e: время=9ms
Ответ от 2800:3f0:4001:806::200e: время=10ms
Ответ от 2800:3f0:4001:806::200e: время=8ms

Статистика пинга для 2800:3f0:4001:806::200e:
    Пакеты: Отправлено = 4, Получено = 4, Потеряно = 0 (0% потерь),
Приблизительное время в пути в миллисекундах:
    Минимальное = 8ms, Максимальное = 13ms, Среднее = 10ms
PS C:\Users\johndoe>

Трассировка с использованием Windows

PS C:\Users\johndoe> tracert ipv6.google.com

Трассировка маршрута к ipv6.l.google.com [2800:3f0:4001:806::200e]
по максимуму 30 прыжкам:

  1    <1 ms    <1 ms    <1 ms  2804:7f0:a212:ca48:c5c0:e6e1:39d6:5048
  2     *        *        *     Время ожидания запроса истекло.
  3     7 ms     6 ms     6 ms  2001:12e0:500:0:1::289d
  4     4 ms     4 ms    12 ms  2001:12e0:100:2008:a002:2009:a005:2
  5     9 ms     4 ms     6 ms  2001:12e0:100:2008:a002:1030:a002:3
  6     *        *       10 ms  2001:12e0:100:1017:a001:1030:a002:36
  7     9 ms     *        *     2001:4860:1:1::d84
  8    12 ms    11 ms    12 ms  2800:3f0:8362:c0::1
  9     7 ms     5 ms     5 ms  2001:4860:0:1::24f6
 10    10 ms    12 ms     5 ms  2001:4860:0:1::7cac
 11    11 ms    15 ms     8 ms  2001:4860:0:1::7cc7
 12     5 ms     5 ms    12 ms  2001:4860:0:1::8ff9
 13    11 ms    10 ms    12 ms  2800:3f0:4001:806::200e

Трассировка завершена.

Ответ или решение

Проблема с пингом сайтов по IPv6 в Ubuntu 24.04 LTS

Введение

Проблема, с которой вы сталкиваетесь при использовании IPv6 на Ubuntu 24.04 LTS, является довольно распространенной и может быть связана с несколькими факторами, включая настройки роутера, конфигурацию сети на уровне операционной системы и взаимодействие с DNS. Ваша спецификация системы и шаги для диагностики проблемы дают возможность производить целенаправленный анализ.

Факторы конфигурации сети

  1. Настройки роутера: У вас установлена связь с провайдером через PPPoE с использованием IPv4, при этом вы получаете адресацию IPv6 через SLAAC. Убедитесь, что ваш роутер корректно сконфигурирован для раздачи IPv6 адресов по сети. Учитывая, что пинг с интерфейса роутера работает без проблем, стоит проверить, не блокируются ли определенные протоколы на стороне вашей операционной системы.

  2. Конфигурация Ubuntu: Ваш вывод из ip addr показывает, что вы получаете корректный глобальный IPv6 адрес. Однако отсутствие ответов на ping и traceroute указывает на возможную проблему с маршрутизацией или настройками сетевых интерфейсов.

Возможные причины проблемы

  1. Проблемы с DNS: Попробуйте использовать другие DNS-сервера (например, Google DNS: 2001:4860:4860::8888 и 2001:4860:4860::8844). Ваша текущая конфигурация DNS через NextDNS может приводить к временным сбоям или задержкам в разрешении имен.

  2. Настройки брандмауэра: Убедитесь, что брандмауэр на вашей Ubuntu не блокирует исходящие IPv6 соединения. Для этого можно временно отключить ufw (если он используется) и проверить, работает ли пинг.

    sudo ufw disable
    # Затем проверьте пинг
    ping -6 ipv6.google.com
  3. Настройки Atheros Protocol: Ваша Ubuntu может использовать различные протоколы (например, IPv4 в качестве предпочитаемого). Попробуйте изменить порядок протоколов или отключить IPv4 для тестирования.

  4. Сетевые интерфейсы: Убедитесь, что у вас активен нужный интерфейс. В вашем выводе мы видим, что один из интерфейсов (wlp114s0f0) находится в состоянии "DOWN". Попробуйте его активировать, если он должен использоваться.

    sudo ip link set wlp114s0f0 up

Рекомендации по устранению неполадок

  1. Проверка доступности других IPv6 адресов: Попробуйте выполнить ping и traceroute к другим известным IPv6 адресам, например, 2001:4860:4860::8888 (Google DNS) или 2001:db8::1 (тестовый адрес).

  2. Логирование и отладка: Проверьте системные журналы на предмет обнаруженных ошибок, используя команду:

    journalctl -xe | grep -i network
  3. Тестовые подключения: Используйте telnet для проверки подключения к нужным портам, например:

    telnet ipv6.google.com 80

Заключение

Если ни один из вышеуказанных методов не решает проблему, рекомендуется рассмотреть возможность получения поддержки от сообщества Ubuntu или вашего интернет-провайдера. Также может быть полезным временное использование Live USB с другой версией Linux для изоляции проблем, связанных с конфигурацией вашей текущей системы. Проблема может быть связана с конкретной версией программного обеспечения или настройками, которые могут быть устранены или переопределены.

Успехов в решении проблемы!

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

Капча загружается...