LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: ARPing & Direct Routing

To: David Couture <dc@xxxxxxxxxxxxxx>
Subject: Re: ARPing & Direct Routing
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: "Stephen D. WIlliams" <sdw@xxxxxxx>
Date: Mon, 20 Sep 1999 04:31:00 +0000
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

<Prev in Thread] Current Thread [Next in Thread>