mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
144 lines
4.2 KiB
Plaintext
144 lines
4.2 KiB
Plaintext
|
Core
|
||
|
~~~~
|
||
|
- route validation
|
||
|
- fake multipath?
|
||
|
- config file: symbolic constants?
|
||
|
- counters (according to SNMP MIB?)
|
||
|
- generation of subnet mask ICMP's for v6?
|
||
|
- debugging dumps and protocol tracing!
|
||
|
- unaligned accesses?
|
||
|
|
||
|
|
||
|
RIP
|
||
|
~~~
|
||
|
- RIP: export-only and import-only mode?
|
||
|
- drop RIPv1 (Historic protocol)?
|
||
|
|
||
|
OSPF
|
||
|
~~~~
|
||
|
|
||
|
Almquist & Kastenholz [Page 111]
|
||
|
RFC 1716 Towards Requirements for IP Routers November 1994
|
||
|
|
||
|
|
||
|
7.2.2.2 Specific Issues
|
||
|
|
||
|
Virtual Links
|
||
|
|
||
|
There is a minor error in the specification that can cause
|
||
|
routing loops when all of the following conditions are
|
||
|
simultaneously true:
|
||
|
|
||
|
(1) A virtual link is configured through a transit area,
|
||
|
|
||
|
(2) Two separate paths exist, each having the same
|
||
|
endpoints, but one utilizing only non-virtual
|
||
|
backbone links, and the other using links in the
|
||
|
transit area, and
|
||
|
|
||
|
(3) The latter path is part of the (underlying physical
|
||
|
representation of the) configured virtual link,
|
||
|
routing loops may occur.
|
||
|
|
||
|
To prevent this, an implementation of OSPF SHOULD invoke
|
||
|
the calculation in Section 16.3 of [ROUTE:1] whenever any
|
||
|
part of the path to the destination is a virtual link (the
|
||
|
specification only says this is necessary when the first
|
||
|
hop is a virtual link).
|
||
|
|
||
|
BGP
|
||
|
~~~
|
||
|
- BGP:
|
||
|
- in, local, out RIB
|
||
|
- maxsize=4096
|
||
|
- BGP identifier aka router id
|
||
|
- removal of loops
|
||
|
- aggregation, ATOMIC_AGGREGATE
|
||
|
- communities
|
||
|
- confederations
|
||
|
- attributes must be sorted!
|
||
|
- re-export of NEXT_HOP attribute
|
||
|
- BGP session over currently down interface
|
||
|
- route flap dampening?
|
||
|
- LOCAL_PREF attribute
|
||
|
- error notification received -> log error
|
||
|
- set TTL to 1 (configurable?)
|
||
|
- consulting IGP for next-hop information? (what if it changes?)
|
||
|
- inter-advertisement delay???!
|
||
|
- normalize (sort) incoming AS-SET's
|
||
|
- maximum length of AS paths
|
||
|
|
||
|
- expected neighbor AS
|
||
|
- hold time
|
||
|
- idle timer after error: initial value, exponential growth, maximum value
|
||
|
|
||
|
- address testing macros (ALL_ZEROS)
|
||
|
- all internal tables are in network order (?)
|
||
|
- logging of errors and debug dumps
|
||
|
- filter: logging of dropped routes (?)
|
||
|
- limitation of memory consumption: per-process and total
|
||
|
- alloca
|
||
|
- precedence of all packets (incl. TCP)
|
||
|
- adding of route: clear all bits not covered by masklen
|
||
|
- switch: generate default route only if at least one BGP connection exists
|
||
|
|
||
|
- route update: new, change, remove
|
||
|
- route recalculation timing
|
||
|
|
||
|
- CONFIG_TOS
|
||
|
- CONFIG_MULTIPATH
|
||
|
|
||
|
- reconfiguration without restart of all protocols?
|
||
|
- change of interface address: ??? (down and up?)
|
||
|
- "generate default route" switch for all IGP's
|
||
|
|
||
|
- RIPv2:
|
||
|
- Route Tag
|
||
|
- limit routing table xfer (frequency, only to neighbors)
|
||
|
- multicast on/off
|
||
|
- remember routes for all neighbors?
|
||
|
|
||
|
- BGP:
|
||
|
- import of IGP routes (use external route tags from OSPF)
|
||
|
|
||
|
- Interface:
|
||
|
- RIP metric
|
||
|
- multicast capability flag
|
||
|
- MTU
|
||
|
- OSPF metrics (per-TOS)
|
||
|
|
||
|
- running protocol on an interface:
|
||
|
- interface is not required to exist
|
||
|
- can specify a wildcard pattern or an interface list
|
||
|
|
||
|
- preferences:
|
||
|
- directly connected
|
||
|
- static
|
||
|
- OSPF internal, OSPF ext type 1 (comparable metrics), OSPF inter-area
|
||
|
- RIP
|
||
|
- BGP
|
||
|
- OSPF ext type 2
|
||
|
- sink
|
||
|
|
||
|
- lib:
|
||
|
- MD5
|
||
|
|
||
|
- OSPF:
|
||
|
- Dijkstra: use Fibonacci heaps?
|
||
|
- point-to-point interface with address: advertise as stub network
|
||
|
- static routes: stub networks?
|
||
|
- modes: PtP, PtP-unnumbered, Broadcast, NBMA, point-to-multipoint
|
||
|
- importing of device routes for networks where we don't run OSPF
|
||
|
- tie breaking for equal type 2 ext metrics by using internal (type 1) metric
|
||
|
- SPF tree recalc timing (per-area timers?)
|
||
|
- aggregation: specify network list for each area
|
||
|
- stub area: either no external routes or only default route
|
||
|
- automatic generation of external route tags (RFC1403) -- what about
|
||
|
using the same rule for RIPv2? [shared code?]
|
||
|
|
||
|
- timers - one-shot and periodic, resolution 1 sec, randomized
|
||
|
- re-configuration: restart of routing protocols (shutdown mode)
|
||
|
- route: originating AS
|
||
|
|
||
|
- Check incoming packets and log errors!!
|