对于OVS场景下,虚拟机和宿主机网络打通方式

这里总结两种方式,一种是通过添加流表的形式实现,不改变原有的网络拓扑结构;另外一种是通过在虚拟机上增加网卡的形式完成,但是会在虚拟机上添加一块虚拟网卡,同时也需要在虚拟机中做网络配置。
推荐使用第二种,实现方式更为简单一些。

0x01 添加流表方式实现

1、添加一对veth pair作为连接bridge和宿主机的桥梁
#ip link add tap1 type veth peer name tap2
2、为tap1配置ip地址(该地址是与虚拟机同网段的地址
#ifconfig tap1 192.168.1.18/24
在这里插入图片描述
3、将tap1和tap2拉起
#ip link set tap1 up
#ip link set tap2 up
4、将tap2加入到ovs的br-int上
#ovs-vsctl add-port br-int tap2
5、通过加流表的方式,打通tap2和虚拟机之间的网络
首先查看br-int下,各端口的编号
#ovs-ofctl show br-int
对于OVS场景下,虚拟机和宿主机网络打通方式_第1张图片
找到tap2的编号以及虚拟机port编号,然后在table0中,分别将双向流量打通。
#ovs-ofctl add-flow br-int “table=0 priority=999,in_port=3,actions=output:4”
#ovs-ofctl add-flow br-int “table=0 priority=999,in_port=4,actions=output:3”

6、流表清除
有两种清除方式,一种使用del-flows,不过不推荐这种方式,目前没有发现可以精确删除OVS流表的方式,可能会多删除。建议直接重启OVS。
#systemctl restart openvswitch

0x02 虚拟机上增加网卡方式实现

通过在宿主机上增加新的bridge,将需要打通的网络加入到该bridge,并将虚拟机attach到该bridge,实现互通

1、安装Linux bridge
#yum install bridge-utils
2、新加linux bridge(例如br-eth0),原管理网(如果想打通业务网,这里就操作业务网)网卡(例如eth0)挂到bridge上
#brctl addbr br-eth0
#brctl addif br-eth0 eth0
3、增加网桥配置文件,修改原管理网配置文件
#vim ifcfg-br-eth0

DEVICE=br-eth0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
DEFROUTE=yes
BOOTPROTO=static
IPADDR=172.19.109.31
NETMASK=255.255.255.0
GATEWAY=172.19.109.254

#vim ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br-eth0

重启网络后生效
#systemctl restart network

4、使用virsh attach-interface将id为9的虚拟机attach到网桥br-eth0上。
#virsh attach-interface 9 --type bridge --source br-eth0 --model virtio --persistent

5、登录到虚机,给新加的虚拟网卡配置与管理网一个网段的IP地址,即可打通虚机和管理网互通
#ifcfg eth0 add 172.19.109.38/24

你可能感兴趣的:(部署和配置,网络虚拟化)