Linux Vxlan网络隧道互通环境模拟
使用CentOS Linux Bridge搭建Vxlan环境
- 通过namespace配置证明vxlan可通
- 说明
第一台主机eth0 192.168.0.127
,第二台主机eth0 192.168.0.125
- 下面是第一台主机的配置
#添加桥 br-vx 并启动 brctl addbr br-vx ip link set br-vx up #添加vxlan并指定对端ip 192.168.0.125和本机出流量的网卡eth0,并启动 ip link add vxlan10 type vxlan id 100 remote 192.168.0.125 dstport 4789 dev eth0 ip link set vxlan10 up #把vxlan 绑定到桥 br-vx 上 brctl addif br-vx vxlan10 #创建一对veth pair:veth0 veth1 ip link add type veth #把veth1启动并绑定到桥br-vx上 ifconfig veth1 up ifconfig veth1 mtu 1450 brctl addif br-vx veth1 #创建一个namespace ns1,把veth0放入ns1中,配置veth0的ip并启动它 ip netns add ns1 ip li set veth0 netns ns1 ip netns exec ns1 ifconfig veth0 192.167.1.6/24 up ip netns exec ns1 ifconfig veth0 mtu 1450
- 下面是第二台主机的配置
相对于第一台主机上的配置,把192.168.0.125
改成192.168.0.127
,把192.167.1.6/24
改成192.167.1.7/24
- 验证
在第一台主机上执行以下命令
ip netns exec ns1 ping 192.167.1.7
那么可知数据流量是veth0(1)
->veth1(1)
->br-vx(1)
->vxlan10(1)
->eth0(1)
->eth0(2)
->vxlan10(2)
->br-vx(2)
->veth1(2)
->veth0(2)
,这样就能ping通
了
- 通过虚拟机配置
- 说明
第一台主机eth0 192.168.0.127
,第二台主机eth0 192.168.0.125
- 下面是第一台主机的配置
#添加桥 br-vx 并启动 brctl addbr br-vx ip link set br-vx up #添加vxlan并指定对端ip 192.168.0.125和本机出流量的网卡eth0,并启动 ip link add vxlan10 type vxlan id 100 remote 192.168.0.125 dstport 4789 dev eth0 ip link set vxlan10 up #把vxlan 绑定到桥 br-vx 上 brctl addif br-vx vxlan10 #启动虚拟机,因为tap1不存在,所以自动创建一个tap:tap1 qemu-system-x86_64 centos1804_200G.qcow2 -m 1024 -net nic -net tap,ifname=tap1,script=no,downscript=no -enable-kvm #tap1添加到桥 br-vx 上,并启动 brctl addif br-vx tap1 ifconfig tap1 up
- 下面是第一台主机的虚拟机中的配置
#配置ip并启动 ip a add 192.168.1.8/24 dev ens3 ip li set ens3 up
- 下面是第二台主机的配置
相对于第一台主机上的配置,把192.168.0.125
改成192.168.0.127
- 下面是第二台主机的虚拟机中的配置
相对于第一台主机的虚拟机中的配置,把192.168.1.8/24
改成192.168.1.9/24
- 验证
在第一台主机的虚拟机上执行以下命令
ping 192.168.1.9
那么可知数据流量是ens3(1)
->tap1(1)
->br-vx(1)
->vxlan10(1)
->eth0(1)
->eth0(2)
->vxlan10(2)
->br-vx(2)
->tap1(2)
->ens3(2)
,这样就能ping通
了
- vxlan是点对点的隧道协议,那么如果实现多网络
- 方法
用一台主机作为服务器,就可以实现多网络