一、Linux Bridge网桥管理

网络虚拟化是虚拟化技术中最复杂的部分,也是非常重要的资源。

第一节中我们创建了一个名为br0的linux-bridge网桥,如果在此网桥上新建一台vm,如下图:

VM2 的虚拟网卡 vnet1 也连接到了 br0 上。 现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信。

查看网络状态:

用brctl show 显示当前网桥连接状态:

brctl命令详解:

yum install bridge-utils -y
[root@ren11 ~]# brctl --help
Usage: brctl [commands]
commands:
addbr <bridge> add bridge #添加网桥
delbr <bridge> delete bridge #删除网桥
addif <bridge> <device> add interface to bridge #向网桥添加接口
delif <bridge> <device> delete interface from bridge #删除网桥上接口
hairpin <bridge> <port> {on|off} turn hairpin on/off
setageing <bridge> <time> set ageing time
setbridgeprio <bridge> <prio> set bridge priority
setfd <bridge> <time> set bridge forward delay
sethello <bridge> <time> set hello time
setmaxage <bridge> <time> set max message age
setpathcost <bridge> <port> <cost> set path cost
setportprio <bridge> <port> <prio> set port priority
show [ <bridge> ] show a list of bridges #查看网桥列表
showmacs <bridge> show a list of mac addrs #查看物理地址列表
showstp <bridge> show bridge stp info
stp <bridge> {on|off} turn stp on/off

二、VLAN介绍

  LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机。一般来说,两台计算机连入同一个 Hub 或者 Switch 时,它们就在同一个 LAN 中。
  一个 LAN 表示一个广播域。 其含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包。
  VLAN 表示 Virtual LAN。一个带有 VLAN 功能的switch 能够将自己的端口划分出多个 LAN。计算机发出的广播包可以被同一个 LAN 中其他计算机收到,但位于其他 LAN 的计算机则无法收到。 简单地说,VLAN 将一个交换机分成了多个交换机,限制了广播的范围,在二层将计算机隔离到不同的 VLAN 中。
  比方说,有两组机器,Group A 和 B,我们想配置成 Group A 中的机器可以相互访问,Group B 中的机器也可以相互访问,但是 A 和 B 中的机器无法互相访问。 一种方法是使用两个交换机,A 和 B 分别接到一个交换机。 另一种方法是使用一个带 VLAN 功能的交换机,将 A 和 B 的机器分别放到不同的 VLAN 中。

  VLAN 的隔离是二层上的隔离,A 和 B 无法相互访问指的是二层广播包(比如 arp)无法跨越 VLAN 的边界。但在三层上(比如IP)是可以通过路由器让 A 和 B 互通的。
  现在的交换机几乎都是支持 VLAN 的。 通常交换机的端口有两种配置模式: AccessTrunk。如下图

Access 口
  这些端口被打上了 VLAN 的标签,表明该端口属于哪个 VLAN。 不同 VLAN 用 VLAN ID 来区分,VLAN ID 的 范围是 1-4096。 Access 口都是直接与计算机网卡相连的,这样从该网卡出来的数据包流入 Access 口后就被打上了所在 VLAN 的标签。 Access 口只能属于一个 VLAN。
Trunk 口
  假设有两个交换机 A 和 B。 A 上有 VLAN1(红)、VLAN2(黄)、VLAN3(蓝);B 上也有 VLAN1、2、3,那如何让 AB 上相同 VLAN 之间能够通信呢?
办法是将 A 和 B 连起来,而且连接 A 和 B 的端口要允许 VLAN1、2、3 三个 VLAN 的数据都能够通过。这样的端口就是Trunk口了。 VLAN1, 2, 3 的数据包在通过 Trunk 口到达对方交换机的过程中始终带着自己的 VLAN 标签。

三、Linux Bridge实现Vlan的原理

