GRE 隧道
GRE 是一种隧道协议,它将网络层协议封装在 Internet 协议网络上的虚拟点对点链路内。每端的隧道源地址和隧道目标地址标识了两个端点。
GRE 数据包通过虚拟隧道在两个端点之间直接传输。当数据包经过其他路由器时,不会与其负载进行交互;路由器仅解析外部 IP 数据包。当数据包到达 GRE 隧道的端点时,交换机解封装外部数据包,解析负载,然后将其转发到最终目的地。
GRE 在单协议骨干网上使用多种协议,并且比某些替代解决方案(如 VPN)的要求更低。您可以使用 GRE 传输底层网络不支持的协议,绕过跳数有限的网络,连接非连续子网,并允许 VPN 跨广域网。
- 您只能使用静态 IPv4 路由作为隧道接口的目标。
- 您只能配置 IPv4 端点。
- 您只能配置点对点 GRE 隧道;每个接口只有一个远程隧道。
- 您不能配置两个具有相同本地和远程隧道 IP 地址的隧道。
- GRE 隧道不能与交换机上的 VXLAN 或 MPLS 共存。
- Cumulus Linux 最多支持 256 个 GRE 隧道。
- 您只能在默认 VRF 中配置 GRE 隧道。
- GRE 隧道不支持网络层协议、ECMP、QoS、ACL 或 NAT。
- 所有 GRE 隧道共享相同的 TTL 值;Cumulus Linux 使用您最后配置的隧道的 TTL 值。
- 您无法在 GRE 隧道接口上配置 MTU。默认情况下,GRE 隧道 MTU 是交换机上支持的最大 MTU。
以下示例显示了两个使用 IPv4 地址的站点。使用 GRE 隧道,两个端点可以将 IPv4 或 IPv6 负载封装在 IPv4 数据包内。交换机根据外部 IPv4 标头中的目的地路由数据包。

配置 GRE 隧道
要配置 GRE 隧道,您可以按如下方式在两个端点上为隧道创建具有路由的 GRE 隧道接口
- 通过指定接口名称、隧道模式为
gre
、源(本地)和目标(远程)底层 IP 地址以及ttl
(可选)来创建隧道接口。 - 为隧道接口分配 IP 地址。
- 添加路由条目以使用隧道接口封装数据包。
以下配置示例显示了用于在两个端点 tunnelR1
和 tunnelR2
之间建立双向 GRE 隧道的命令。tunnelR1
的本地隧道端点为 10.10.10.1,远程端点为 10.10.10.3。tunnelR2
的本地隧道端点为 10.10.10.3,远程端点为 10.10.10.1。

在 NVUE 中,如果您创建的 GRE 接口名称以 tunnel
开头,则 NVUE 会自动将接口类型设置为 tunnel
。如果您创建的 GRE 接口名称不以 tunnel
开头,则必须使用 nv set interface <interface-name> type tunnel
命令将接口类型设置为 tunnel
。
cumulus@leaf01:~$ nv set interface lo ip address 10.10.10.1/32
cumulus@leaf01:~$ nv set interface swp1 ip address 10.2.1.1/24
cumulus@leaf01:~$ nv set interface tunnelR2 ip address 10.1.100.1/30
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel mode gre
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel dest-ip 10.10.10.3
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel source-ip 10.10.10.1
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel ttl 255
cumulus@leaf01:~$ nv set vrf default router static 10.1.1.0/24 via tunnelR2
cumulus@leaf01:~$ nv config apply
cumulus@leaf03:~$ nv set interface lo ip address 10.10.10.3/32
cumulus@leaf03:~$ nv set interface swp1 ip address 10.1.1.1/24
cumulus@leaf03:~$ nv set interface tunnelR1 ip address 10.1.100.2/30
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel mode gre
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel dest-ip 10.10.10.1
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel source-ip 10.10.10.3
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel ttl 255
cumulus@leaf03:~$ nv set vrf default router static 10.2.1.0/24 via tunnelR1
cumulus@leaf03:~$ nv config apply
编辑
/etc/network /interfaces
文件以添加隧道接口cumulus@leaf01:~$ sudo nano /etc/network/interfaces ... auto lo iface lo inet loopback address 10.10.10.1/32 auto swp1 iface swp1 address 10.2.1.1/24 auto tunnelR2 iface tunnelR2 address 10.1.100.1/30 tunnel-mode gre tunnel-local 10.10.10.1 tunnel-endpoint 10.10.10.3 tunnel-ttl 255
运行
ifreload -a
命令以加载配置cumulus@leaf01:mgmt:~$ sudo ifreload -a
运行 vtysh 命令以配置静态路由
cumulus@leaf01:mgmt:~$ sudo vtysh ... leaf01# configure terminal leaf01(config)# ip route 10.1.1.0/24 tunnelR2 leaf01(config)# exit leaf01# write memory leaf01# exit cumulus@leaf01:mgmt:~$
vtysh 命令将静态路由配置保存在
/etc/frr/frr.conf
文件中。例如cumulus@leaf01:mgmt:~$ sudo cat /etc/frr/frr.conf ... vrf default ip route 10.1.1.0/24 tunnelR2 exit-vrf ...
编辑
/etc/network /interfaces
文件以添加隧道接口cumulus@leaf03:~$ sudo nano /etc/network/interfaces ... auto lo iface lo inet loopback address 10.10.10.3/32 auto swp1 iface swp1 address 10.1.1.1/24 auto tunnelR1 iface tunnelR1 address 10.1.100.2/30 tunnel-mode gre tunnel-local 10.10.10.3 tunnel-endpoint 10.10.10.1 tunnel-ttl 255
运行
ifreload -a
命令以加载配置。cumulus@leaf03:mgmt:~$ sudo ifreload -a
运行 vtysh 命令以配置静态路由
cumulus@leaf03:mgmt:~$ sudo vtysh ... leaf01# configure terminal leaf01(config)# ip route 10.2.1.0/24 tunnelR1 leaf01(config)# exit leaf01# write memory leaf01# exit cumulus@leaf03:mgmt:~$
vtysh 命令将静态路由配置保存在
/etc/frr/frr.conf
文件中。例如cumulus@leaf03:mgmt:~$ sudo cat /etc/frr/frr.conf ... vrf default ip route 10.2.1.0/24 tunnelR1 exit-vrf vrf mgmt exit-vrf ...
要删除 GRE 隧道,请删除隧道接口,并删除使用隧道接口配置的路由。可以运行 NVUE nv unset
命令,也可以从 /etc/network/interfaces
文件中删除隧道配置并运行 ifreload -a
命令。
故障排除
要检查 GRE 隧道设置,请运行 NVUE nv show interface <interface> tunnel
命令,或运行 Linux ip tunnel show
或 ifquery --check
命令。例如
cumulus@leaf01:mgmt:~$ nv show interface tunnelR2 tunnel
operational applied description
--------- ----------- ---------- -------------------------------
dest-ip 10.10.10.3 10.10.10.3 Destination underlay IP address
mode gre gre tunnel mode
source-ip 10.10.10.1 10.10.10.1 Source underlay IP address
ttl 255 time to live
cumulus@leaf01:mgmt:~$ ip tunnel show
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunnelR2: gre/ip remote 10.10.10.3 local 10.10.10.1 ttl 255
cumulus@leaf01:mgmt:~$ ifquery --check tunnelR2
auto tunnelR2
iface tunnelR2 [pass]
tunnel-mode gre [pass]
tunnel-local 10.10.10.1/32 [pass]
tunnel-endpoint 10.10.10.3/32 [pass]
tunnel-ttl 255 [pass]
address 10.1.100.1/30 [pass]
配置示例
此示例使用参考拓扑,并使用 spine01 和 spine02 来表示 transit IPv4 网络以连接 GRE 端点。
cumulus@leaf01:~$ nv set interface lo ip address 10.10.10.1/32
cumulus@leaf01:~$ nv set interface swp1 ip address 10.2.1.1/24
cumulus@leaf01:~$ nv set interface swp1,51-52
cumulus@leaf01:~$ nv set interface tunnelR2 ip address 10.1.100.1/30
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel mode gre
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel dest-ip 10.10.10.3
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel source-ip 10.10.10.1
cumulus@leaf01:~$ nv set interface tunnelR2 tunnel ttl 255
cumulus@leaf01:~$ nv set vrf default router static 10.1.1.0/24 via tunnelR2
cumulus@leaf01:~$ nv set router bgp autonomous-system 65101
cumulus@leaf01:~$ nv set router bgp router-id 10.10.10.1
cumulus@leaf01:~$ nv set vrf default router bgp address-family ipv4-unicast network 10.10.10.1/32
cumulus@leaf01:~$ nv set vrf default router bgp neighbor swp51 remote-as external
cumulus@leaf01:~$ nv set vrf default router bgp neighbor swp52 remote-as external
cumulus@leaf01:~$ nv config apply
cumulus@leaf03:~$ nv set interface lo ip address 10.10.10.3/32
cumulus@leaf03:~$ nv set interface swp1 ip address 10.1.1.1/24
cumulus@leaf03:~$ nv set interface swp1,51-52
cumulus@leaf03:~$ nv set interface tunnelR1 ip address 10.1.100.2/30
cumulus@leaf01:~$ nv set interface tunnelR1 tunnel mode gre
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel dest-ip 10.10.10.1
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel source-ip 10.10.10.3
cumulus@leaf03:~$ nv set interface tunnelR1 tunnel ttl 255
cumulus@leaf03:~$ nv set vrf default router static 10.2.1.0/24 via tunnelR1
cumulus@leaf03:~$ nv set router bgp autonomous-system 65103
cumulus@leaf03:~$ nv set router bgp router-id 10.10.10.3
cumulus@leaf03:~$ nv set vrf default router bgp address-family ipv4-unicast network 10.10.10.3/32
cumulus@leaf03:~$ nv set vrf default router bgp neighbor swp51 remote-as external
cumulus@leaf03:~$ nv set vrf default router bgp neighbor swp52 remote-as external
cumulus@leaf03:~$ nv config apply
cumulus@spine01:~$ nv set interface lo ip address 10.10.10.101/32
cumulus@spine01:~$ nv set interface swp1,3
cumulus@spine01:~$ nv set router bgp autonomous-system 65199
cumulus@spine01:~$ nv set router bgp router-id 10.10.10.101
cumulus@spine01:~$ nv set vrf default router bgp address-family ipv4-unicast network 10.10.10.101/32
cumulus@spine01:~$ nv set vrf default router bgp neighbor swp1 remote-as external
cumulus@spine01:~$ nv set vrf default router bgp neighbor swp3 remote-as external
cumulus@spine01:~$ nv config apply
cumulus@spine02:~$ nv set interface lo ip address 10.10.10.102/32
cumulus@spine02:~$ nv set interface swp1,3
cumulus@spine02:~$ nv set router bgp autonomous-system 65199
cumulus@spine02:~$ nv set router bgp router-id 10.10.10.102
cumulus@spine02:~$ nv set vrf default router bgp address-family ipv4-unicast network 10.10.10.102/32
cumulus@spine02:~$ nv set vrf default router bgp neighbor swp1 remote-as external
cumulus@spine02:~$ nv set vrf default router bgp neighbor swp3 remote-as external
cumulus@spine02:~$ nv config apply
cumulus@leaf01:mgmt:~$ sudo cat /etc/nvue.d/startup.yaml
- set:
interface:
eth0:
ip:
address:
dhcp: {}
vrf: mgmt
type: eth
lo:
ip:
address:
10.10.10.1/32: {}
type: loopback
swp1:
ip:
address:
10.2.1.1/24: {}
type: swp
swp51:
type: swp
swp52:
type: swp
tunnelR2:
ip:
address:
10.1.100.1/30: {}
tunnel:
dest-ip: 10.10.10.3
mode: gre
source-ip: 10.10.10.1
ttl: 255
type: tunnel
router:
bgp:
autonomous-system: 65101
enable: on
router-id: 10.10.10.1
service:
ntp:
mgmt:
server:
0.cumulusnetworks.pool.ntp.org: {}
1.cumulusnetworks.pool.ntp.org: {}
2.cumulusnetworks.pool.ntp.org: {}
3.cumulusnetworks.pool.ntp.org: {}
system:
aaa:
class:
nvapply:
action: allow
command-path:
/:
permission: all
nvshow:
action: allow
command-path:
/:
permission: ro
sudo:
action: allow
command-path:
/:
permission: all
role:
nvue-admin:
class:
nvapply: {}
nvue-monitor:
class:
nvshow: {}
system-admin:
class:
nvapply: {}
sudo: {}
user:
cumulus:
full-name: cumulus,,,
hashed-password: $6$Q1oWhPxoShG7XD.5$OaVCPFxz.8pxCNTIBP6j5mqKskt9x6pZVFvBpvrB2GDChmH0zLa8FdWP6D8y/QBp577ylmKnoL1cOyI9L4mMm0
role: system-admin
api:
state: enabled
config:
auto-save:
enable: on
control-plane:
acl:
acl-default-dos:
inbound: {}
acl-default-whitelist:
inbound: {}
global:
system-mac: 44:38:39:22:01:7a
hostname: leaf01
reboot:
mode: cold
ssh-server:
state: enabled
wjh:
channel:
forwarding:
trigger:
l2: {}
l3: {}
tunnel: {}
enable: on
vrf:
default:
router:
bgp:
address-family:
ipv4-unicast:
enable: on
network:
10.10.10.1/32: {}
enable: on
neighbor:
swp51:
remote-as: external
type: unnumbered
swp52:
remote-as: external
type: unnumbered
static:
10.1.1.0/24:
address-family: ipv4-unicast
via:
tunnelR2:
type: interface
cumulus@leaf03:mgmt:~$ sudo cat /etc/nvue.d/startup.yaml
- set:
interface:
eth0:
ip:
address:
dhcp: {}
vrf: mgmt
type: eth
lo:
ip:
address:
10.10.10.3/32: {}
type: loopback
swp1:
ip:
address:
10.1.1.1/24: {}
type: swp
swp51:
type: swp
swp52:
type: swp
tunnelR1:
ip:
address:
10.1.100.2/30: {}
tunnel:
dest-ip: 10.10.10.1
mode: gre
source-ip: 10.10.10.3
ttl: 255
type: tunnel
router:
bgp:
autonomous-system: 65103
enable: on
router-id: 10.10.10.3
service:
ntp:
mgmt:
server:
0.cumulusnetworks.pool.ntp.org: {}
1.cumulusnetworks.pool.ntp.org: {}
2.cumulusnetworks.pool.ntp.org: {}
3.cumulusnetworks.pool.ntp.org: {}
system:
aaa:
class:
nvapply:
action: allow
command-path:
/:
permission: all
nvshow:
action: allow
command-path:
/:
permission: ro
sudo:
action: allow
command-path:
/:
permission: all
role:
nvue-admin:
class:
nvapply: {}
nvue-monitor:
class:
nvshow: {}
system-admin:
class:
nvapply: {}
sudo: {}
user:
cumulus:
full-name: cumulus,,,
hashed-password: $6$1nU9GYzwvSQWSXxk$lvpOd0vZVFZ4ksBO6/CdTFVSI7Rf02t5EDnwWLrrTKxWKBulMGfSxZxnKDKLaeAkaIgSaeZq.qHKzhFtNpeW..
role: system-admin
api:
state: enabled
config:
auto-save:
enable: on
control-plane:
acl:
acl-default-dos:
inbound: {}
acl-default-whitelist:
inbound: {}
global:
system-mac: 44:38:39:22:01:84
hostname: leaf03
reboot:
mode: cold
ssh-server:
state: enabled
wjh:
channel:
forwarding:
trigger:
l2: {}
l3: {}
tunnel: {}
enable: on
vrf:
default:
router:
bgp:
address-family:
ipv4-unicast:
enable: on
network:
10.10.10.3/32: {}
enable: on
neighbor:
swp51:
remote-as: external
type: unnumbered
swp52:
remote-as: external
type: unnumbered
static:
10.2.1.0/24:
address-family: ipv4-unicast
via:
tunnelR1:
type: interface
cumulus@spine01:mgmt:~$ sudo cat /etc/nvue.d/startup.yaml
- set:
interface:
eth0:
ip:
address:
dhcp: {}
vrf: mgmt
type: eth
lo:
ip:
address:
10.10.10.101/32: {}
type: loopback
swp1:
type: swp
swp3:
type: swp
router:
bgp:
autonomous-system: 65199
enable: on
router-id: 10.10.10.101
service:
ntp:
mgmt:
server:
0.cumulusnetworks.pool.ntp.org: {}
1.cumulusnetworks.pool.ntp.org: {}
2.cumulusnetworks.pool.ntp.org: {}
3.cumulusnetworks.pool.ntp.org: {}
system:
aaa:
class:
nvapply:
action: allow
command-path:
/:
permission: all
nvshow:
action: allow
command-path:
/:
permission: ro
sudo:
action: allow
command-path:
/:
permission: all
role:
nvue-admin:
class:
nvapply: {}
nvue-monitor:
class:
nvshow: {}
system-admin:
class:
nvapply: {}
sudo: {}
user:
cumulus:
full-name: cumulus,,,
hashed-password: $6$U5LDz6062WliqcV/$BUodYzPhxdHcCt9v2aN59Y25RshkXq7zpKhNEBl5klEVzlx9x6oSyDWUjkRaQeUg8yVRhb37cl4.tyU5Shcy5.
role: system-admin
api:
state: enabled
config:
auto-save:
enable: on
control-plane:
acl:
acl-default-dos:
inbound: {}
acl-default-whitelist:
inbound: {}
global:
system-mac: 44:38:39:22:01:82
hostname: spine01
reboot:
mode: cold
ssh-server:
state: enabled
wjh:
channel:
forwarding:
trigger:
l2: {}
l3: {}
tunnel: {}
enable: on
vrf:
default:
router:
bgp:
address-family:
ipv4-unicast:
enable: on
network:
10.10.10.101/32: {}
enable: on
neighbor:
swp1:
remote-as: external
type: unnumbered
swp3:
remote-as: external
type: unnumbered
cumulus@spine02:mgmt:~$ sudo cat /etc/nvue.d/startup.yaml
- set:
interface:
eth0:
ip:
address:
dhcp: {}
vrf: mgmt
type: eth
lo:
ip:
address:
10.10.10.102/32: {}
type: loopback
swp1:
type: swp
swp3:
type: swp
router:
bgp:
autonomous-system: 65199
enable: on
router-id: 10.10.10.102
service:
ntp:
mgmt:
server:
0.cumulusnetworks.pool.ntp.org: {}
1.cumulusnetworks.pool.ntp.org: {}
2.cumulusnetworks.pool.ntp.org: {}
3.cumulusnetworks.pool.ntp.org: {}
system:
aaa:
class:
nvapply:
action: allow
command-path:
/:
permission: all
nvshow:
action: allow
command-path:
/:
permission: ro
sudo:
action: allow
command-path:
/:
permission: all
role:
nvue-admin:
class:
nvapply: {}
nvue-monitor:
class:
nvshow: {}
system-admin:
class:
nvapply: {}
sudo: {}
user:
cumulus:
full-name: cumulus,,,
hashed-password: $6$VBrmD8yYqxPPlyV7$xnsnH.LHtqVsaC2rqvMgs5ePmCt6dBX11qgkLAvovBtTiq5La/sHbwyPOJ4Zyia4CdAQTYEcMzthz4IB4ZW.i0
role: system-admin
api:
state: enabled
config:
auto-save:
enable: on
control-plane:
acl:
acl-default-dos:
inbound: {}
acl-default-whitelist:
inbound: {}
global:
system-mac: 44:38:39:22:01:92
hostname: spine02
reboot:
mode: cold
ssh-server:
state: enabled
wjh:
channel:
forwarding:
trigger:
l2: {}
l3: {}
tunnel: {}
enable: on
vrf:
default:
router:
bgp:
address-family:
ipv4-unicast:
enable: on
network:
10.10.10.102/32: {}
enable: on
neighbor:
swp1:
remote-as: external
type: unnumbered
swp3:
remote-as: external
type: unnumbered
cumulus@leaf01:mgmt:~$ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback
address 10.10.10.1/32
auto mgmt
iface mgmt
address 127.0.0.1/8
address ::1/128
vrf-table auto
auto eth0
iface eth0 inet dhcp
ip-forward off
ip6-forward off
vrf mgmt
auto swp1
iface swp1
address 10.2.1.1/24
auto swp51
iface swp51
auto swp52
iface swp52
auto tunnelR2
iface tunnelR2
address 10.1.100.1/30
tunnel-mode gre
tunnel-local 10.10.10.1
tunnel-endpoint 10.10.10.3
tunnel-ttl 255
cumulus@leaf03:mgmt:~$ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback
address 10.10.10.3/32
auto mgmt
iface mgmt
address 127.0.0.1/8
address ::1/128
vrf-table auto
auto eth0
iface eth0 inet dhcp
ip-forward off
ip6-forward off
vrf mgmt
auto swp1
iface swp1
address 10.1.1.1/24
auto swp51
iface swp51
auto swp52
iface swp52
auto tunnelR1
iface tunnelR1
address 10.1.100.2/30
tunnel-mode gre
tunnel-local 10.10.10.3
tunnel-endpoint 10.10.10.1
tunnel-ttl 255
cumulus@spine01:mgmt:~$ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback
address 10.10.10.101/32
auto mgmt
iface mgmt
address 127.0.0.1/8
address ::1/128
vrf-table auto
auto eth0
iface eth0 inet dhcp
ip-forward off
ip6-forward off
vrf mgmt
auto swp1
iface swp1
auto swp3
iface swp3
cumulus@spine02:mgmt:~$ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback
address 10.10.10.102/32
auto mgmt
iface mgmt
address 127.0.0.1/8
address ::1/128
vrf-table auto
auto eth0
iface eth0 inet dhcp
ip-forward off
ip6-forward off
vrf mgmt
auto swp1
iface swp1
auto swp3
iface swp3
cumulus@server01:mgmt:~$ sudo cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
post-up sysctl -w net.ipv6.conf.eth0.accept_ra=2
auto eth1
iface eth1
address 10.2.1.2/24
post-up ip route add 10.0.0.0/8 via 10.2.1.1
cumulus@server04:mgmt:~$ sudo cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
post-up sysctl -w net.ipv6.conf.eth0.accept_ra=2
auto eth1
iface eth1
address 10.1.1.2/24
post-up ip route add 10.0.0.0/8 via 10.1.1.1
cumulus@leaf01:mgmt:~$ sudo cat /etc/frr/frr.conf
...
vrf default
ip route 10.1.1.0/24 tunnelR2
exit-vrf
vrf mgmt
exit-vrf
router bgp 65101 vrf default
bgp router-id 10.10.10.1
timers bgp 3 9
bgp deterministic-med
! Neighbors
neighbor swp51 interface remote-as external
neighbor swp51 timers 3 9
neighbor swp51 timers connect 10
neighbor swp51 advertisement-interval 0
neighbor swp51 capability extended-nexthop
neighbor swp52 interface remote-as external
neighbor swp52 timers 3 9
neighbor swp52 timers connect 10
neighbor swp52 advertisement-interval 0
neighbor swp52 capability extended-nexthop
! Address families
address-family ipv4 unicast
network 10.10.10.1/32
maximum-paths ibgp 64
maximum-paths 64
distance bgp 20 200 200
neighbor swp51 activate
neighbor swp52 activate
exit-address-family
! end of router bgp 65101 vrf default
cumulus@leaf03:mgmt:~$ sudo cat /etc/frr/frr.conf
...
vrf default
ip route 10.2.1.0/24 tunnelR1
exit-vrf
vrf mgmt
exit-vrf
router bgp 65103 vrf default
bgp router-id 10.10.10.3
timers bgp 3 9
bgp deterministic-med
! Neighbors
neighbor swp51 interface remote-as external
neighbor swp51 timers 3 9
neighbor swp51 timers connect 10
neighbor swp51 advertisement-interval 0
neighbor swp51 capability extended-nexthop
neighbor swp52 interface remote-as external
neighbor swp52 timers 3 9
neighbor swp52 timers connect 10
neighbor swp52 advertisement-interval 0
neighbor swp52 capability extended-nexthop
! Address families
address-family ipv4 unicast
network 10.10.10.3/32
maximum-paths ibgp 64
maximum-paths 64
distance bgp 20 200 200
neighbor swp51 activate
neighbor swp52 activate
exit-address-family
! end of router bgp 65103 vrf default
cumulus@spine01:mgmt:~$ sudo cat /etc/frr/frr.conf
...
vrf default
exit-vrf
vrf mgmt
exit-vrf
router bgp 65199 vrf default
bgp router-id 10.10.10.101
timers bgp 3 9
bgp deterministic-med
! Neighbors
neighbor swp1 interface remote-as external
neighbor swp1 timers 3 9
neighbor swp1 timers connect 10
neighbor swp1 advertisement-interval 0
neighbor swp1 capability extended-nexthop
neighbor swp3 interface remote-as external
neighbor swp3 timers 3 9
neighbor swp3 timers connect 10
neighbor swp3 advertisement-interval 0
neighbor swp3 capability extended-nexthop
! Address families
address-family ipv4 unicast
network 10.10.10.101/32
maximum-paths ibgp 64
maximum-paths 64
distance bgp 20 200 200
neighbor swp1 activate
neighbor swp3 activate
exit-address-family
! end of router bgp 65199 vrf default
cumulus@spine02:mgmt:~$ sudo cat /etc/frr/frr.conf
...
vrf default
exit-vrf
vrf mgmt
exit-vrf
router bgp 65199 vrf default
bgp router-id 10.10.10.102
timers bgp 3 9
bgp deterministic-med
! Neighbors
neighbor swp1 interface remote-as external
neighbor swp1 timers 3 9
neighbor swp1 timers connect 10
neighbor swp1 advertisement-interval 0
neighbor swp1 capability extended-nexthop
neighbor swp3 interface remote-as external
neighbor swp3 timers 3 9
neighbor swp3 timers connect 10
neighbor swp3 advertisement-interval 0
neighbor swp3 capability extended-nexthop
! Address families
address-family ipv4 unicast
network 10.10.10.102/32
maximum-paths ibgp 64
maximum-paths 64
distance bgp 20 200 200
neighbor swp1 activate
neighbor swp3 activate
exit-address-family
! end of router bgp 65199 vrf default
此模拟正在运行 Cumulus Linux 5.11。Cumulus Linux 5.12 模拟即将推出。
模拟以示例 GRE 配置开始。该演示使用 NVUE 命令预先配置。
要验证配置,请运行故障排除部分中列出的命令。