0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-18 17:18:42 +00:00
The BIRD project aims to develop a fully functional dynamic IP routing daemon. https://bird.network.cz
Go to file
Ondrej Zajicek (work) c1632ad0f3 OSPF: Fix handling of unnumbered PtPs
This issue has a long history. In 2012, we changed data field for
unnumbered PtP links from iface id (specified by RFC) to IP address based
on reports of bugs in Quagga that required it, and we used out-of-band
information to distinquish unnumberred PtPs with the same local IP
address.

Then with OSPF graceful restart implementation, we found that we can no
longer use out-of-band information, and we need to use only LSAdb info
for routing table calculation, but i forgot to finish handling of this
case, so multiple unnumbered PtPs with the same local IP addresses were
broken.

Considering that even recent Mikrotik RouterOS has broken next hop
calculation that depends on IP address in PtP link data field, we
cannot just switch back to the iface id for unnumbered PtP links.

The patch makes two changes: First, it goes back to use out-of-band
(position) info for distinguishing local interfaces in SPF when graceful
restart is not enabled, while still uses LSAdb-only approach for SPF
calculation when graceful restart is enabled.

Second, it adds OSPF interface option 'ptp address', which controls
whether IP address or iface id is used in data field. It is enabled
by default except for unnumbered PtP links with enabled graceful
restart.

Thanks to Kenth Eriksson for the bugreport and Joakim Tjernlund for
suggestions.
2020-05-26 18:21:43 +02:00
client Merge branch 'master' into HEAD 2019-03-18 12:54:40 +01:00
conf Lexer: strtoul shall never set endptr to NULL; it should be an error 2020-05-01 15:19:12 +02:00
doc OSPF: Fix handling of unnumbered PtPs 2020-05-26 18:21:43 +02:00
filter Nest: Implement BGP path mask loop operator 2020-05-18 16:25:08 +02:00
lib Slab: Init node in slab head to NULLs. 2020-05-01 15:19:12 +02:00
misc Tests: Change unsupported Ubuntu 19.04 for supported version 19.10 2020-05-05 02:16:28 +02:00
nest Nest: Allow key id 0 2020-05-19 02:50:47 +02:00
proto OSPF: Fix handling of unnumbered PtPs 2020-05-26 18:21:43 +02:00
sysdep Unix socket: Path length check directly before copying the path. 2020-05-01 15:19:12 +02:00
test IPv6 address parser: fail on incomplete addresses 2020-05-01 15:19:12 +02:00
tools Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
.dir-locals.el BIRD coding conventions 2019-06-12 16:37:12 +02:00
.gitignore HTML are no longer generated in srcdir 2019-02-19 18:30:28 +01:00
.gitlab-ci.yml Tests: Activate BGP-int test 2020-05-05 02:20:30 +02:00
aclocal.m4 Enable more threads for flto 2019-08-01 14:45:23 +02:00
bird-gdb.py Support for address family constants 2019-11-03 22:25:44 +01:00
bird.conf KRT: Fix IPv6 route learn 2018-02-06 16:08:45 +01:00
configure.ac Static scanner and expensive debugging setup fix 2020-05-01 15:19:12 +02:00
INSTALL Doc: Detect SP/OpenSP automatically 2019-02-19 18:20:07 +01:00
Makefile.in Static scanner and expensive debugging setup fix 2020-05-01 15:19:12 +02:00
NEWS NEWS and version update 2019-10-11 00:18:38 +02:00
README Doc: README and INSTALL update 2019-01-03 17:26:52 +01:00

                       BIRD Internet Routing Daemon

                     Home page  http://bird.network.cz/
                  Mailing list  bird-users@network.cz

                (c) 1998--2008  Martin Mares <mj@ucw.cz>
                (c) 1998--2000  Pavel Machek <pavel@ucw.cz>
                (c) 1998--2008  Ondrej Filip <feela@network.cz>
                (c) 2009--2019  CZ.NIC z.s.p.o.

================================================================================

The BIRD project aims to develop a dynamic IP routing daemon with full support
of all modern routing protocols, easy to use configuration interface and
powerful route filtering language, primarily targeted on (but not limited to)
Linux and other UNIX-like systems and distributed under the GNU General
Public License.

What do we support
==================

	o  Both IPv4 and IPv6
	o  Multiple routing tables
	o  Border Gateway Protocol (BGPv4)
	o  Routing Information Protocol (RIPv2, RIPng)
	o  Open Shortest Path First protocol (OSPFv2, OSPFv3)
	o  Babel Routing Protocol (Babel)
	o  Bidirectional Forwarding Detection (BFD)
	o  IPv6 router advertisements
	o  Static routes
	o  Inter-table protocol
	o  Command-line interface allowing on-line control and inspection of
	   status of the daemon
	o  Soft reconfiguration, no need to use complex online commands to
	   change the configuration, just edit the configuration file and notify
	   BIRD to re-read it and it will smoothly switch itself to the new
	   configuration, not disturbing routing protocols unless they are
	   affected by the configuration changes
	o  Powerful language for route filtering, see doc/bird.conf.example
	o  Linux, FreeBSD, NetBSD and OpenBSD ports

How to install BIRD
===================

	o  From standard distribution package of your OS (recommended)
	o  From official binary packages for Debian and Red Hat Linux
	   ftp://bird.network.cz/pub/bird/debian/
	   ftp://bird.network.cz/pub/bird/redhat/
	o  From source code of the latest stable release version
	   ftp://bird.network.cz/pub/bird/
	o  From current development code in Git repository
	   https://gitlab.labs.nic.cz/labs/bird/

See the file INSTALL for information about installation from source code.

Documentation
=============

Online documentation is available at http://bird.network.cz/?get_doc or as HTML
files in the doc directory, you can install it by `make install-docs' and
rebuild it by `make docs', but you'll need SGMLtools and LaTeX to be installed
on your machine. You can also download a neatly formatted PDF version as
a separate archive (bird-doc-*.tar.gz) from ftp://bird.network.cz/pub/bird/

User support
============

If you want to help us debugging, enhancing and porting BIRD or just lurk
around to see what's going to develop, feel free to subscribe to the BIRD
users mailing list bird-users@network.cz, just send `subscribe' to
bird-request@network.cz. Bug reports, suggestions, feature requests and
code are welcome! We don't use gitlab issues for reporting, sorry.

Subscribe:	http://bird.network.cz/mailman/listinfo/bird-users/
Archive:	http://bird.network.cz/pipermail/bird-users/

Licence
=======

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

History
=======

BIRD development started as a student project at the Faculty of Math
and Physics, Charles University, Prague, Czech Republic under supervision
of RNDr. Libor Forst <forst@cuni.cz>. BIRD has been developed and supported
by CZ.NIC z.s.p.o. http://www.nic.cz/ since 2009.


Good Luck and enjoy the BIRD :)
						The BIRD Team