Hello routing and tunneling guys and gals! I have a tunneling quandry for
ye.
I am doing an implementation of mobile ip and have finally solidified all
of the protocol bits to implement a foreign agent, and have come to the
part where I need to accept ip-in-ip tunneled packets for a mobile node,
detunnel them, and deliver them to him. I am using the kernel ipip.o
module for this, and have configured the tunnel as follows:
__________ _____________ ___________
| | | | | |
|home agent|===(router)===>|foreign agent|------->|mobile node|
|__________| |_____________| |___________|
home agent ip - 172.24.8.99
foreign agent ip - 172.24.20.104
mobile node ip - 172.24.8.24 (on the foreign network)
I am not in control of the home agent, but I have verified with a sniffer
that he is sending me well-formed ip-in-ip packets for the mobile node,
plus he works with anothe foreign agent that I have, so he is not the
problem.
foreign agent configuration:
# bring up tunnel device
ip tunnel add mode ipip # (default tunnel tunl0; local *->remote *)
# add static arp table entry since mobile node can't reply
ip neigh add 172.24.8.24 lladdr 00:00:0d:2f:a0:b0 dev eth0 nud perm
# add static host route
ip route add 172.24.8.24 dev eth0
I have verified the following:
1) The packets are getting delivered to the foreign agent;
2) The packets are being accepted by tunl0 and processed;
3) They are the expected size (the size of the inner ip packet);
4) They are not being delivered anywhere outside the box.
I figure the following bits are true:
The foreign agent is holding a copy of the ip packet addressed to the
mobile node. He may do one of the following: a) assume that the packet
is for delivery on the local link, look up the ip in the arp table,
and deliver it to the mobile node b) hit the routing table again and see
the host route, see that it is directly connected, look up the ip in
the arp table, and deliver it to the mobile node.
c) drop the packet
Obviously, given the way I have configured the box, I believe that "b"
should be what is happening. However, it seems plain that "c" is the
option that has been chosen by the tunl0 device.
I am obviously missing something quite overt, so I thought that one of you
guys might be able to see what I can't.
--
------------------------------------------------------------------------
Chad Carr [EMAIL PROTECTED]
------------------------------------------------------------------------
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
------------------------------------------------------------------------
leaf-user mailing list: [EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-user
SR FAQ: http://leaf-project.org/pub/doc/docmanager/docid_1891.html