KVM 虚拟化环境下实现 VLAN 架构,如下图

  eth0 是宿主机上的物理网卡,有一个命名为 eth0.10 的子设备与之相连。 eth0.10 就是 VLAN 设备了,其 VLAN ID 就是 VLAN 10。 eth0.10 挂在命名为 brvlan10 的 Linux Bridge 上,虚机 VM1 的虚拟网卡 vent0 也挂在 brvlan10 上。

  这样的配置其效果就是: 宿主机用软件实现了一个交换机(当然是虚拟的),上面定义了一个 VLAN10。 eth0.10,brvlan10 和 vnet0 都分别接到 VLAN10 的 Access口上。而 eth0 就是一个 Trunk 口。VM1 通过 vnet0 发出来的数据包会被打上 VLAN10 的标签。
eth0.10 的作用是:定义了 VLAN10
brvlan10 的作用是:Bridge 上的其他网络设备自动加入到 VLAN10 中

增加一个 VLAN20,如下图

  这样虚拟交换机就有两个 VLAN 了,VM1 和 VM2 分别属于 VLAN10 和 VLAN20。

  对于新创建的虚机,只需要将其虚拟网卡放入相应的 Bridge,就能控制其所属的 VLAN。
  VLAN 设备总是以母子关系出现,母子设备之间是一对多的关系。 一个母设备(eth0)可以有多个子设备(eth0.10,eth0.20 ……),而一个子设备只有一个母设备。

四、Linux Bridge实现Vlan

vlan的拓扑图:

1、查看核心是否提供VLAN功能

[root@ren11 ~]# dmesg | grep -i 802

或者检查/proc/net/vlan目录是否存在;如果没有提供VLAN功能,/proc/net/vlan目录是不存在的。

如果8021q模块没有载入系统,则可以通过使用modprobe模组命令载入802.1q模组,并利用lsmod命令确认模组是否已经载入到核心内。

[root@ren11 ~]# modprobe 8021q
[root@ren11 ~]# lsmod | grep 8021q

设置开机载入8021q模块(可选)
在/etc/sysconfig/modules下增加一个8021q.modules文件,文件内容为modprobe 8021q

vim /etc/sysconfig/modules/8021q.modules
modprobe 8021q

2、安装用于查看VLAN配置的工具---vconfig

提前装备好vconfig-1.9-16.el7.x86_64.rpm(需要用网络源)

[root@ren11 ~]# rpm -ivh vconfig-1.9-16.el7.x86_64.rpm 

3、创建VLAN接口

(1)创建vlan接口前,在设备上添加一块网卡ens37

(2)网络配置如图:

注意:将BOOTPROTO=static(ip获取方式改为static,其它不动)

(3)基于网卡ens37建立vlan10,vlan20接口:ens37.10,ens37.20:

vconfig add ens37 10
vconfig add ens37 20

vconfig命令:

(4)创建ens37.10接口配置文件

[root@ren11 ~]# cd /etc/sysconfig/network-scripts/
[root@ren11 network-scripts]# cp ifcfg-ens37 ifcfg-ens37.10
[root@ren11 network-scripts]# vim ifcfg-ens37.10
VLAN=yes      #启用vlan
TYPE=vlan      #类型vlan
PHYSDEV=ens37    #物理设备网卡
VLAN_ID=10      #vlan_id
NAME=ens37.10      
ONBOOT=yes      #自启
ZONE=trusted      #开启作用域
DEVICE=ens37.10      #设备名
BRIDGE=brvlan-10      #网桥

(5)创建ens37.20接口配置文件

[root@ren11 network-scripts]# cp ifcfg-ens37.10 ifcfg-ens37.20
[root@ren11 network-scripts]# vim ifcfg-ens37.20
VLAN=yes
TYPE=vlan
PHYSDEV=ens37
VLAN_ID=20
NAME=ens37.20
ONBOOT=yes
ZONE=trusted
DEVICE=ens37.20
BRIDGE=brvlan-20

4、分别建立网桥brvlan-10,brvlan-20

brctl addbr brvlan-10
brctl addbr brvlan-20

5、编辑网桥brvlan-10和brvlan-20配置文件:

#vim ifcfg-brvlan-10
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes
#vim ifcfg-brvlan-20
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes

6、将网桥brvlan-10接到网口ens37.10,brvlan-20接到网口ens37.20

brctl addif brvlan-10 ens34.10
brctl addif brvlan-20 ens34.20

7、重新启动网络服务

