LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] LVS-DR generates TONS of icmp unreachables

To: Joseph Mack <mack@xxxxxxxxxxx>
Subject: Re: [lvs-users] LVS-DR generates TONS of icmp unreachables
Cc: Jivko Velev <jiko@xxxxxxxxxx>, Jerry Glomph Black <black@xxxxxxxx>, Julian Anastasov <uli@xxxxxxxxxxxxxxxxxxxxxx>, lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: Wensong Zhang <wensong@xxxxxxxxxxxx>
Date: Sun, 23 Jan 2000 00:30:38 +0800
Joseph Mack wrote:
> 
> On Fri, 21 Jan 2000, Wensong Zhang wrote:
> 
> > No, it is not right. The director handles ICMP packets for virtual
> > services long time ago, please check the ChangeLog of the code.
> 
> from ChangeLog for 0.9.3-2.2.13
> 
>         The incoming ICMP packets for virtual services will be forwarded
>         to the right real servers, and outgoing ICMP packets from virtual
>         services will be altered and send out correctly. This is important
>         for error and control notification between clients and servers,
>         such as the MTU discovery.
> 
> If a realserver goes down after the connection is established, will the
> client get a dest_unreachable from the director?
> 

No. Here is a design issue. If the director sends an ICMP_DEST_UNREACH
immediately, all tranfered data for the established connection will be
lost, the client needs to establish a new connection. Instead, we
would rather wait for the timeout of connection, if the real server
recovers from the temporary down (such as overloaded state) before the
connection expires, then the connection can continue. If the real
server doesn't recover before the expire, then an ICMP_DEST_UNREACH is
sent to the client.

> If the client goes down after the connection is established, where do the
> dest_unreachable icmp packets generated by the last router go?

If the client is unreachable, some router will generate an
ICMP_DEST_UNREACH packet and sent to the VIP, then the director will
forward the ICMP packet to the real server.

> 
> Since icmp packets are udp, are the icmp packets routed through the
> director independantly of the services that are being LVS'ed. ie if the
> director is only forwarding port 80/tcp, from CIP to a particular RIP,
> does the LVS code which handles the icmp forward all icmp packets from the
> CIP to that RIP. What if the client has a telnet session to one realserver
> and http to another realserver?
> 

It doesn't matter, because the header of the original packet is
encapsulated in the icmp packet. It is easy to identify which
connection is the icmp packet for.

Cheers,

Wensong

P.S. I will go home today for a three-week winter vacation. Since the
Spring Festival is a great time for family reunion in China, I will
spend most of time with my family, but I will also do some coding and
randomly check this mailing list. ;-)

----------------------------------------------------------------------
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>