I created a patch that fixed this at the arp_send() level, but this is great
also. I'll add it to the existing patch along with Axel's improvement for
allowing ARP requests.
sdw
David Couture wrote:
> --0qIBMM64XW
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> I've been trying to get Direct Routing to work as well (without using
> the tunneling method). I think a have a solution!
>
> My patch is just a slightly modified version of one that Wensong has
> given out. It's meant for the non-Director servers (LVS slaves?) and
> version 2.2.12 of the kernel.
>
> Let me explain my change; when I debugged the kernel, I noticed that
> my "lo:0" interface had the flags
>
> IFF_RUNNING, IFF_LOOPBACK and IFF_UP
>
> and that's why the ARP reply were still being sent. So, adding a
> check for IFF_LOOPBACK made it work as expected. Should this check be
> tied to IFF_UP too?
>
> Comments?
>
> /dc.
>
> --
> FORTUNE COOKIE:
> I was in a bar and I walked up to a beautiful woman and said, "Do you live
> around here often?" She said, "You're wearing two different-color socks."
> I said, "Yes, but to me they're the same because I go by thickness."
> She said, "How do you feel?" And I said, "You know when you're sitting on a
> chair and you lean back so you're just on two legs and you lean too far so
> you almost fall over but at the last second you catch yourself? I feel like
> that all the time..."
> -- Steven Wright, "Gentlemen's Quarterly"
>
> --0qIBMM64XW
> Content-Type: text/plain
> Content-Disposition: inline;
> filename="ipvs-noarp-dc-2.2.12.patch"
> Content-Transfer-Encoding: 7bit
>
> --- kernel-source-2.2.12/net/ipv4/arp.c Mon Aug 9 13:04:41 1999
> +++ kernel-source-2.2.12-noarp-4/net/ipv4/arp.c Sun Sep 19 20:49:05 1999
> @@ -65,6 +65,7 @@
> * clean up the APFDDI & gen. FDDI bits.
> * Alexey Kuznetsov: new arp state machine;
> * now it is in net/core/neighbour.c.
> + * Wensong Zhang : NOARP device (such as tunl) arp fix.
> */
>
> /* RFC1122 Status:
> @@ -534,6 +535,7 @@
> struct rtable *rt;
> unsigned char *sha, *tha;
> u32 sip, tip;
> + struct device *tdev;
> u16 dev_type = dev->type;
> int addr_type;
> struct in_device *in_dev = dev->ip_ptr;
> @@ -627,6 +629,16 @@
> * addresses. If this is one such, delete it.
> */
> if (LOOPBACK(tip) || MULTICAST(tip))
> + goto out;
> +
> +/*
> + * Check for the device flags for the target IP. If the IFF_NOARP
> + * is set, just delete it. No arp reply is sent. -- WZ
> + *
> + * If IFF_LOOPBACK is set, then delete it too. /dc.
> + */
> + if ((tdev = ip_dev_find(tip)) &&
> + ((tdev->flags & IFF_NOARP) || (tdev->flags & IFF_LOOPBACK)))
> goto out;
>
> /*
>
> --0qIBMM64XW
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> --0qIBMM64XW--
>
> ----------------------------------------------------------------------
> LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe, e-mail: lvs-users-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx
> For additional commands, e-mail: lvs-users-help@xxxxxxxxxxxxxxxxxxxxxx
--
OptimaLogic - Finding Optimal Solutions Web/Crypto/OO/Unix/Comm/Video/DBMS
sdw@xxxxxxx Stephen D. Williams Senior Consultant/Architect http://sdw.st
43392 Wayside Cir,Ashburn,VA 20147-4622 703-724-0118W 703-995-0407Fax 5Jan1999
----------------------------------------------------------------------
LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
To unsubscribe, e-mail: lvs-users-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: lvs-users-help@xxxxxxxxxxxxxxxxxxxxxx
|