Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Linux 2.4 - Writing packets with IP_DF set with packets bigger than pmtu

From: <rreddy(at)psc.edu>
Date: Sat Mar 08 2003 - 15:15:03 EST
('binary' encoding is not supported, stored as-is)

Hi,

We want to write packets that are bigger than path MTU (pmtu that is stored in the route cache) in order to elicit "Fragmentation Needed" message. This has been implemented in the "traceroute" program (the -M option), but it does not work if pmtu is stored in the cache (at least on linux).

When IP sees that packet being sent is larger than path MTU (because one of the routers further down the line has a smaller MTU), it framents the packet even if the IP_DF bit is set. We can observe this in the tcpdump outputs. If the route cache is flushed, then it behaves as expected.

Because IP stack on a Linux host insists of doing fragmentation if it belives it is required (inpsite of the fact that DF bit is set in the header) we are attmpting to use the Libnet library to bypass IP and write prebuilt IP packets directly on the ethernet.

Looking at the example icmp_unreach.c sample code, it seems fairly simple except, it is not clear how to get the "dest" ethernet address for next hop.

Just like libnet_get_hwaddr, is there something like libnet_get_nexthop_hwaddr?

Is there an easier way? Or is the only solution to do RIP to get the next hop address and then use ARP to get hwaddr for the next hop? Alternatives?

Thanks!

Do you need help?X

--Raghu Reddy

Just as an aside, in "libnet-functions.h", in the comment above "__libnet_hex_dump" I am sure you meant "intrepid" instead of "trepid", right?



To unsubscribe, e-mail: libnet-unsubscribe@securityfocus.com For additional commands, e-mail: libnet-help@securityfocus.com Received on Sat Mar 8 15:15:35 2003

This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:02:23 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library