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

SIOCADDRT: нет маршрута к хосту при добавлении маршрута в IPv6

У меня странная проблема. У меня есть несколько серверов на 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 будет успешным.