From owner-freebsd-net@freebsd.org Sun Jun 21 23:05:48 2020 Return-Path: Delivered-To: freebsd-net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B9E93337D19 for ; Sun, 21 Jun 2020 23:05:48 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 49qp701DP7z3Yh8 for ; Sun, 21 Jun 2020 23:05:48 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: by mailman.nyi.freebsd.org (Postfix) id 279403379D9; Sun, 21 Jun 2020 23:05:48 +0000 (UTC) Delivered-To: net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25054337D89; Sun, 21 Jun 2020 23:05:48 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward501j.mail.yandex.net (forward501j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49qp6y1ZmMz3Yw1; Sun, 21 Jun 2020 23:05:45 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mxback10q.mail.yandex.net (mxback10q.mail.yandex.net [IPv6:2a02:6b8:c0e:1b4:0:640:b6ef:cb3]) by forward501j.mail.yandex.net (Yandex) with ESMTP id D44BF3380064; Mon, 22 Jun 2020 02:05:41 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback10q.mail.yandex.net (mxback/Yandex) with ESMTP id pZBTlDF1YE-5fd82uEr; Mon, 22 Jun 2020 02:05:41 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1592780741; bh=gkgovdBpraTb6swxB2MuufFuBSYbNOP8Lq58pZhBCSU=; h=Message-Id:Date:Subject:To:From; b=mOTxj2WLj/wxAeVTxnalSCJjfo3kQv2spc4Awyms4PwUKadsSPyyBtTmgCGNaEnB4 CTno6+U+77PvMxUbXXcRokXjGBjZW0WcjO2/QZ7x59nh+8iuU+jlU7+e5/4apfVBYm JlN1z8u5fcOMOCNycr/mFWTGmtjBDso5xLQrYObg= Received: by vla1-b1f71bfb4f06.qloud-c.yandex.net with HTTP; Mon, 22 Jun 2020 02:05:41 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: "current@FreeBSD.org" , net , freebsd-hackers Subject: routed && route6d removal proposal MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Mon, 22 Jun 2020 00:05:41 +0100 Message-Id: <273191592779927@mail.yandex.ru> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-Rspamd-Queue-Id: 49qp6y1ZmMz3Yw1 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ipfw.ru header.s=mail header.b=mOTxj2WL; dmarc=none; spf=pass (mx1.freebsd.org: domain of melifaro@ipfw.ru designates 2a02:6b8:0:801:2::111 as permitted sender) smtp.mailfrom=melifaro@ipfw.ru X-Spamd-Result: default: False [-3.35 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[ipfw.ru:s=mail]; NEURAL_HAM_MEDIUM(-1.01)[-1.011]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_SPF_ALLOW(-0.20)[+ip6:2a02:6b8:0::/52]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.04)[-1.044]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[ipfw.ru:+]; NEURAL_HAM_SHORT(-0.99)[-0.992]; FORGED_SENDER(0.30)[melifaro@freebsd.org,melifaro@ipfw.ru]; RCVD_IN_DNSWL_LOW(-0.10)[2a02:6b8:0:801:2::111:from]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:13238, ipnet:2a02:6b8::/32, country:RU]; FROM_NEQ_ENVFROM(0.00)[melifaro@freebsd.org,melifaro@ipfw.ru] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2020 23:05:48 -0000 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