4.2 ip source route bug?
Bob Walsh
walsh at bbn-labs-b
Fri Jan 25 00:24:16 AEST 1985
The distributed 4.2 source routing is not properly done. A source
routed packet looks like:
IP header
dst 128.11.1.1
---------------------------------------
IP options
8.7.0.2
9.9.9.9 <-
192.23.2.1
The if_ifwithaddr() check should see if the IP header destination field
is on the current host. It improperly checks to see if the next hop is
the current host. It should:
Is the current host 128.11.1.1 => if_ifwithaddr(128.11.1.1)
No, and strict source routing => ICMP error message
No, and loose source routing => forward packet
Yes. IP dst gets 9.9.9.9. Store outgoing interface where 9.9.9.9 was.
Bump option pointer up by sizeof(struct in_addr). If we're not on the
network of the new destination and it's a strictly source routed packet,
then generate an ICMP error message. Otherwise, forward it.
bob walsh
More information about the Comp.unix.wizards
mailing list