关于ovs:Open-vSwitch-入门实践4使用OVS配置端口镜像

前言当咱们想要在不影响虚构网络设备数据报文收发的状况下获取对应虚构网络设备的流量时,端口镜像是一个很好的抉择。端口镜像是指将通过指定端口(镜像端口)的报文复制一份到另一个指定端口(察看端口),通过观察端口接管到的数据报文,就能够无效辨认虚构网络的运行状况。 OVS提供了相干命令来配置或删除端口镜像,上面咱们来试验一下。 如何应用端口镜像类型端口镜像分为镜像源和镜像目标两局部。 镜像源select_all:布尔类型(true,false)。设置为 true 时,示意此网桥上的所有流量。select_dst_port:字符串(端口名称)。示意此端口接管的所有流量。select_src_port:字符串(端口名称)。示意此端口发送的所有流量。select_vlan:整形(1-4096)。示意携带此VLAN标签的流量。镜像目标output_port:字符串(端口名称)。接管流量报文的察看端口。output_vlan:整形(1-4096)。示意只批改VLAN标签,原VLAN标签会被剥离。根底操作命令新增端口镜像 ovs-vsctl -- set Bridge <bridge_name> mirrors=@m \ -- --id=@<port0> get Port <port0> \ -- --id=@<port1> get Port <port1> \ -- --id=@m create Mirror name=<mirror_name> select-dst-port=@<port0> select-src-port=@<port0> output-port=@<port1>这行命令会输入一个镜像ID删除端口镜像 ovs-vsctl remove Bridge <bridge-name> mirrors <mirror-id>在原端口镜像的根底上减少一个镜像源 # 获取端口的IDovs-vsctl get port <port_name> _uuid# 在原端口镜像的根底上减少镜像源ovs-vsctl add Mirror <mirror-name> select_src_port <port-id>ovs-vsctl add Mirror <mirror-name> select_dst_port <port-id>在原端口镜像的根底上删除一个镜像源 # 获取端口的IDovs-vsctl get port <port_name> _uuidovs-vsctl remove Mirror <mirror-name> select_src_port <port-id>ovs-vsctl remove Mirror <mirror-name> select_dst_port <port-id>清空端口镜像 ...

December 16, 2020 · 2 min · jiezi

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

应用OVS构建分布式隔离网络前言上一节咱们应用OVS构建了单机隔离网络,然而随着网络规模的扩张,单节点曾经不再能满足业务的须要,分布式网络成了必不可少的环节。分布式网络与单节点网络在细节实现上基本一致,只有物理环境网络连线上的一点区别。 试验1:分布式无隔离网络网络拓扑如下图所示,咱们每一台节点都有两张网卡,一张用于治理,一张用于业务。之所以应用两张网卡有两个起因: 治理网卡用于日常的保护登录,业务网卡用于传输虚构节点的数据报文,防止相互之间影响。咱们要将业务网卡绑定到OVS网桥上,也就是Normal类型的Port。这种形式增加的Port不反对调配IP地址,如果之前网卡上配置的有IP,挂载到OVS下面之后将不可拜访。须要留神的是,如果是应用物理环境搭建网络拓扑,须要把业务网卡对应的交换机端口配置为trunk模式。如果是应用VmWare搭建网络拓扑,业务网卡须要配置网络类型为仅主机模式。 配置配置环境 主机Aovs-vsctl add-br br-int# 请批改eth1为以后试验环境的业务网卡名称ovs-vsctl add-port br-int eth1# 增加两个外部端口ovs-vsctl add-port br-int vnet0 -- set Interface vnet0 type=internalovs-vsctl add-port br-int vnet1 -- set Interface vnet1 type=internal# 增加两个netnsip netns add ns0ip netns add ns1# 将外部端口别离挪动到netns中ip link set vnet0 netns ns0ip link set vnet1 netns ns1# 启动端口并配置IPip netns exec ns0 ip link set lo upip netns exec ns0 ip link set vnet0 upip netns exec ns0 ip addr add 10.0.0.1/24 dev vnet0ip netns exec ns1 ip link set lo upip netns exec ns1 ip link set vnet1 upip netns exec ns1 ip addr add 10.0.0.2/24 dev vnet1配置环境 主机Bovs-vsctl add-br br-int# 请批改eth1为以后试验环境的业务网卡名称ovs-vsctl add-port br-int eth1# 增加两个外部端口ovs-vsctl add-port br-int vnet0 -- set Interface vnet0 type=internalovs-vsctl add-port br-int vnet1 -- set Interface vnet1 type=internal# 增加两个netnsip netns add ns0ip netns add ns1# 将外部端口别离挪动到netns中ip link set vnet0 netns ns0ip link set vnet1 netns ns1# 启动端口并配置IPip netns exec ns0 ip link set lo upip netns exec ns0 ip link set vnet0 upip netns exec ns0 ip addr add 10.0.0.3/24 dev vnet0ip netns exec ns1 ip link set lo upip netns exec ns1 ip link set vnet1 upip netns exec ns1 ip addr add 10.0.0.4/24 dev vnet1测试测试 主机Aip netns exec ns0 ping 10.0.0.3ip netns exec ns0 ping 10.0.0.4ip netns exec ns1 ping 10.0.0.3ip netns exec ns1 ping 10.0.0.4测试 主机Bip netns exec ns0 ping 10.0.0.1ip netns exec ns0 ping 10.0.0.2ip netns exec ns1 ping 10.0.0.1ip netns exec ns1 ping 10.0.0.2测试后果主机A主机Bping 后果ns0ns0可通信 ✅ns0ns1可通信 ✅ns1ns0可通信 ✅ns1ns1可通信 ✅依据测试后果能够看到咱们应用OVS胜利的联通了散布在不同主机上的虚构网络设备。 ...

December 15, 2020 · 2 min · jiezi

ovs实践openFlow跨网段组网

sdn (software defines network)看了些相关的资料,这里记录一下自己对sdn的理解,能力有限,如有错误欢迎指正。 sdn软件定义网络,目的是想要利用软件来模拟网络设备,如交换机,路由器之类的。 为什么需要这么做? 一个主要原因是云计算的高速发展,给传统的数据中心带来了更加灵活和复杂的组网需求。 传统网络设备完成数据中心服务器的组网,在此之上,通过sdn来完成虚机和容器之间的连通 ovs (openvSwitch)官方的说法:Open vSwitch是一款高质量的多层虚拟交换机,以开源Apache 2许可证授权,非常适合在虚拟机环境中充当2层交换机。支持多种基于Linux的虚拟化技术,包括Xen / XenServer、KVM和VirtualBox。支持Open Flow协议,所以可以很方便的通过编程实现大规模网络的自动化,被大量运用于SDN网络中。 架构和原理之类的文章很多,这里就不在一一阐述,本文以实践为主。 安装# 安装dockeryum install -y docker-1.13.1# 预安装yum -y install wget openssl-devel gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel# 安装open vswitch:yum install -y openvswitch-2.8.2-1.el7.x86_64 # 此版本包含ovs-dockersystemctl start openvswitch.servicesystemctl is-active openvswitchsystemctl enable openvswitchovs单机连通性创建容器, 设置net=none可以防止docker0默认网桥影响连通性测试 docker run -itd --name con6 --net=none ubuntu:14.04 /bin/bashdocker run -itd --name con7 --net=none ubuntu:14.04 /bin/bashdocker run -itd --name con8 --net=none ubuntu:14.04 /bin/bash创建网桥 ...

June 28, 2019 · 6 min · jiezi