一、 基础环境
使用VmWare虚拟两台Linux机器。CentOS 7,Linux内核如下:
4.5.3-1.el7.elrepo.x86_64
如果内核版本太低,是不支持VxLan的。可以使用一下命令进行内核升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
- yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
升级后重启选择新内核。
二、 组网图
两台虚机VM1和VM2,eth2为虚机上的网卡。vxlan10是创建的虚拟网卡,用来处理vxlan。veth1和veth0是创建的一对虚拟口。br-vx是创建的网桥。
三、 配置命令
VM1:
- #创建网桥br-vx并使其up
- brctl addbr br-vx
- ip link set br-vx up
- #增加一个类型为vxlan,vni-id为100的,名字为vxlan10的虚拟网卡,指明对端地址为192.168.233.190,
- #(此地址为VM2的eth2的地址)出接口为本端的eth2
- ip link add vxlan10 type vxlan id 100 remote 192.168.233.190 dstport 4789 dev eth2
- ip link set vxlan10 up
- #把vxlan10加入到网桥中
- brctl addif br-vx vxlan10
- #创建一对虚拟网卡,设置其中的veth0的地址为192.167.1.6,并把veth1绑到网桥br-vx中。从veth0
- #发出的报文将会发给veth1,由于veth1在网桥中,会被进入到vxlan10中通过vxlan隧道发送给对端
- ip link add type veth
- ifconfig veth0 192.167.1.6/24 up
- ifconfig veth0 mtu 1450
- ifconfig veth1 up
- ifconfig veth1 mtu 1450
- brctl addif br-vx veth1
VM2:
- #创建网桥br-vx并使其up
- brctl addbr br-vx
- ip link set br-vx up
- #增加一个类型为vxlan,vni-id为100的,名字为vxlan10的虚拟网卡,指明对端地址为192.168.233.180,
- #(此地址为VM2的eth2的地址)出接口为本端的eth2
- ip link add vxlan10 type vxlan id 100 remote 192.168.233.180 dstport 4789 dev eth2
- ip link set vxlan10 up
- #把vxlan10加入到网桥中
- brctl addif br-vx vxlan10
- #创建一对虚拟网卡,设置其中的veth0的地址为192.167.1.7,并把veth1绑到网桥br-vx中。从veth0
- #发出的报文将会发给veth1,由于veth1在网桥中,会被进入到vxlan10中通过vxlan隧道发送给对端
- ip link add type veth
- ifconfig veth0 192.167.1.7/24 up
- ifconfig veth0 mtu 1450
- ifconfig veth1 up
- ifconfig veth1 mtu 1450
- brctl addif br-vx veth1
四、 验证
搭建好后,可以在VM1上使用ping命令来验证:VM1: ping 192.167.1.7,通过tcpdump抓报文看结构。
参考文章:http://blog.csdn.net/xingyeping/article/details/51353321