У меня странная проблема. У меня есть несколько серверов на RHEL-7.2, поэтому я не могу добавить маршрут.
Это дополнение маршрута - то, что я делал тысячу раз. Я получаю ошибку NO-Route для хоста что немного странно.
Я получаю следующую ошибку при добавлении маршрута #
route -A inet6 add 1203:900:223:3524:21::/112 gw 1203:270:713:3214:34::1
SIOCADDRT: No route to host
Ниже приведен вывод моего устройства #
[root@localhost ~]# ifconfig eth2
eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 1203:270:713:3214:34::12 prefixlen 112 scopeid 0x0<global>
inet6 fe80::250:56ff:feaf:3ab7 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:af:3a:b7 txqueuelen 1000 (Ethernet)
RX packets 23405 bytes 1429434 (1.3 MiB)
RX errors 0 dropped 22220 overruns 0 frame 0
TX packets 4129 bytes 352750 (344.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
IP-адреса шлюза доступны #
[root@localhost ~]# ping6 1203:270:713:3214:34::1
PING 1203:270:713:3214:34::1(1203:270:713:3214:34::1) 56 data bytes
64 bytes from 1203:270:713:3214:34::1: icmp_seq=1 ttl=254 time=0.678 ms
64 bytes from 1203:270:713:3214:34::1: icmp_seq=2 ttl=254 time=0.576 ms
--- 2405:200:613:3214:34::1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.576/0.627/0.678/0.051 ms
интерфейс устройства запущен и работает ##
[root@localhost ~]# ethtool eth2
Settings for eth2:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Supports Wake-on: uag
Wake-on: d
Link detected: yes
Много искал по этой теме. Не удалось найти разрешение ROUTE-ADDITION-FAILURE. Кажется, что по этой теме нет ничего актуального. Эта проблема возникает только в некоторых RHEL, а не на всех машинах.
На всякий случай кто-то где-то видел эту проблему. Пожалуйста, ответьте, было бы очень полезно.
Насколько я могу судить, в недавнем ядре есть только один момент, который вы можете получить EHOSTUNREACH
по добавлению маршрута ipv6.
https://elixir.bootlin.com/linux/v4.3/source/net/ipv6/route.c#L1922
/* IPv6 strictly inhibits using not link-local addresses as nexthop address. Otherwise, router will not able to send redirects. It is very good, but in some (rare!) circumstances (SIT, PtP, NBMA NOARP links) it is handy to allow some exceptions. --ANK */
Исключение: УЖЕ ДОЛЖЕН существовать маршрут ipv6 к шлюзу.
grt = rt6_lookup(net, gw_addr, NULL, cfg->fc_ifindex, 1);
Эта строка ДОЛЖНА быть успешной.
Таким образом, по всей вероятности, на этом хосте другая ситуация заключается в том, что на нем еще не было настроено nexthop с помощью объявления маршрутизатора. Шлюз все еще находится на связи, как определено префиксом, поэтому его можно получить с помощью ping, но это еще не маршрут автоматически, и, следовательно, не гарантия того, что rt6_lookup будет успешным.