systemctl restart network
[root@ren11 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:ff brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.130/24 brd 192.168.6.255 scope global noprefixroute ens37
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fede:8b09/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:99:d3:26 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:99:d3:26 brd ff:ff:ff:ff:ff:ff
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether fe:54:00:16:f2:bd brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe16:f2bd/64 scope link
valid_lft forever preferred_lft forever
9: ens37.10@ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brvlan-10 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
10: ens37.20@ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brvlan-20 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
11: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.11.11/24 brd 192.168.11.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fede:8bff/64 scope link
valid_lft forever preferred_lft forever
12: brvlan-10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fede:8b09/64 scope link
valid_lft forever preferred_lft forever
13: brvlan-20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fede:8b09/64 scope link
valid_lft forever preferred_lft forever

  可以看到配置的网卡和网桥都成功显示并且是UP状态;如果状态为down,可以尝试重启或者进入nmtui界面激活。

五、vlan模式测试虚机

(先将NetworkManager服务关闭(可以省略))
1、在宿主机中已经提前创建好了两台虚拟机,来到图形化界面,启动两个虚拟机VM1和VM2
在 virt-manager 中将 VM1 的虚拟网卡挂到 brvlan-10 上

在 virt-manager 中将 VM12的虚拟网卡挂到 brvlan-20 上

2、进入虚拟机后配置一个ip地址,与另一台相同网段

3、重新启动网卡;VM2同理

systemctl restart network

4、在VM1上执行ping命令

可以看到,当两个虚拟机是不同的网桥网口时,网络无法连通;修改为同一个网桥网口时,网络可以连通;说明vlan实验成功!

5、如果有连通外网的需求,可以添加一个网卡eth1,网桥为br0

使用nmtui,修改网卡名后重启网络服务即可

六、网卡配置bond(绑定)

(一)网卡bond(绑定),也称作网卡捆绑。就是将两个或者更多的物理网卡绑定成一个虚拟网卡。网卡是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在应用部署中是一种常用的技术。

多网卡绑定实际上需要提供一个额外的软件的bond驱动程序实现。通过驱动程序可以将多块网卡屏蔽。对TCP/IP协议层只存在一个Bond网卡,在Bond程序中实现网络流量的负载均衡,即将一个网络请求重定位到不同的网卡上,来提高总体网络的可用性。
(二)网卡绑定的目的
   1.提高网卡的吞吐量。
   2.增强网络的高可用,同时也能实现负载均衡。

(三)网卡配置bond(绑定)bond模式:

1、Mode=0(balance-rr) 表示负载分担round-robin,平衡轮询策略,具有负载平衡和容错功能
bond的网卡MAC为当前活动的网卡的MAC地址,需要交换机设置聚合模式,将多个网卡绑定为一条链路。
2、Mode=1(active-backup) 表示主备模式具有容错功能,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。
3、Mode=2(balance-xor) 表示XOR Hash负载分担(异或平衡策略),具有负载平衡和容错功能
每个slave接口传输每个数据包和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)。
4、Mode=3(broadcast)  表示所有包从所有interface发出,广播策略,具有容错能力,这个不均衡,只有冗余机制...和交换机的聚合强制不协商方式配合。  
5、Mode=4(802.3ad) 表示支持802.3ad协议(IEEE802.3ad 动态链接聚合) 和交换机的聚合LACP方式配合(需要xmit_hash_policy)。
6、Mode=5(balance-tlb) 适配器传输负载均衡,并行发送,无法并行接收,解决了数据发送的瓶颈。 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。  
7、Mode=6(balance-alb) 在5的tlb基础上增加了rlb。适配器负载均衡模式并行发送,并行接收数据包

  5和6不需要交换机端的设置,网卡能自动聚合。4需要支持802.3ad。0,2和3理论上需要静态聚合方式,但实测中0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。

常用的有三种:
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

(四)网卡配置bond(绑定)[ bond驱动程序实现vlan ]

先把之前的环境删除

1、删除配置的ens37.10和ens37.20网口以及创建的网桥brvlan-10和brvlan20

