关于ovs:Open-vSwitch-入门实践3使用OVS构建分布式隔离网络

27次阅读

共计 2300 个字符,预计需要花费 6 分钟才能阅读完成。

应用 OVS 构建分布式隔离网络

前言

上一节咱们应用 OVS 构建了单机隔离网络,然而随着网络规模的扩张,单节点曾经不再能满足业务的须要,分布式网络成了必不可少的环节。分布式网络与单节点网络在细节实现上基本一致,只有物理环境网络连线上的一点区别。

试验 1:分布式无隔离网络

网络拓扑如下图所示,咱们每一台节点都有两张网卡,一张用于治理,一张用于业务。之所以应用两张网卡有两个起因:

  1. 治理网卡用于日常的保护登录,业务网卡用于传输虚构节点的数据报文,防止相互之间影响。
  2. 咱们要将业务网卡绑定到 OVS 网桥上,也就是 Normal 类型的 Port。这种形式增加的Port 不反对调配 IP 地址,如果之前网卡上配置的有 IP,挂载到 OVS 下面之后将不可拜访。

须要留神的是,如果是应用物理环境搭建网络拓扑,须要把业务网卡对应的交换机端口配置为 trunk 模式。如果是应用 VmWare 搭建网络拓扑,业务网卡须要配置网络类型为 仅主机模式

配置

  • 配置环境 主机 A
ovs-vsctl add-br br-int
# 请批改 eth1 为以后试验环境的业务网卡名称
ovs-vsctl add-port br-int eth1

# 增加两个外部端口
ovs-vsctl add-port br-int vnet0 -- set Interface vnet0 type=internal
ovs-vsctl add-port br-int vnet1 -- set Interface vnet1 type=internal
# 增加两个 netns
ip netns add ns0
ip netns add ns1
# 将外部端口别离挪动到 netns 中
ip link set vnet0 netns ns0
ip link set vnet1 netns ns1

# 启动端口并配置 IP
ip netns exec ns0 ip link set lo up
ip netns exec ns0 ip link set vnet0 up
ip netns exec ns0 ip addr add 10.0.0.1/24 dev vnet0

ip netns exec ns1 ip link set lo up
ip netns exec ns1 ip link set vnet1 up
ip netns exec ns1 ip addr add 10.0.0.2/24 dev vnet1
  • 配置环境 主机 B
ovs-vsctl add-br br-int
# 请批改 eth1 为以后试验环境的业务网卡名称
ovs-vsctl add-port br-int eth1

# 增加两个外部端口
ovs-vsctl add-port br-int vnet0 -- set Interface vnet0 type=internal
ovs-vsctl add-port br-int vnet1 -- set Interface vnet1 type=internal
# 增加两个 netns
ip netns add ns0
ip netns add ns1
# 将外部端口别离挪动到 netns 中
ip link set vnet0 netns ns0
ip link set vnet1 netns ns1

# 启动端口并配置 IP
ip netns exec ns0 ip link set lo up
ip netns exec ns0 ip link set vnet0 up
ip netns exec ns0 ip addr add 10.0.0.3/24 dev vnet0

ip netns exec ns1 ip link set lo up
ip netns exec ns1 ip link set vnet1 up
ip netns exec ns1 ip addr add 10.0.0.4/24 dev vnet1

测试

  • 测试 主机 A
ip netns exec ns0 ping 10.0.0.3
ip netns exec ns0 ping 10.0.0.4
ip netns exec ns1 ping 10.0.0.3
ip netns exec ns1 ping 10.0.0.4
  • 测试 主机 B
ip netns exec ns0 ping 10.0.0.1
ip netns exec ns0 ping 10.0.0.2
ip netns exec ns1 ping 10.0.0.1
ip netns exec ns1 ping 10.0.0.2
  • 测试后果
主机 A 主机 B ping 后果
ns0 ns0 可通信 ✅
ns0 ns1 可通信 ✅
ns1 ns0 可通信 ✅
ns1 ns1 可通信 ✅

依据测试后果能够看到咱们应用 OVS 胜利的联通了散布在不同主机上的虚构网络设备。

试验 2:分布式隔离网络

构建分布式隔离网络和单节点的操作方法统一,即给对应的端口配置 VLAN tag。如下图所示,咱们别离给主机 A、B 上的端口配置 VLAN tag 为 100 和 200。

配置

  • 配置环境 主机 A
ovs-vsctl set Port vnet0 tag=100
ovs-vsctl set Port vnet1 tag=200
  • 配置环境 主机 B
ovs-vsctl set Port vnet0 tag=100
ovs-vsctl set Port vnet1 tag=200

测试

  • 测试 主机 A
ip netns exec ns0 ping 10.0.0.3
ip netns exec ns0 ping 10.0.0.4
ip netns exec ns1 ping 10.0.0.3
ip netns exec ns1 ping 10.0.0.4
  • 测试 主机 B
ip netns exec ns0 ping 10.0.0.1
ip netns exec ns0 ping 10.0.0.2
ip netns exec ns1 ping 10.0.0.1
ip netns exec ns1 ping 10.0.0.2
  • 测试后果
主机 A 主机 B ping 后果
ns0 ns0 可通信 ✅
ns0 ns1 不通信 ❌
ns1 ns0 不通信 ❌
ns1 ns1 可通信 ✅

依据测试后果能够看到咱们应用 OVS 胜利的隔离了散布在不同主机上的虚构网络设备。

本文首发我的微信公众号:我在对面的角落
欢送关注,接管第一工夫更新告诉。

正文完
 0