Вопрос или проблема
У моего беспроводного интерфейса есть как ipv4, так и ipv6 адрес, но я могу пинговать только по ipv4. Похоже, что соседство ipv6 пустое. Есть ли способ востановить его? Или возможно, что ipv6 был отключен где-то в настройках сети?
R!fedora:/root
> ip address show
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: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 48:68:4a:2b:fc:23 brd ff:ff:ff:ff:ff:ff
inet 192.168.133.50/24 brd 192.168.133.255 scope global dynamic noprefixroute wlp0s20f3
valid_lft 2614sec preferred_lft 2614sec
inet6 fe80::72c4:6a4f:3b8a:6475/64 scope link noprefixroute
valid_lft forever preferred_lft forever
9: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1354 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet 192.168.253.28 peer 87.190.63.70/32 scope global ppp0
valid_lft forever preferred_lft forever
R!fedora:/root
> ip -6 neigh
R!fedora:/root
> ip -4 neigh
192.168.133.1 dev wlp0s20f3 lladdr d8:0d:17:c0:0f:d3 REACHABLE
R!fedora:/root
> ip -6 route show
fe80::/64 dev wlp0s20f3 proto kernel metric 1024 pref medium
R!fedora:/root
> sysctl net.ipv6.neigh.default
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.interval_probe_time_ms = 5000
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.mcast_resolicit = 0
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.unres_qlen = 101
net.ipv6.neigh.default.unres_qlen_bytes = 212992
Вот попытка действительно получить доступ к сети ipv6:
R!fedora:/root
> ping -6 www.google.com
ping: connect: Сеть недоступна
R!fedora:/root
> ping -4 www.google.com
PING www.google.com (142.250.186.68) 56(84) байт данных.
64 байт от fra24s05-in-f4.1e100.net (142.250.186.68) : icmp_seq=1 ttl=116 время=27.9 ms
64 байта от fra24s05-in-f4.1e100.net (142.250.186.68) : icmp_seq=2 ttl=116 время=38.8 ms
^C
--- статистика ping www.google.com ---
2 пакета передано, 2 получено, 0% потеря пакетов, время 1002ms
rtt min/avg/max/mdev = 27.897/33.339/38.782/5.442 ms
Ответ или решение
Проблема с доступом к IPv6 при наличии IPv6-адреса на интерфейсе
Ваша ситуация, когда интерфейс имеет назначенный IPv6-адрес, но отсутствует доступ к сети IPv6, может быть вызвана несколькими факторами. Рассмотрим наиболее вероятные причины и шаги по их устранению.
1. Проверка состояния IPv6 на интерфейсе
На начальном этапе обратите внимание на вывод команды ip address show
, который показывает, что интерфейс wlp0s20f3
имеет назначенный адрес IPv6 fe80::72c4:6a4f:3b8a:6475/64
. Это адрес ссылки, который может использоваться только для связи с соседними узлами в локальной сети. Для глобального доступа нужны глобальные IPv6-адреса.
Что делать: Проверьте, есть ли у вас глобальный IPv6-адрес на этом интерфейсе. Если его нет, вы можете назначить его вручную или настроить автоматическое получение через DHCPv6 или SLAAC (Stateless Address Autoconfiguration).
2. Отсутствие маршрутов IPv6
Вы также отметили, что команда ip -6 route show
выводит fe80::/64 dev wlp0s20f3
. Это маршрут к локальной сети, но отсутствует маршрут по умолчанию для глобальных адресов IPv6. Это может быть причиной того, что вы не можете пинговать внешний IPv6-адрес (например, www.google.com).
Что делать: Проверьте, установлен ли шлюз по умолчанию для IPv6. Для этого вы можете использовать следующую команду:
ip -6 route add default via <ваш_шлюз>
Замените <ваш_шлюз>
на адрес вашего IPv6-шлюза.
3. Проверка на предмет фильтрации IPv6
Существует вероятность, что IPv6-трафик может быть заблокирован брандмауэром на вашем компьютере или в сети. Для проверки работы брандмауэра на вашем устройстве выполните:
sudo ip6tables -L
Если вы используете firewalld
, можно проверить статус следующей командой:
sudo firewall-cmd --state
Что делать: Убедитесь, что импортированы правила, которые не блокируют IPv6-трафик. Если они обнаружены, вы можете временно отключить брандмауэр для тестирования, используя:
sudo systemctl stop firewalld
4. Проверка конфигурации DHCPv6
Если на вашем маршрутизаторе включен DHCPv6, он должен предоставлять клиенту глобальный IPv6-адрес. Данный адрес может быть доступен только при корректной конфигурации. Убедитесь, что DHCPv6 правильно установлен и что настройки соответствуют вашей сети.
Что делать: Проверьте конфигурацию DHCPv6 на вашем маршрутизаторе и убедитесь, что клиент получает IPv6-адрес.
5. Обновление системы и драйверов
Иногда проблемы с сетевым оборудованием могут быть связаны с устаревшими драйверами. Следует убедиться, что все обновления системы установлены, в том числе драйверы сетевого интерфейса.
Что делать: Обновите систему с помощью:
sudo dnf update
Заключение
Решение проблемы с доступом к IPv6 подразумевает проверку и устранение потенциальных проблем на уровне конфигурации сети, маршрутизации и фильтрации трафика. Начните с проверки наличия глобального IPv6-адреса, настройки маршрутов и фильтров, а затем экспериментируйте с настройками DHCPv6 и обновлениями системы. Если проблема сохраняется, возможно, стоит обратиться к администратору вашей сети для получения дополнительной информации.