Date: Mon, 22 Jun 2020 00:05:41 +0100 From: Alexander V. Chernikov <melifaro@freebsd.org> To: "current@FreeBSD.org" <current@freebsd.org>, net <net@freebsd.org>, freebsd-hackers <freebsd-hackers@freebsd.org> Subject: routed && route6d removal proposal Message-ID: <273191592779927@mail.yandex.ru>
next in thread | raw e-mail | index | archive | help
Hey, I would like to propose removal of sbin/routed and usr.sbin/route6d. 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. 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 "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. 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. 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. 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: 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?273191592779927>