0

I have a linux Fedora -16 machine that has two interfaces -

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)

On the interface p3p1, I am running a dhcp server. My embedded device, which runs on a NFS, gets the IP address from p3p1. The p3p1 interface is connected to my embedded device - Point to Point.

Now, from the embedded box ( a linux based system), I want to ping/access the address - 136.170.195.17.

I cannot do the following because, the gw doesn't know how to route the packets for 136.170.0.0 subnet. So, I get an error -

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

Since the communication is on the different network, I need to add the route in the device. So, what I have done is enabled the packet forwarding in my linux machine. Next, I have add the route like this.

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

I am getting the above error. I think that my understanding of network is not in-correct. What is the reason that I am getting the following error? Actually, I am baffled with the above error. In my opinion, there is nothing wrong in my concepts like - enabling packet forwarding and adding the route for the packet destined for the different subnet. Because for the same subnet, the route doesn't come into the picture - it is just based on ARP. How can I fix this issue? Is there any problem in my understanding?

Here is the box routing table -

# 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

Here is my PC routing table -

$ 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
2

/sbin/route add net 136.170.192.0 netmask 255.255.252.0 gw 10.240.100.110

Try route add -net .... I suspect that error message comes when your embedded device tries to resolve the name net to an address or network range.

2
  • Yup, it worked - -net was the culprit. If you wish, you can throw more details on this -net concept rather than net. – dexterous Jan 6 '15 at 9:24
  • I'm sorry, but there's nothing to add - you got the arguments to route wrong. It's easily done, so don't worry about it - but to UNIX commands, punctuation matters! – MadHatter Jan 6 '15 at 9:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.