Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My embedded Linux board has 3 interfaces:

  • eth0 - For all outbound traffic
  • eth1 - A hardware loopback (traffic leaves board, but comes immediately back in the same port)
  • lo - Standard loopback interface

ifconfig reveals the following:

eth1      Link encap:Ethernet  HWaddr AA:BB:CC:DD:EE:FF  
          inet addr:  Bcast:  Mask:
          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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1561 (1.5 KiB)  TX bytes:1561 (1.5 KiB)

And, route yields:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface     *      UH    0      0        0 eth1
A.B.C.96        *      U     0      0        0 eth0       *            U     0      0        0 lo
default         A.B.C.110         UG    0      0        0 eth0

I can ping the eth1 interface's assigned IP, like so:

PING ( 56 data bytes
64 bytes from seq=0 ttl=64 time=0.143 ms
64 bytes from seq=1 ttl=64 time=0.067 ms

But, all of the packets appear on the lo interface, not eth1, according to the ifconfig reported RX/TX counters.

Why? Is the traffic really ingressing and egressing the eth1 port, but being accounted under the lo interface? Or, is the traffic really all flowing through lo?


share|improve this question
See – poige Feb 28 '13 at 0:09

Local traffic doesn't go through Ethernet interfaces. Fundamentally, local traffic goes through the local interface. The OS has no idea that your eth1 interface has hardware loopback.

share|improve this answer
thanks! That's what I also suspected, so why is all the traffic aimed at going through lo instead of eth1? – Trevor Feb 28 '13 at 14:10
Because it's local traffic. – David Schwartz Feb 28 '13 at 14:36

Linux TCP/IP stack is very flexible one. See:

# — let's add dummy IP-address to Wi-Fi NIC
# ip ad ad dev wlan0
# — Now chage its scope from 'local' to 'link'
# ip ro replace dev wlan0 scope link table local

# — with tcpdump we can see now that's traffic to that dummy
# ex-local IP-address actually tries to go out of Wi-Fi NIC:

00:15:22.807607 ARP, Request who-has tell, length 28
share|improve this answer
Thanks, poige, but I don't understand what any of those lines are doing, much less, why. Sorry. – Trevor Feb 28 '13 at 14:20
@Trevor, comments added, and you can use ip help, ip ad help or ip ro help to become familiar with ip tool. Also, google for LARTC — Linux Advanced Routing & Traffic Control HOWTO. – poige Feb 28 '13 at 14:51

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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