Re[2]: local ip address routeable?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ip_route_output()->ip_route_output_slow() is the route lookup function, 
here the FIB (first routing cache) is looked up and outgoing route 
decided. If the destination address is one of our own addresses 
the outgoing interface wil be set to the loopback interface and hence 
loopback_xmit() will be called, which will again queue the packet 
(netif_rx()) as if it was received from the wire. 
You dont want loopback_xmit() to be called. U want the outgoing interface 
to be set to  an ethernet interface. U an do this change inside 
ip_route_output_slow(), read it carefully. 
Now once the outgoing interface is set to a non-loopback interface, the 
outgoing packets will come on the wire, but the second hurdle is to force 
the m/c to generate ARP for this. I have done it in 2.0.35, things have 
changed wuite a lot since then, but you should be able to find it in 
arp.c, somwhow the arp_query() function should be called.

tomar

 On Wed, 16 Jul 2003, Christian Stuellenberg wrote:

> >>>>> "Christian" == Christian Stuellenberg
> <christian_stuellenberg@web.de> writes:
> >>>>> "Nagendra" == Nagendra Singh Tomar <nagendra_tomar@adaptec.com>
> writes:
> Hello,
> 
>     Christian> Is it possible to route packets that are addressed to
>     Christian> an local ip IP1 on DEV1 out over another interface DEV2
>     Christian> again (and later to locally accept the package on DEV3
>     Christian> for IP1)?  If so, how?
>     Nagendra> Two things you have to do here: 1. Whenever the sending
>     Nagendra> code figures out that the destination is one of its own
>     Nagendra> IP address it will pass it to the loopback
>     Nagendra> interface. You have to modify here to prevent it from
>     Nagendra> doing this.  2. You have to modify the ARP code so that
>     Nagendra> it generates an ARP request for its own IP address.  I
>     Nagendra> have done these two things once in 2.0.35 kernel and it
>     Nagendra> worked !
> 
> Due to my poor experience with the kernel-development this would not
> that easy for me.  Do you have some hints, on where to start?
> 
> Regards,
> Christian
> 
> -
> : send the line "unsubscribe linux-net" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux