Linux MPLS 总结

Linux MPLS 总结

linux 4.5 以上已支持MPLS TUNNEL, 需升级iproute2, 新版 iproute2 已支持MPLS路由.

更新Kernel

使用 elrepo yum 源 RHEL/CentOS 升级到 4.x 内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
RHEL7
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
RHEL6
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
RHEL5
rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpm

elrepo-kernel仓库中包含 kernel-lt(long time) & kernel-ml (maintain) 两种内核. 这里安装 kernel-ml 当前版本为 4.12.

yum --disablerepo=* --enablerepo=elrepo-kernel install kernel-ml
yum --enablerepo=elrepo-kernel install kernel-ml

启用MPLS

modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
sysctl -w net.mpls.conf.enp0s9.input=1
sysctl -w net.mpls.conf.lo.input=1
sysctl -w net.mpls.platform_labels=1048575

更新iproute2

git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
cd iproute2
./configure
# edit Makefile & disable tc
make 
make DESTDIR=`pwd`/dist install

测试MPLS

添加MPLS路由, 使用标签 100 封装 10.10.10.10/32, 使用标签18封装 172.16.48.174/32.

ip route add 10.10.10.10/32 encap mpls 100 via inet 192.168.1.2
ip r add 172.16.48.174/32  encap mpls  18 via 50.0.1.5 

输入标签 100 进行标签交换转发, 封装标签200并转发到 192.168.2.2.

ip -f mpls route add 100 as 200 via inet 192.168.2.2

输入标签300 转发到本地

ip -f mpls route add 300 dev lo

Qugga-LDPD

qugga-ldpd 已支持MPLS LDP协议,可与交换机组成MPLS LSP网络. 具体可参考:

https://github.com/rwestphal/quagga-ldpd
https://github.com/rwestphal/quagga-ldpd/wiki/ldpd-basic-test-setup

参考

http://elrepo.org/tiki/tiki-index.php
http://elrepo.org/tiki/kernel-ml
http://elrepo.org/tiki/kernel-lt
http://www.ostechnix.com/install-linux-kernel-4-4-5-centos-ubuntu/
http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
http://elrepo.org/linux/kernel/el6/x86_64/RPMS/
http://git.kernel.org/pub/scm/linux/kernel/git/shemminger/

http://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git/
http://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git/
http://git.kernel.org/pub/scm/linux/kernel/git/shemminger/rstp.git/
http://git.kernel.org/pub/scm/linux/kernel/git/shemminger/vxlan-next.git/

猜你喜欢

转载自blog.csdn.net/force_eagle/article/details/77198260