Что означает шлюз 0.0.0.0 в таблице маршрутизации?

12

Я новичок в том, чтобы быть системным администратором Linux, и я изучаю таблицы маршрутизации.

В настоящее время у меня есть два интерфейса в моей виртуальной машине:

vagrant@vagrant-ubuntu-trusty-64:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:2e:8d:5d  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe2e:8d5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3146 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2853 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:218526 (218.5 KB)  TX bytes:212044 (212.0 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:5b:5e:65  
          inet addr:172.28.128.3  Bcast:172.28.128.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe5b:5e65/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5080 (5.0 KB)  TX bytes:4622 (4.6 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Когда я выполняю route -, я вижу следующие таблицы:

vagrant@vagrant-ubuntu-trusty-64:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.28.128.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

Я знаю, что первая запись является маршрутом по умолчанию. Интересно, что здесь означает шлюз 2-й и 3-й записей (0.0.0.0)?

КИНТАРО
источник
3
На Linux предпочитаю более современные ip addrи ip routeинструменты.
user1686

Ответы:

18

Там, где шлюз - все нули, это означает, что шлюза нет.

Это связано с тем, что рассматриваемые сети напрямую подключены к машине, поскольку у машины есть IP-адрес на интерфейсе, который входит в эту сетевую подсеть.

Любые пакеты для этих сетей не нужно маршрутизировать, так как они подключены, поэтому пакеты можно отправлять непосредственно в пункт назначения в локальной сети.

Если у машины есть пакет, предназначенный для другого устройства в этих сетях, он выполнит запрос ARP, чтобы найти MAC-адрес, связанный с IP, и передаст пакет непосредственно на этот MAC-адрес.

Павел
источник
Спасибо за ответ! Итак, я могу иметь два разных шлюза в таблице маршрутизации? Я думаю, что я могу, но они будут две разные подсети?
Kintarō
Обратите внимание, что шлюз - это IP-адрес, на который вы отправляете пакеты для определенной сети. Шлюз по умолчанию - это IP-адрес, на который вы отправляете пакеты, которые не имеют других совпадений в таблице маршрутизации. Так что да, вы можете иметь много шлюзов, если у вас есть разные подсети, доступные через разные маршрутизаторы. Например, у вас может быть несколько шлюзов по умолчанию, где у вас есть несколько путей к Интернету.
Пол
Вы можете иметь несколько шлюзов - либо для каждой подсети (меньшие подсети получают приоритет над большими), либо для нескольких шлюзов для одной подсети - в этом случае предпочтительным будет 1, основанный на метрике и положении в таблице маршрутов, или с несколькими таблицами маршрутов. с различными шлюзами и маршрутизацией на основе политик, чтобы определить, какую таблицу использовать.
Давидго
Большое спасибо за этот ответ
Джейсон Krs