在上两篇文章中介绍了如何利用LXD
搭建网络拓扑以及配置OSPF
协议:
基于LXD搭建OSPF协议控制下的SR路由网络拓扑(一)—— 搭建网络拓扑
基于LXD搭建OSPF协议控制下的SR路由网络拓扑(二)——配置OSPF协议
接下来基于上述条件,将路由器配置成为SR
路由
配置SR路由器
SR
使用MPLS
数据平面来分发标签信息,需要用到MPLS linux
模块,因此需要设置使用接口以及可用标签的最大数量。
配置MPLS转发
首先在宿主机上加载必要的linux
内核MPLS
模块,直接分别在宿主机上运行如下命令
modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
查看模块是否加载成功
lsmod | grep mpls
将这3个内核模块添加到容器的配置文件中,确保容器也能加载这些模块
sudo vi /etc/modules
添加如下内容
mpls_router
mpls_gso
mpls_iptunnel
进入所有的容器,为所有的网卡接口激活MPLS
,最大可用MPLS
标签栈可以随意设置,这里设置为1048575
,该平台所分配的标签最大不会超过1048575
,执行命令
sudo lxc exec LxcR1 bash
修改配置文件
vi /etc/sysctl.conf
添加如下内容【如果没有那么多网卡,请注释】
net.mpls.conf.eth0.input=1
net.mpls.conf.eth1.input=1
net.mpls.conf.eth2.input=1
net.mpls.conf.lo.input=1
net.mpls.platform_labels=1048575
刷新命令生效
sysctl -p
配置SR路由器
FRR OSPF
路由器进程需要配置capability opaque
命令,在OSPF中,SR
使用3种opaque LSA
来携带路由器信息,扩展链接和扩展前缀,包括
node-msd
:意义是设置路由器支持的最大堆栈深度。该值取决于MPLS数据平面的大小,这里设置为8,index
根据具体需要设置,这里根据R1-R14
的网络环境配置,设置index
为1021-1034- 分段路由全局块(
global block
),即MPLS
中存储前缀SID
的标签范围,不能超过65535,这里设置为16000到23999之间 - 支持算法(唯一可用的为
SPF
),邻接标识符和前缀标识符,要启用OSPF LSA
泛洪,还需要使用router-info area
命令
进入r1
的vtysh
界面,配置SR
,所有的容器都进行类似的配置,其中根据不同路由器的router-id
进行相对应的修改10.0.0.1
和10.0.0.1/24
以及index 1021
vtysh
config
router ospf
capability opaque
mpls-te on
mpls-te router-address 10.0.0.1
router-info area
segment-routing on
segment-routing global-block 16000 23999
segment-routing node-msd 8
segment-routing prefix 10.0.0.1/24 index 1021
do write memory
例如r2
路由器
……
mpls-te router-address 10.0.0.2
……
segment-routing prefix 10.0.0.2/24 index 1022
do write memory
例如r10
路由器
……
mpls-te router-address 10.0.0.10
……
segment-routing prefix 10.0.0.10/24 index 1030
do write memory
查看配置
show running
至此,SR
路由器已经全部设置完成,查看OSPF SR database
中的所有前缀,结果如图6所示,可以看到所有节点的有关信息,MSD
设置为8,算法预设为SPF
。
查看配置
利用命令查看SR
配置
show ip ospf database segment-routing