#删除网桥与网口的链接
brctl delif brvlan-10 ens37.10
brctl delif brvlan-20 ens37.20
#删除网桥
brctl delbr brvlan-10
brctl delbr brvlan-20
#删除网口
vconfig rem ens37.10
vconfig rem ens37.20

2、brctl show 查看连接是否被删除

  ip a 查看网卡是否还显示

3、如果没有删除成功,执行nmtui:

4、查看配置文件信息,网口和网桥文件被删除成功了。

接下来开始网卡配置bond+vlan实践

1、编辑bond配置文件(绑定四块网卡)

[root@ren11 network-scripts]# vim ifcfg-ens37
[root@ren11 network-scripts]# cp ifcfg-ens37 ifcfg-ens38
[root@ren11 network-scripts]# cp ifcfg-ens37 ifcfg-ens39
[root@ren11 network-scripts]# cp ifcfg-ens37 ifcfg-ens40
[root@ren11 network-scripts]# cat ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes

2、导入bonding模块

[root@ren11 network-scripts]# modprobe bonding
[root@ren11 network-scripts]# lsmod | grep bonding
bonding 152656 0

3、创建bond0,并桥接到br1

[root@ren11 network-scripts]#vim ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
BONDING_OPTS="mode=6 miimon=100"
BRIDGE=br1

4、创建br1网桥

[root@ren11 network-scripts]# vim ifcfg-br1
TYPE=Bridge
DEVICE=br1
ONBOOT=yes
BOOTPROTO=static
NAME=br1

5、创建虚拟网口vlan10,vlan20的配置文件

[root@ren11 network-scripts]# vim ifcfg-br1.10
VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=10
NAME=br1.10
ONBOOT=yes
ZONE=trusted
DEVICE=br1.10
BRIDGE=brvlan-10
[root@ren11 network-scripts]# cp ifcfg-br1.10 ifcfg-br1.20
[root@ren11 network-scripts]# vim ifcfg-br1.20
VLAN=yes
TYPE=vlan
PHYSDEV=br1
VLAN_ID=20
NAME=br1.20
ONBOOT=yes
ZONE=trusted
DEVICE=br1.20
BRIDGE=brvlan-20

6、创建vlan的网桥

[root@ren11 network-scripts]# vim ifcfg-brvlan-10
TYPE=
bridge
BOOTPROTO=static
NAME=brvlan-10
DEVICE=brvlan-10

ONBOOT=yes
[root@ren11 network-scripts]# cp ifcfg-brvlan-10 ifcfg-brvlan-20
[root@ren11 network-scripts]# vim ifcfg-brvlan-20
TYPE=bridge
BOOTPROTO=static
NAME=brvlan-20
DEVICE=brvlan-20
ONBOOT=yes

7、连接网桥和虚拟网口

