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  ```