Date: Mon, 26 Apr 2021 00:07:03 +0800 From: Zhenlei Huang <zlei.huang@gmail.com> To: "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net> Cc: freebsd-hackers@freebsd.org Subject: Re: Are there any RFCs for address selection for IPv4 Message-ID: <BF63DA36-A778-4207-B95C-353B0DE4D98C@gmail.com> In-Reply-To: <202104251340.13PDej0b093486@gndrsh.dnsmgr.net> References: <202104251340.13PDej0b093486@gndrsh.dnsmgr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Rod Grimes, > On Apr 25, 2021, at 9:40 PM, Rodney W. Grimes = <freebsd-rwg@gndrsh.dnsmgr.net> wrote: >=20 >> Hello hackers, >>=20 >> For IPv6 there's RFC 6724 to clarify the default address selection = procedure,=20 >> both for source address selection and destination address selection. = Are there >> any RFCs like RFC 6724 that are for IPv4?=20 >=20 > The important difference I think here is that in IPv6 it is very = normal to > have both a link local and a routable IP address on an interface. RFC = 3927 > speaks to this for IPv4 with: > IPv4 Link-Local addresses are not suitable for communication with > devices not directly connected to the same physical (or logical) > link, and are only used where stable, routable addresses are not > available (such as on ad hoc or isolated networks). This document > does not recommend that IPv4 Link-Local addresses and routable > addresses be configured simultaneously on the same interface. >=20 > Though technically you have not put a global uniq unicast address on = the > outbound interface the fact your trying to route one via that = interface > to a loopback interface puts you into the situation your attempting > to route global IP over a link local address. =20 >>=20 >> I'm exploring RFC 3927, consider this situation, a host configured = with link-local >> address on NIC and global unicast alias address on loopback = interface, and default route to=20 >> the link-local address of router (some ISPs do this). The current = implementation kernel >> will use the link-local address as the source address when = initializing a connection to=20 >> remote host via the default route. It seems wrong, as link-local = address are not=20 >> routable as per RFC 3927. >=20 > So your wanting the kernel to pick a source address on another = interface > for a packet going out a different interface, that is what seems = wrong. I'm not sure if this is proper for IPv4, but in the IPv6 network stack, = FreeBSD's current implementation select global unicast address over link-local = address, in case the outgoing interface does not have any global unicast addresses. I'm wondering whether it makes sense also for IPv4. >=20 > Though I think this could be solved by applying a technique used in > routers, and that is the concept of a host specific globally routeable > IP address that should be used for all non-local packets. This is = useful > in complex multipath networks as the router is always accessable via > that IP address no mater which interfaces are routing packets = correctly > as long as the routing protocols are maintaining a path to it. >=20 > But before going down that road, why are you putting your desired = globally > routeable IP address on lo0 and not on the upstream interface which = would > eliminate this problem? Is it because you have a complex multipath = network, > or is it from an attempt to save some global IP's that would be needed > to run these on the link? Or? >=20 Reading RFC 3927 2.7, it states link-local addresses are not routable. = The router shall discard those packets from or to link-local addresses. Then it make no = sense for a host to select link-local address as source address when it initialize a = connection, except for=20 an edge case that the destination is also link-local address. >>=20 >> So it is important if there's corresponding RFC clarify the source = address selection=20 >> for IPv4. >=20 > I do not believe you well find anything that speaks to this issue for = IPv4, as > your not really in the situation of RFC6724 which has to do with = multiple IP > addresses on the same interface. >=20 >> Thanks :) >> _______________________________________________ >> freebsd-hackers@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers >> To unsubscribe, send any mail to = "freebsd-hackers-unsubscribe@freebsd.org" >=20 > --=20 > Rod Grimes = rgrimes@freebsd.org Thanks, Zhenlei Huang
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BF63DA36-A778-4207-B95C-353B0DE4D98C>