[root@ren11 network-scripts]# brctl addif brvlan-10 br1.10
interface br1.10 does not exist!
[root@ren11 network-scripts]# brctl addif brvlan-20 br1.20
interface br1.20 does not exist!
[root@ren11 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29de8bff no ens33
virbr0 8000.52540099d326 yes virbr0-nic

8、重启网络服务

[root@ren11 network-scripts]# systemctl restart network
[root@ren11 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29de8bff no ens33
br1 8000.000c29de8b09 no bond0
brvlan-10 8000.000c29de8b09 no br1.10
brvlan-20 8000.000c29de8b09 no br1.20
virbr0 8000.52540099d326 yes virbr0-nic

9、查看网卡状态

[root@ren11 network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:ff brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
9: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:99:d3:26 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
10: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:99:d3:26 brd ff:ff:ff:ff:ff:ff
14: ens38: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:27 brd ff:ff:ff:ff:ff:ff
15: ens39: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:13 brd ff:ff:ff:ff:ff:ff
16: ens40: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:1d brd ff:ff:ff:ff:ff:ff
17: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br1 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
18: brvlan-20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet6 fe80::2067:e7ff:fe34:f5b8/64 scope link
valid_lft forever preferred_lft forever
19: brvlan-10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet6 fe80::44c2:9cff:feb3:7b85/64 scope link
valid_lft forever preferred_lft forever
20: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
inet6 fe80::f83f:acff:fe70:fce5/64 scope link
valid_lft forever preferred_lft forever
21: br1.20@br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brvlan-20 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
22: br1.10@br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brvlan-10 state UP group default qlen 1000
link/ether 00:0c:29:de:8b:09 brd ff:ff:ff:ff:ff:ff
23: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:de:8b:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.11.11/24 brd 192.168.11.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fede:8bff/64 scope link
valid_lft forever preferred_lft forever

测试

在图形化界面中选择虚拟网络接口:

1、两台虚拟机都选择bond0接口时,可以互相通信

2、一台选择br1.10 网桥brvlan-10;另一台选择br1.20网桥brvlan-20,则无法通信

kvm虚拟化网络管理(5)的更多相关文章

  1. KVM虚拟化网络管理(4)

    一.Linux Bridge网桥管理 网络虚拟化是虚拟化技术中最复杂的部分,也是非常重要的资源.第一节中我们创建了一个名为br0的linux-bridge网桥,如果在此网桥上新建一台vm,如下图: V ...

  2. kvm虚拟化网络管理

    Linux Bridge 网桥管理 VM2 的虚拟网卡 vnet1 也连接到了 br0 上. 现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信 # Vlan LAN ...

  3. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  4. [原] KVM 虚拟化原理探究 —— 目录

    KVM 虚拟化原理探究 -- 目录 标签(空格分隔): KVM KVM 虚拟化原理探究(1)- overview KVM 虚拟化原理探究(2)- QEMU启动过程 KVM 虚拟化原理探究(3)- CP ...

  5. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  6. [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化

    KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...

  7. [原] KVM 虚拟化原理探究(4)— 内存虚拟化

    KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Gu ...

  8. [原] KVM 虚拟化原理探究(3)— CPU 虚拟化

    KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...

  9. [原] KVM 虚拟化原理探究(2)— QEMU启动过程

    KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ...

随机推荐

  1. MyBatis-Plus日常工作学习

    一:Mybatis-Plus概述 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis ...

  2. OO第四单元总结暨期末总结

    OO第四单元总结暨期末总结 目录 OO第四单元总结暨期末总结 第四单元三次作业架构与迭代 整体感受 HW1 HW2 HW3 四个单元架构设计与方法演进 Unit1 Unit2 Unit3 Unit4 ...

  3. 学习WEB前端是应该自学还是参加培训机构?

    先说观点,我强烈建议每个人都要自学,不要参加培训班. 我干web前端工程师这个职位已经有6年多的时间,之前在蚂蚁金服做过2年,后来离开是因为加班实在熬不住才走的,像这些已经上市的互联网公司几乎没有不加 ...

  4. Manjaro 蓝牙连接问题

    1 问题描述 蓝牙不能连接,或者连接上了没有声音. 2 解决方案 首先确保相应软件包存在: sudo pacman -S bluez bluez-utils pulseaudio-bluetooth ...

  5. 12.VUE - v-bind 详解

    v-bind指令用于给html标签设置属性. <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩 ...

  6. 探秘神奇的运动路径动画 Motion Path

    CSS 中有一个非常有意思的模块 -- CSS Motion Path Module Level 1,翻译过来也就是运动路径.本文将对 motion path 一探究竟,通过本文,你可以了解到: 什么 ...

  7. 到底什么才叫SEO

    昨天去面试,公司的老板,问了我几个SEO的问题.SEO是什么?长尾词与关键词的区别?你用哪些SEO工具? SEO就是为了将关键词做上好的位置展示给用户.难道不是吗? 这些问题,我都答了一下. 然后他问 ...

  8. vue.js中使用set方法 this.$set

    vue教程中有这样一个注意事项: 第一种具体情况如下: 运行结果: 当利用索引改变数组某一项时,页面不会刷新.解决方法如下: 运行结果: 三种方式都可以解决,使用Vue.set.vm.$set()或者 ...

  9. 编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/54562606 网上关于编译Android源码的教程已经很多了,但是讲怎么编译And ...

  10. Burpsuite工具的使用

    目录 Burpsuite Proxy代理模块 Repeater模块(改包,重放) Intruder模块(爆破) Target模块 position模块 Payloads模块 Options模块 一处爆 ...