github.com/osrg/gobgp/v3@v3.30.0/docs/sources/unnumbered-bgp.md (about) 1 # Unnumbered BGP 2 3 BGP is not only for the Internet. Due to proven scalability and configuration 4 flexibility, large data center operators are using BGP for their data center 5 networking [[ietf-rtgwg-bgp-routing-large-dc](https://tools.ietf.org/html/rfc7938)]. 6 7 In typical case, the topology of the network is CLOS network which can offer 8 multiple ECMP for ToR switches. 9 Each ToR switches run BGP daemon and peer to uplink switches connected with 10 P2P link. 11 12 In this case, since all switches are operated by single administrator and trusted, 13 we can skip tedious neighbor configurations like specifying neighbor address or 14 neighbor AS number by using unnumbered BGP feature. 15 16 Unnumbered BGP utilizes IPv6 link local address to automatically decide who 17 to connect. Also, when using unnumbered BGP, you don't need to specify neighbor AS number. 18 GoBGP will accept any AS number in the neighbor's open message. 19 20 ## Prerequisites 21 22 To use unnumbered BGP feature, be sure the link between two BGP daemons is P2P 23 and IPv6 is enabled on interfaces connected to the link. 24 25 Also, check neighbor's IPv6 link local address is on the linux's neighbor table. 26 27 ```bash 28 $ ip -6 neigh show 29 fe80::42:acff:fe11:5 dev eth0 lladdr 02:42:ac:11:00:05 REACHABLE 30 ``` 31 32 If neighbor's address doesn't exist, easiest way to fill the table is `ping6`. 33 Try the command below 34 35 ```bash 36 $ ping6 -c 1 ff02::1%eth0 37 PING ff02::1%eth0 (ff02::1%eth0): 56 data bytes 38 64 bytes from fe80::42:acff:fe11:5%eth0: icmp_seq=0 ttl=64 time=0.312 ms 39 --- ff02::1%eth0 ping statistics --- 40 1 packets transmitted, 1 packets received, 0% packet loss 41 round-trip min/avg/max/stddev = 0.312/0.312/0.312/0.000 ms 42 ``` 43 44 More reliable method is to run [radvd](http://www.litech.org/radvd/) or 45 [zebra](http://www.nongnu.org/quagga/) to periodically send router 46 advertisement. 47 48 ## Configuration via configuration file 49 50 ```toml 51 [global.config] 52 as = 64512 53 router-id = "192.168.255.1" 54 55 [[neighbors]] 56 [neighbors.config] 57 neighbor-interface = "eth0" 58 ``` 59 60 ## Configuration via CLI 61 62 ```bash 63 $ gobgp global as 64512 router-id 192.168.255.1 64 $ gobgp neighbor add interface eth0 65 $ gobgp neighbor eth0 66 BGP neighbor is fe80::42:acff:fe11:3%eth0, remote AS 65001 67 BGP version 4, remote router ID 192.168.0.2 68 BGP state = BGP_FSM_ESTABLISHED, up for 00:00:07 69 BGP OutQ = 0, Flops = 0 70 Hold time is 90, keepalive interval is 30 seconds 71 Configured hold time is 90, keepalive interval is 30 seconds 72 Neighbor capabilities: 73 multi-protocol: 74 ipv4-unicast: advertised and received 75 ipv6-unicast: advertised and received 76 route-refresh: advertised and received 77 extended-nexthop: advertised and received 78 Local: nlri: ipv4-unicast, nexthop: ipv6 79 Remote: nlri: ipv4-unicast, nexthop: ipv6 80 four-octet-as: advertised and received 81 Message statistics: 82 Sent Rcvd 83 Opens: 1 1 84 Notifications: 0 0 85 Updates: 1 0 86 Keepalives: 1 1 87 Route Refresh: 0 0 88 Discarded: 0 0 89 Total: 3 2 90 Route statistics: 91 Advertised: 1 92 Received: 0 93 Accepted: 0 94 ```