[babel] About ICMP and unnumbered routers

Juliusz Chroboczek <jch@irif.fr> Sun, 02 August 2020 19:08 UTC

Return-Path: <jch@irif.fr>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 373D43A0AE5 for <babel@ietfa.amsl.com>; Sun, 2 Aug 2020 12:08:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s10glowHzB5z for <babel@ietfa.amsl.com>; Sun, 2 Aug 2020 12:08:05 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5AAED3A0AE3 for <babel@ietf.org>; Sun, 2 Aug 2020 12:08:04 -0700 (PDT)
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 072J80am027430; Sun, 2 Aug 2020 21:08:00 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id EBA19BAE82; Sun, 2 Aug 2020 21:08:00 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id ZugTU_oe_J85; Sun, 2 Aug 2020 21:07:59 +0200 (CEST)
Received: from pirx.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id BAD56BAE80; Sun, 2 Aug 2020 21:07:59 +0200 (CEST)
Date: Sun, 02 Aug 2020 21:07:59 +0200
Message-ID: <87pn88kgs0.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: babel@ietf.org
CC: Théophile Bastian <theophile.bastian@ens.fr>, Margaret <mrcullen42@gmail.com>
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="US-ASCII"
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Sun, 02 Aug 2020 21:08:01 +0200 (CEST)
X-Miltered: at korolev with ID 5F270F10.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 5F270F10.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 5F270F10.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/NisAlZYgnbLrmkD4Zv8XTHbALso>
Subject: [babel] About ICMP and unnumbered routers
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Aug 2020 19:08:07 -0000

Dear all,

This mail is about the consequences of draft-bastian-babel-v4ov6-00 on
ICMPv4 generation.

At last week's meeting, Margaret kindly pointed out that we didn't do our
homework, and that we didn't consider how ICMPv4 is sent out when the
sending router has no IPv4 addresses.  I've looked at a few RFCs, and here
are my tentative conclusions.

RFC 1812 Section 2.2.7 says:

   In this scheme, a router that
   has unnumbered point to point lines also has a special IP address,
   called a router-id in this memo.  The router-id is one of the
   router's IP addresses (a router is required to have at least one IP
   address).  This router-id is used as if it is the IP address of all
   unnumbered interfaces.

So it looks like it was decided back in 1995 that all IPv4 routers need at
least one IPv4 address.  Much as I tried, I couldn't find anything that
would relax this requirement.  As expected, when an ICMPv4 packet is sent
over an unnumbered interface, the distinguished "router-id" address is
used as the source address:

   the IP source address in an ICMP message originated by the router MUST
   be one of the IP addresses associated with the physical interface over
   which the ICMP message is transmitted.  If the interface has no IP
   addresses associated with it, the router's router-id (see Section
   [5.2.5]) is used instead.

(This appears to be a typo -- there's nothing relevant in Section 5.2.5.)

Interestingly, there appears to be nothing in RFC 1812 that specifies that
the router-id is globally unique; thus, what we could do would be to put
the same IPv4 address on all routers.  This would make traceroute a little
confusing (RFC 5837 might help), but it would solve both the problem with
ICMPv4 blackholes and compliance with RFC 1812.

In the light of the above, and in the immortal words of Lenin, what shall we do?

1. Pick a private IPv4 (say 10.42.42.42) and put it on the loopback
   interface of all unnumbered routers.

2. Request a dedicated IPv4 address (the "all-routers anycast address") to
   be used as the loopback address of unnumbered routers.

3. Update RFC 1812 to allow unnumbered routers and 0.0.0.0 as the source
   address of ICMPv4 packets.

I'm interested in the comments of wise people.

-- Juliusz