Ubuntu 20.04 上学习Open vSwitch :VxLAN

逻辑拓扑图

  1. Ubuntu 20.04
    203.0.113.101 /24 ( 网关:203.0.113.1 )

  2. Ubuntu 20.04
    203.0.113.103 /24 ( 网关:203.0.113.1 )

3、安装依赖:
apt install openvswitch-switch

apt install python3-pip

pip3 install networking-ovn==4.0.4

apt install ovn-central ovn-common ovn-host

如果需要使用 ifconfig 和 route 命令,先安装 apt install net-tools

建立 Provider networks
思路:

 1. 一个网桥(bridge)就是一个交换机
 2. 2 个虚拟机各建立一个 bridge,就相当于各自接入一个交换机
 3. 如果这 2 个交换机被分配到同一个网段,就可以直接互相访问彼此
 4. 将这个 bridge 上一个端口 (port )连接到物理网卡 (例如: eth1),他就可以通过这个物理网卡和外部网络互相访问 (即:连接到公网)

在 OpenStack 里面,相当于给所有节点提供一个公网 (Provider networks)

在 203.0.113.101 上

 ovs-vsctl del-br br1
 ovs-vsctl add-br br1
 
 ovs-vsctl add-port br1 eth1

 使用 ifconfig 命令    
 ifconfig eth1  up
 ifconfig br1 203.0.113.101 up

在 203.0.113.103 上

 ovs-vsctl del-br br1
 ovs-vsctl add-br br1
 
 ovs-vsctl add-port br1 eth1
 
 使用 ifconfig 命令
 ifconfig eth1  up
 ifconfig br1 203.0.113.103 up

测试连通性

在 203.0.113.101 上 ping 203.0.113.103
OK

在 203.0.113.103 上 ping 203.0.113.101
OK

同网段 Self-service networks
思路:

 1. 2 个虚拟机各建立一个bridge,就相当于各自接入一个交换机
 2. 如果这 2 个交换机被分配同一个网段,可以直接互相访问
 3. 在 OpenStack 里面,相当于给所有节点提供一个私有网络 (Self-service networks)
 4. 必须通过某些技术配置后才可以访问:这里是 VxLAN 隧道

在 203.0.113.101 上创建 br0

 ovs-vsctl del-br br0
 
 ovs-vsctl add-br br0
 
 使用 ifconfig 命令
 ifconfig br0 1.2.3.101/24 up

 ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.103

检查一下 203.0.113.101 上的 br0

 root@ubuntu2004-101:/home/dhbm# ovs-vsctl show
 
 57af7789-d775-440a-a204-e663b3c75b3e
     Bridge br0
         Port br0
             Interface br0
                 type: internal
         Port vx1
             Interface vx1
                 type: vxlan
                 options: {remote_ip="203.0.113.103"}
     Bridge br1
         Port br1
             Interface br1
                 type: internal
         Port eth1
             Interface eth1
     Bridge br-int
         fail_mode: secure
         Port br-int
             Interface br-int
                 type: internal
     ovs_version: "2.13.8"


在 203.0.113.101 上设置路由
route add default gw 203.0.113.1


在 203.0.113.103 上上创建 br0

 ovs-vsctl del-br br0
 
 ovs-vsctl add-br br0
 
 ifconfig br0 1.2.3.103/24 up
 
 ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=203.0.113.103

检查一下 203.0.113.101 上的 br0

 root@ubuntu2004-103:/home/dhbm# ovs-vsctl show
 
 a762a8e4-e153-4895-b87a-c7f7bc3ce3c3
     Bridge br1
         Port br1
             Interface br1
                 type: internal
         Port eth1
             Interface eth1
     Bridge br0
         Port br0
             Interface br0
                 type: internal
         Port vx1
             Interface vx1
                 type: vxlan
                 options: {remote_ip="203.0.113.101"}
     Bridge br-int
         fail_mode: secure
         Port br-int
             Interface br-int
                 type: internal
     ovs_version: "2.13.8"

在 203.0.113.101 上设置路由
使用 route 命令
route add default gw 203.0.113.1

连通性测试

在 203.0.113.101 上 (Self-service networks : 1.2.3.101)
ping 1.2.3.103
OK

在 203.0.113.103 上 (Self-service networks : 1.2.3.103)
ping 1.2.3.101
OK

不同网段 Self-service networks
思路:

 1. 2 个虚拟机各建立一个bridge,就相当于各自接入一个交换机
 2. 如果这 2 个交换机被分配到不同网段,就无法直接互相访问彼此
 3. 在 OpenStack 里面,相当于给所有节点提供一个私有网络 (Self-service networks)
 4. 必须通过某些技术配置后才可以访问:这里是 VxLAN 隧道

直接在 203.0.113.103 上重新分配br0 的 ip 地址,即: ifconfig br0 5.6.7.103/24 up

连通性测试

在 203.0.113.101 上 (Self-service networks : 1.2.3.101)
ping 5.6.7.103
不通
在 203.0.113.103 上 (Self-service networks : 5.6.7.103)
ping 1.2.3.101
不通

在 203.0.113.101 上 增加路由
使用 route 命令
route add -net 5.6.7.0 netmask 255.255.255.0 gw 1.2.3.101 dev br0

在 203.0.113.103 上 增加路由
使用 route 命令
route add -net 1.2.3.0 netmask 255.255.255.0 gw 5.6.7.103 dev br0

 root@ubuntu2004-103:/home/dhbm# ip route list
 
 default via 203.0.113.1 dev br1 
 default via 192.168.0.81 dev eth0 proto static 
 1.2.3.0/24 via 5.6.7.103 dev br0 scope link 
 5.6.7.0/24 dev br0 proto kernel scope link src 5.6.7.103 
 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.103 
 203.0.113.0/24 dev br1 proto kernel scope link src 203.0.113.103 

再次连通性测试

在 203.0.113.101 上 (Self-service networks : 1.2.3.101)

 root@ubuntu2004-101:/home/dhbm# ping -c 4 5.6.7.103
 PING 5.6.7.103 (5.6.7.103) 56(84) bytes of data.
 64 bytes from 5.6.7.103: icmp_seq=1 ttl=64 time=1.84 ms
 64 bytes from 5.6.7.103: icmp_seq=2 ttl=64 time=0.415 ms
 64 bytes from 5.6.7.103: icmp_seq=3 ttl=64 time=0.426 ms
 64 bytes from 5.6.7.103: icmp_seq=4 ttl=64 time=0.411 ms
 
 --- 5.6.7.103 ping statistics ---
 4 packets transmitted, 4 received, 0% packet loss, time 3038ms
 rtt min/avg/max/mdev = 0.411/0.774/1.844/0.617 ms

在 203.0.113.103 上 (Self-service networks : 5.6.7.103)

 root@ubuntu2004-103:/home/dhbm# ping -c 4 1.2.3.101
 PING 1.2.3.101 (1.2.3.101) 56(84) bytes of data.
 64 bytes from 1.2.3.101: icmp_seq=1 ttl=64 time=1.94 ms
 64 bytes from 1.2.3.101: icmp_seq=2 ttl=64 time=0.357 ms
 64 bytes from 1.2.3.101: icmp_seq=3 ttl=64 time=0.386 ms
 64 bytes from 1.2.3.101: icmp_seq=4 ttl=64 time=0.383 ms
 
 --- 1.2.3.101 ping statistics ---
 4 packets transmitted, 4 received, 0% packet loss, time 3038ms
 rtt min/avg/max/mdev = 0.357/0.765/1.937/0.676 ms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值