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

Почему в Ubuntu нет маршрута для localhost?

$ sudo docker run --rm ubuntu:14.04 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.42.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

Разве это не означает, что 127.0.0.0/8 направляется к шлюзу 172.17.42.1, а не к устройству обратной связи?

В route команда устарела и больше не должна использоваться.

Новый способ - использовать набор команд iproute, которые вызываются с помощью ip за которым следует объект. Например:

$ 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 

Я слышал, вы сказали, что это в основном та же информация! Да, но это еще не все. Перед таблицами маршрутизации (да, во множественном числе) идет таблица правил:

$ ip rule show
    0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 

Таблица маршрутизации, которую мы рассматривали ранее, - это main таблица маршрутизации. Ваш вопрос касается local таблица маршрутизации, которая содержит все маршруты, относящиеся к локальным соединениям. Эта таблица может быть представлена ​​следующим образом:

$ 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

(Вы можете сократить ip варианты / параметры, если они все еще уникальны, следовательно ip ro sh такой же как ip route show.)

Здесь вы можете увидеть петлевые маршруты.

Вы можете делать с этим маршрутизация на основе политик, Рекомендую прочитать Политика маршрутизации в Linux Мэтью Г. Марша за всю необходимую информацию.

В route команда устарела 10 лет назад, и вам следует использовать iproute2 пакеты.

Когда вы используете ip route show то main таблица отображается. Чтобы отобразить local использование стола ip route show table local.

Надеюсь, это помогло.