Pracowałem z niestandardowymi tabelami tras w systemie Linux i jestem nieco zdezorientowany niektórymi dokumentacjami i zachowaniem polecenia „ip route”. Wydaje się, że jedynymi prawidłowymi wartościami powinny być 0-255 plus nazwy zdefiniowane w / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
Pozostawiłoby to 1-252 dla tabel niestandardowych. Próba użycia niezdefiniowanej nazwy tabeli powoduje błąd:
$ ip route show table kermit
Error: argument "kermit" is wrong: table id value is invalid
Wydaje się jednak, że mogę bez błędów używać liczb znacznie wyższych niż 255:
$ ip route show table 1000
[no output]
$ ip route add 10.10.10.0/24 dev eth0 table 1000
[no output]
$ ip route show table 1000
10.10.10.0/24 dev eth0 scope link
W pewnym momencie robi się jeszcze dziwniej. Bezpośrednio na maxint (2 ^ 31) „przepełnia się” do lokalnej tabeli (255):
$ ip route show table 2147483647
[no output]
$ ip route show table 2147483648
[exact output of table 255 (local)]
Czy ktoś może wyjaśnić, co się dzieje? Czy faktycznie istnieją maksymalne niestandardowe tabele routingu, których można użyć?