Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2020 09:20:40 +0100
From:      Alexander V. Chernikov <melifaro@freebsd.org>
To:        Rodney W. Grimes <freebsd-rwg@gndrsh.dnsmgr.net>
Cc:        "current@FreeBSD.org" <current@freebsd.org>, net <net@freebsd.org>, freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: routed && route6d removal proposal
Message-ID:  <102621592983711@mail.yandex.ru>
In-Reply-To: <202006221249.05MCnrKw010397@gndrsh.dnsmgr.net>
References:  <273191592779927@mail.yandex.ru> <202006221249.05MCnrKw010397@gndrsh.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
22.06.2020, 13:50, "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>:
>>  Hey,
Hi Rodney,
>>
>>  I would like to propose removal of sbin/routed and usr.sbin/route6d.
>
> I disagree with removal, as your analysis is flawed.
Thank you for the feedback!
>
>>  routed(8) is the daemon implementing RIPv2 routing protocol.
>>  route6d(8) is the daemon implementing RIPng routing protocol for IPv6.
>>
>>  RIP [1] was one of the first protocols used in the networking. The first version was implemented back in 1982.
>
> RIPv1 was implemented in 1982, RIPv2 became RFC2453 in November 1998, and is a current and valid IETF standard, STD56.
> It was updated by RFC4822 in February 2007.
>
>>  1. Network landscape has changed since then. BGP, OSPF, IS-ISIS and other routing protocols have been created and greatly improved over years. People have created and adopted numerous designs leveraging OSPF/ISIS or BGP.
>>  RIP became obsolete a while ago as there were no competitive advantage it can offer.
>
>>  "It is the oldest routing protocol used by the network industry and is considered by many to be inefficient or border-line obsolete." ? [2], 2009
>
> RIPv2 is not obosolete, and your reference is not authoritave on what is or is not an obsolete network protocol.
Different people have different opinions :-)
Let me rephrase the point I'm trying to make: RIP original design was created a long time ago. The current landscape is different: there are multiple protocols that are superset of RIP. There are multiple implementations of these protocols that are easily available. The configuration is not non-zero, but simple.
Even further, more and more want their protocol daemon to have an api - and that makes implementations like goBGP extremely popular, moving people from "traditional" routing suites/daemons.
With all that in mind, I see RIP popularity and usage going in only one direction.
> I know of people using RIPv2 in networks.
Collecting people feedback is the goal of this exercise. If there are existing users, then that's certainly a valid point in keeping the daemons in question.
>
>>  "Today, the only reason you might run across a network running RIPv2 is either that the network is very old and in serious need of an upgrade or the network is running cheaper, consumer-grade routing hardware that can only support RIP" ? [3], 2016.
>
> Or there simply is no need for anything more complicated. RipV2 is a very simple protocol and works fine for small networks in many settings.
>
>>  1.1. Nowadays the daemon name is simply misleading. Given situation described above, one does expect far wider functionality from the program named "route[6]d" than just RIP implementation.
>
> I'll agree the name is missleading, so change it, but removal on your false basis is not.
>
>>  2. Multiple routing stacks supporting all major routing protocol including RIP exists these days: bird, frr, quagga. Many BGP-only designs in are gaining popularity, so do bgp speakers such as exabgp or gobgp. Nowadays, if one needs dynamic routing on the host, OSPF or BGP speaker is the choice. FreeBSD packages contains well-maintained ports for these. Having RIP[ng] speakers in base offers no advantage.
>
> Routing stacks? You mean routing daemons? Forcing users to install bir, frr or quagga when all they need, or have been using for a long time is in base ripv2 is not good for users.
Routing protocol suite, routing daemons, etc..
The question that I'm trying to get an answer for is the existence of these users :-)

>
>>  3. Both routed/route6d are largely unmaintained [4] and presents an additional attack vector. Here is the list of last non-trivial commits to routed/route6d:
>
> Whats unmaintained about code that has no need to change cause it just pretty much works?
Yep, and then you get SA 14:21 or SA 20:12. 
>
>>  sbin/routed:
>>  r327276 - coverity
>>  r317035 - rtsock fix
>>  r299825 - coverity
>>  r299822 - coverity, from netbsd
>>  r299821 - coverity, from netbsd
>>  r299784 - coverity, from netbsd
>>  r299771 - coverify, from netbsd
>>  r286347 - bugfix
>>  r276602 - SA14:21 patch
>>  r271919 - SA14:21 fix
>>  r215702 - logic fix, 2010
>>
>>  usr.sbin/route6d:
>>  r337500 - functional fix, 2018
>>  r317035 - rtsock fix
>>  r311994 - coverity
>>  r311985 - coverity
>>  r299869 - coverity
>>  r299491 - coverity
>>  r270234 - link-local fix
>>  r243233 - functionality improvement, 2012
>>
>>  To summarise: RIP protocol is obsolete, implementations for newer protocols exists in ports, implementation in base is unmaintained.
>>
>>  With all that in mind I propose to remove routed and route6d from base in FreeBSD 13.
>>  Timeline:
>>  June 5 - feedback aggregation and decision point
>>  July 19 - removal (proposed)
>>
>>  [1] https://en.wikipedia.org/wiki/Routing_Information_Protocol
>>  [2] https://www.globalknowledge.com/ca-en/resources/resource-library/articles/basics-of-understanding-rip/
>>  [3] https://www.networkcomputing.com/data-centers/comparing-dynamic-routing-protocols
>>  [4] https://bugs.freebsd.org/bugzilla/buglist.cgi?cmdtype=runnamed&list_id=361897&namedcmd=routed_prs
>>
>>  /Alexander
>>  _______________________________________________
>>  freebsd-net@freebsd.org mailing list
>>  https://lists.freebsd.org/mailman/listinfo/freebsd-net
>>  To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>
> --
> Rod Grimes rgrimes@freebsd.org
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?102621592983711>