Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Mar 2023 20:45:35 +0300
From:      Victor Gamov <vitspec@gmail.com>
To:        Alexander Chernikov <melifaro@freebsd.org>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: ECMP, DF-bit and ICMP "Fragmentation needed"
Message-ID:  <CAPOOyvkRswW3bm5AQ%2B8O-ksunnsKJJJS8qgQT7pYM1JUspxr%2BQ@mail.gmail.com>
In-Reply-To: <D6B018C6-C3CF-41FB-9EF5-EAECA63ECB1F@freebsd.org>
References:  <CAPOOyvkdnfotpEHwWYfRBUfmLmF9-eBLHWU-LOJnDVSBy_S4_A@mail.gmail.com> <D6B018C6-C3CF-41FB-9EF5-EAECA63ECB1F@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Mon, 27 Feb 2023 at 13:57, Alexander Chernikov <melifaro@freebsd.org>
wrote:

>
>
> > On 26 Feb 2023, at 12:07, Victor Gamov <vitspec@gmail.com> wrote:
> >
> > Hi All
> >
> > I have following scheme:
> > - LAN segment 10.5.8.0/24 with router1 (10.5.8.1) and MTU=1500
> > - two hosts at LAN segment host21 (10.5.8.21) and host22 (10.5.8.22)
> > - host21 and host22 has VIP=172.16.110.30 configured as LAN-interface
> alias
> > - host21 and host22 ha BGP peering with router1 and announce VIP to
> router1
> > - hostX somewhere at intranet
> > - ipsec-tunnel with MTU=1400
> >
> > ECMP works fine and traffic from other segments to VIP is balanced
> between host21+host22 by router1.
> >
> > The problem is:
> > when host21 and/or host22 send large packet with DF-bit using VIP as
> source then ipsec-router sends ICMP "Fragmentation needed" and then this
> ICMP is _always_ sent to only host22 by router1.
> >
> > I think it may be hard or impossible to find proper VIP-owner to send
> this ICMP.  Is it possible to propagate such ICMP to all VIP-owners in
> router1 routing-table? Or may some data from ICMP message be used to
> properly calculate ECMP-hash to find a real VIP-owner which must receive
> this ICMP?
> Generally it’s pretty hard to do. The path may go through the multiple
> routers which has it own hash calculation + seed to avoid the traffic
> polarisation. Personally I’d suggest doing some sort of ICMP replication on
> either the source node or the hosts.
>

Hi Alexander!

Thanks for your reply.

In my scheme router1 can replicate such ICMP to all VIP-owners.  And only
router1 knows about both host21+host22 peers -- for all other network
devices this VIP is behind router1.

-- 
CU,
Victor Gamov

[-- Attachment #2 --]
<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 27 Feb 2023 at 13:57, Alexander Chernikov &lt;<a href="mailto:melifaro@freebsd.org" target="_blank">melifaro@freebsd.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
&gt; On 26 Feb 2023, at 12:07, Victor Gamov &lt;<a href="mailto:vitspec@gmail.com" target="_blank">vitspec@gmail.com</a>&gt; wrote:<br>
&gt; <br>
&gt; Hi All<br>
&gt; <br>
&gt; I have following scheme:<br>
&gt; - LAN segment <a href="http://10.5.8.0/24" rel="noreferrer" target="_blank">10.5.8.0/24</a> with router1 (10.5.8.1) and MTU=1500<br>
&gt; - two hosts at LAN segment host21 (10.5.8.21) and host22 (10.5.8.22)<br>
&gt; - host21 and host22 has VIP=172.16.110.30 configured as LAN-interface alias<br>
&gt; - host21 and host22 ha BGP peering with router1 and announce VIP to router1<br>
&gt; - hostX somewhere at intranet<br>
&gt; - ipsec-tunnel with MTU=1400<br>
&gt; <br>
&gt; ECMP works fine and traffic from other segments to VIP is balanced between host21+host22 by router1.<br>
&gt; <br>
&gt; The problem is:<br>
&gt; when host21 and/or host22 send large packet with DF-bit using VIP as source then ipsec-router sends ICMP &quot;Fragmentation needed&quot; and then this ICMP is _always_ sent to only host22 by router1.<br>
&gt; <br>
&gt; I think it may be hard or impossible to find proper VIP-owner to send this ICMP.  Is it possible to propagate such ICMP to all VIP-owners in router1 routing-table? Or may some data from ICMP message be used to properly calculate ECMP-hash to find a real VIP-owner which must receive this ICMP?<br>
Generally it’s pretty hard to do. The path may go through the multiple routers which has it own hash calculation + seed to avoid the traffic polarisation. Personally I’d suggest doing some sort of ICMP replication on either the source node or the hosts.<br clear="all"></blockquote><div><br></div><div>Hi Alexander!</div><div><br></div><div>Thanks for your reply. <br></div><div><br></div><div>In my scheme router1 can replicate such ICMP to all VIP-owners.  And only router1 knows about both host21+host22 peers -- for all other network devices this VIP is behind router1.</div></div><br>-- <br><div dir="ltr">CU,<br>Victor Gamov</div></div>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPOOyvkRswW3bm5AQ%2B8O-ksunnsKJJJS8qgQT7pYM1JUspxr%2BQ>