Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 1.51 KB

README.md

File metadata and controls

46 lines (34 loc) · 1.51 KB

About

NRD = Neighborless Route Detection

The NRD process can manage ECMP/MultiPath routes on a network by listening to OSPF hello packets.

It takes YAML formatted config file (see nrd.yml) for an example.

It takes a number of arguments, which can be seen by running nrd -h.

NRD is currently only supported on Linux.

NRD requires Go version 1.13 or greater.

To build on a Linux system:

$ go build .

To cross compile from another system or architecture, specify GOOS and GOARCH, e.g.:

$ GOOS=linux GOARCH=arm64 go build .

Here's some example output of NRD in action with two routers on the network and some induced instability:

[vagrant@leaf1 ~]$ sudo ./nrd -iface eth1 -log 2
2020/01/25 04:30:26 INFO:starting NRD
2020/01/25 04:30:26 INFO:reading config file at: nrd.yml
2020/01/25 04:30:26 INFO:using interface eth1
2020/01/25 04:30:26 INFO:managing route 192.168.57.0/24
2020/01/25 04:30:26 INFO:added router 192.168.56.10
2020/01/25 04:30:26 INFO:added router 192.168.56.11
2020/01/25 04:30:26 INFO:joined multicast group: 224.0.0.5
2020/01/25 04:30:32 INFO:router returned to service 192.168.56.10
2020/01/25 04:30:32 INFO:router 192.168.56.10 is now up
2020/01/25 04:30:32 INFO:route 192.168.57.0/24 is down
2020/01/25 04:30:32 INFO:there are 1 routers up
2020/01/25 04:30:32 INFO:router returned to service 192.168.56.11
2020/01/25 04:30:32 INFO:router 192.168.56.11 is now up
2020/01/25 04:30:32 INFO:updated route 192.168.57.0/24
2020/01/25 04:30:32 INFO:there are 2 routers up