0

I send IP/UDP frames using raw sockets with destination IP address from 127/8 range - e.g. 127.0.0.6. So, packets are sent over the network OK (checked using tcpdump on the target device).

But on the target linux PC such frames are not processed, i.e. are not sent to UDP socket server (bound to 0.0.0.0). If the destionation IP is the address of the eth1 inerface - the packets are processed properly.

Why Linux doesn't want to process packet with local host IPs? Is it kernel Bug?

I need the address 127.x.x.x since the LSP Ping uses this address (RFC 4379).

  • I am sure it would be considered a bug if the kernel did process such packets. – kasperd Jun 25 '15 at 13:24
3

This is by design, the entire 127.X.X.X address range is reserved for loopback, as defined in RFC1700:

http://www.ietf.org/rfc/rfc1700.txt

This is discussed a little more here:

why is loopback IP address from 127.0.0.1 to 127.255.255.254?

Just because MPLS uses it internally (For whatever reason), that doesn't mean a target server can listen on it and use that range.

  • If you set route_localnet to true, then you can route loopback addresses over real networks just fine. – David Schwartz Nov 2 '16 at 9:37

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.