Почему добавление маршрута здесь вызывает ошибку?

У меня есть машина Linux Fedora -16, которая имеет два интерфейса -

em1       Link encap:Ethernet  HWaddr B8:CA:3A:89:EE:F1  
          inet addr:136.170.195.17  Bcast:136.170.195.255  Mask:255.255.252.0
          inet6 addr: fec0::f:baca:3aff:fe89:eef1/64 Scope:Site
          inet6 addr: 2002:88aa:c268:f:baca:3aff:fe89:eef1/64 Scope:Global
          inet6 addr: fe80::baca:3aff:fe89:eef1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6363373 errors:0 dropped:2 overruns:0 frame:0
          TX packets:1571017 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4502189587 (4.1 GiB)  TX bytes:175801460 (167.6 MiB)
          Interrupt:20 Memory:f7f00000-f7f20000 

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:16436  Metric:1
          RX packets:765 errors:0 dropped:0 overruns:0 frame:0
          TX packets:765 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:85089 (83.0 KiB)  TX bytes:85089 (83.0 KiB)

p3p1      Link encap:Ethernet  HWaddr 14:D6:4D:1F:F3:F8  
          inet addr:10.240.100.110  Bcast:10.240.100.255  Mask:255.255.255.0
          inet6 addr: fe80::16d6:4dff:fe1f:f3f8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2615351 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2868133 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1081785835 (1.0 GiB)  TX bytes:1577912608 (1.4 GiB)

На интерфейсе p3p1 я запускаю сервер dhcp. Мое встроенное устройство, которое работает на NFS, получает IP-адрес от p3p1. Интерфейс p3p1 подключен к моему встроенному устройству - точка-точка.

Теперь из встроенного блока (системы на основе Linux) я хочу пинговать / получить доступ к адресу - 136.170.195.17.

Я не могу сделать следующее, потому что gw не знает, как маршрутизировать пакеты для подсети 136.170.0.0. Итак, я получаю ошибку -

 # ping 136.170.195.17
PING 136.170.195.17 (136.170.195.17): 56 data bytes
ping: sendto: Network is unreachable

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

# /sbin/route add net 136.170.192.0 netmask 255.255.252.0 gw 10.240.100.110
route: resolving net

Я получаю вышеуказанную ошибку. Я думаю, что мое понимание сети не является правильным. По какой причине я получаю следующую ошибку? На самом деле, я озадачен вышеуказанной ошибкой. На мой взгляд, в моих концепциях нет ничего плохого, например - включение пересылки пакетов и добавление маршрута для пакета, предназначенного для другой подсети. Потому что для той же подсети маршрут не входит в картину - он просто основан на ARP. Как я могу исправить эту проблему? Есть ли проблема в моем понимании?

Вот таблица маршрутизации коробки -

# netstat -anr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.240.100.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0

Вот таблица маршрутизации моего ПК -

$ netstat -arn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         136.170.192.2   0.0.0.0         UG        0 0          0 em1
10.240.100.0    0.0.0.0         255.255.255.0   U         0 0          0 p3p1
136.170.192.0   0.0.0.0         255.255.252.0   U         0 0          0 em1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 p3p1

1 ответ

Решение

/sbin/route add net 136.170.192.0 маска сети 255.255.252.0 gw 10.240.100.110

Пытаться route add -net ..., Я подозреваю, что сообщение об ошибке появляется, когда ваше встроенное устройство пытается разрешить имя net на адрес или диапазон сети.

Другие вопросы по тегам