1- GROUT-FRR 7 @DATE @ "grout @VERSION @"
2- ================================
1+ GROUT-FRR(7)
32
4- # FRR + Grout: Transparent BGP Peering via Loopback Interfaces
3+ # INTRODUCTION
54
6- This guide demonstrates how to configure FRR (Free Range Routing) and Linux networking to establish BGP peering
7- between Grout and an upstream router, without assigning IP addresses directly to the Linux interface.
5+ This guide demonstrates how to configure FRR (Free Range Routing) and Linux
6+ networking to establish BGP peering between Grout and an upstream router,
7+ without assigning IP addresses directly to the Linux interface.
88
9- 0 . Context
10- 1 . How packets are forwarded from Grout to ` gr-loop0 `
11- 2 . Linux configuration to peer without adding a local ip
12- 3 . BGPD configuration
13- ---
9+ # CONTEXT
1410
15- ## 0. Ease of Use
11+ By default, FRR daemons such as _bgpd_ require binding to a local IP address to
12+ accept incoming peer connections. This necessitates explicitly adding all Grout
13+ "local" IPs to the _gr-loop0_ interface. However, this approach is cumbersome
14+ and not ideal.
1615
17- By default, FRR daemons such as ` bgpd ` require binding to a local IP address to accept incoming peer connections.
18- This necessitates explicitly adding all Grout "local" IPs to the ` gr-loop0 ` interface.
19- However, this approach is cumbersome and not ideal .
16+ The objective is to run _bgpd_ without assigning any IP address to the
17+ _gr-loop0_ network device. This is achieved by utilizing the _IP_TRANSPARENT_
18+ socket option and FRR's capability to bind to a specific interface .
2019
21- The objective is to run ` bgpd ` without assigning any IP address to the ` gr-loop0 ` network device.
22- This is achieved by utilizing the ` IP_TRANSPARENT ` socket option and FRR's capability to bind to a specific interface.
20+ # PACKETS FROM GROUT TO gr-loop0
2321
24- ---
22+ All packets received to a *local* IP configured in grout will be processed by
23+ the node _ip_input_local_/_ip6_input_local_. If the protocol isn't handled
24+ locally (ICMP, Neighbor Disc, ...), the packets are forwarded to
25+ _l4_input_local_. If still unhandled (e.g., VXLAN Tunnel), the packet is sent to
26+ the corresponding _gr-loopX_ interface associated with the VRF.
2527
26- ## 1. Packets from grout to gr-loop0
28+ # FRR CONFIGURATION OVERVIEW
2729
28- All packets received to a ** local** IP configured in grout will be processed by the node ` ip_input_local/ip6_input_local ` .
29- If the protocol isn't handled locally (ICMP, Neighbor Disc, ...), the packets are forwarded to ` l4_input_local ` .
30- If still unhandled (e.g., VXLAN Tunnel), the packet is sent to the corresponding ` gr-loopX ` interface associated with the VRF.
30+ Zebra must be run with the _-M_ option to load the plugin:
31+ Edit the file _/etc/frr/daemons_, for example:
3132
32- ---
33-
34- ## 2. FRR Configuration Overview
35-
36- Zebra must be run with the ` -M ` option to load the plugin:
37- Edit the file ` /etc/frr/daemons ` , for example:
38-
39- ``` ini
33+ ```
4034zebra_options=" -A 127.0.0.1 -s 90000000 -M dplane_grout"
4135```
4236
43- ``` frr
37+ And the corresponding _frr.conf_:
38+
39+ ```
4440service integrated-vtysh-config
4541!
4642interface cv0
47- ip address 192.168.210.1/24
43+ ip address 192.168.210.1/24
4844exit
4945!
5046router bgp 64513
51- neighbor 192.168.210.3 remote-as 64513
52- neighbor 192.168.210.3 interface gr-loop0
53- neighbor 192.168.210.3 update-source 192.168.210.1
47+ neighbor 192.168.210.3 remote-as 64513
48+ neighbor 192.168.210.3 interface gr-loop0
49+ neighbor 192.168.210.3 update-source 192.168.210.1
5450exit
5551!
5652end
5753```
5854
5955Two additional configurations for a neighbor are required:
60- - source interface, ` gr-loop0 ` , only required for the default VRF
56+
57+ - source interface, _gr-loop0_, only required for the default VRF
6158- update source IP, local Grout IP
6259
63- With that configuration, BGP messages are properly exchanged, and routes are visible in grout:
60+ With that configuration, BGP messages are properly exchanged, and routes are
61+ visible in grout:
6462
65- ``` frr
63+ ```
6664vtysh# show bgp summary
6765
6866IPv4 Unicast Summary:
@@ -77,7 +75,7 @@ Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down Sta
7775Total number of neighbors 1
7876```
7977
80- ``` grout
78+ ```
8179grout# route show
8280VRF DESTINATION NEXT_HOP
83810 192.168.1.0/24 type=L3 id=10 iface=p0 vrf=0 origin=bgp af=IPv4 addr=192.168.210.3 state=new
0 commit comments