route
Komenda jest przestarzała i nie powinien być stosowany dłużej.
Nowym sposobem jest użycie zestawu komend iproute, z których wszystkie są wywoływane ip
za pomocą obiektu. Na przykład:
$ ip route show
default via 192.168.1.254 dev eth0
192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.1.27
Teraz słyszę, jak mówisz, to w zasadzie ta sama informacja! Tak, ale to nie jest cała historia. Przed tabelami routingu (tak, w liczbie mnogiej) pojawia się tabela reguł:
$ ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
Tabela routingu, na którą patrzyliśmy wcześniej, jest main
tabelą routingu. Twoje pytanie dotyczy local
tabeli routingu, która zawiera wszystkie trasy związane z połączeniami lokalnymi. Ta tabela może być pokazana w następujący sposób:
$ ip ro sh table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.0.0 dev eth0 proto kernel scope link src 192.168.1.27
local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27
broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27
(Możesz skracać ip
opcje / parametry tak długo, jak długo są one unikalne, a zatem ip ro sh
są takie same jak ip route show
.)
Tutaj możesz zobaczyć trasy pętli zwrotnej.
Z tym routingiem opartym na zasadach możesz robić różne cudowne rzeczy. Polecam przeczytanie Policy Routing z Linuksem przez Matthew G. Marsha dla wszystkich informacji, których kiedykolwiek potrzebujesz.