目录
一、理论
1.Linux Bridge
Linux Bridge(网桥)是用纯软件实现的虚拟交换机,有着和物理交换机相同的功能,例如二层交换,MAC地址学习等。因此我们可以把tun/tap,veth pair等设备绑定到网桥上,就像是把设备连接到物理交换机上一样。此外它和veth pair、tun/tap一样,也是一种虚拟网络设备,具有虚拟设备的所有特性,例如配置IP,MAC地址等。
Linux Bridge通常是搭配KVM、docker等虚拟化技术一起使用的,用于构建虚拟网络。
二、实验
1.LBR 网桥管理
(1) SUSE系统用WinSCP拷贝轻量镜像TinyCore-11.0.iso
(2)准备安装
(3)任意选一个
(4)弹出配置界面
(5)修改虚拟机名称
(6)查看硬件
(7)查看宿主机设备
(8)外部设备Cirrus为图形化设备
(9)磁盘存放目录
(10)进入编辑界面
(11)协议支持多种格式
(12)修改协议
(13)网络适配器
(14)编辑页面,查看类型为半虚拟化设备
(15)也有全虚拟化设备可以选择
(16)这里选择全虚拟化并指定网桥br0
(17)选择apply.
(18)选择挂载光驱
(19)选择apply
(20)点击ok
(21)选择第3个
(22)进入TinyCore系统查看所有网卡
(23)TinyCore系统指定网卡
(24)SUSE系统网桥已新增虚拟端口vnet0
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
vnet0
br1 8000.000000000000 no
(25)SUSE系统查看虚拟网卡
SUSE:~ # ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.204.133/24 brd 192.168.204.255 scope global br0
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
10: br1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether c6:f2:b3:25:18:90 brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
link/ether fe:54:00:01:3c:53 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe01:3c53/64 scope link
valid_lft forever preferred_lft forever
(26)brctl帮助命令
SUSE:~ # 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
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
(27)2口取到MAC地址
SUSE:~ # brctl showmacs br0
port no mac addr is local? ageing timer
1 00:0c:29:74:e7:ff no 8.08
1 00:0c:29:a7:aa:24 yes 0.00
1 00:50:56:c0:00:08 no 0.00
1 00:50:56:e4:32:85 no 284.00
2 fe:54:00:01:3c:53 yes 0.00
(28)查看TinyCore网卡,TinyCore的eth0虚拟网卡已与宿主机SUSE的vnet0虚拟端口实现绑定
2.迁移虚拟端口
(1) 在宿主机SUSE上新增第2台虚拟机VM-T-02,依然使用轻量镜像TinyCore-11.0.iso,网卡改为选择半虚拟化
(2)SUSE主机查看网络信息
SUSE:~ # ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether fe:54:00:01:3c:53 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe01:3c53/64 scope link
valid_lft forever preferred_lft forever
12: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.204.133/24 brd 192.168.204.255 scope global br0
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
13: br1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether ae:c1:1d:23:38:37 brd ff:ff:ff:ff:ff:ff
14: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
link/ether fe:54:00:35:7b:e1 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe35:7be1/64 scope link
valid_lft forever preferred_lft forever
(3)相互迁移虚拟网卡
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
vnet1
br1 8000.000000000000 no
SUSE:~ # brctl delif br0 vnet1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
br1 8000.000000000000 no
SUSE:~ # brctl addif br1 vnet1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
br1 8000.fe5400357be1 no vnet1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
br1 8000.fe5400357be1 no vnet1
SUSE:~ # brctl addif br0 vnet0
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
vnet0
br1 8000.fe5400357be1 no vnet1
SUSE:~ # brctl delif br1 vnet1
SUSE:~ # brctl addif br0 vnet1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
vnet0
vnet1
br1 8000.000000000000 no
(4)同一个br下可以ping通
3.迁移物理端口
(1)查看改名为 br1
SUSE:~ # cd /etc/sysconfig/network/
SUSE:/etc/sysconfig/network # ls
config if-down.d ifcfg-br0 ifcfg-lo ifroute-lo scripts
dhcp if-up.d ifcfg-eth0 ifcfg.template providers
SUSE:/etc/sysconfig/network # more ifcfg-br0
BOOTPROTO='dhcp'
BRIDGE='yes'
BRIDGE_FORWARDDELAY='0'
BRIDGE_PORTS='eth0'
BRIDGE_STP='off'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='onboot'
USERCONTROL='no'
SUSE:/etc/sysconfig/network # mv ifcfg-br0 ifcfg-br1
(2)然后重启
SUSE:/etc/sysconfig/network # service network restart
Shutting down network interfaces:
br1 done
br0
No configuration found for br0
Nevertheless the interface will be shut down. done
eth0 device: Intel Corporation 82545EM Gigabit Ethernet Co done
vnet0
No configuration found for vnet0
Nevertheless the interface will be shut down.
vnet0 TUNSETIFF: Device or resource busy done
vnet1
No configuration found for vnet1
Nevertheless the interface will be shut down.
vnet1 TUNSETIFF: Device or resource busy done
Shutting down service network . . . . . . . . . done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up network interfaces:
eth0 device: Intel Corporation 82545EM Gigabit Ethernet Co
eth0 IP address: 0.0.0.0/32 done
vnet0
No configuration found for vnet0 unused
vnet1
No configuration found for vnet1 unused
br1
br1 Ports: [eth0]
br1 forwarddelay (see man ifcfg-bridge) ... ready
br1 Starting DHCP4 client. .
br1 IP address: 192.168.204.133/24 done
Setting up service network . . . . . . . . . . done
(3)复制并编辑网桥
SUSE:/etc/sysconfig/network # cp ifcfg-br1 ifcfg-br0
SUSE:/etc/sysconfig/network # vim ifcfg-br0
(4)第一行和第四行注释
(5)2台TinyCore机器force off 关机
(6)SUSE主机再次重启网络,此时只有br1连接eth0网卡
SUSE:/etc/sysconfig/network # service network restart
Shutting down network interfaces:
br1 done
eth0 device: Intel Corporation 82545EM Gigabit Ethernet Co done
Shutting down service network . . . . . . . . . done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up network interfaces:
eth0 device: Intel Corporation 82545EM Gigabit Ethernet Co
eth0 IP address: 0.0.0.0/32 done
br0
br0 Ports:
br0 forwarddelay (see man ifcfg-bridge) - no ports in bridge. done
br1
br1 Ports: [eth0]
br1 forwarddelay (see man ifcfg-bridge) ... ready
br1 Starting DHCP4 client. .
br1 IP address: 192.168.204.133/24 done
Setting up service network . . . . . . . . . . done
(6)开启VM-T-01
(7) 然后开启VM-T-02进入
(8)把所有虚拟端口迁移br1,此时br0为隔离环境
SUSE:/etc/sysconfig/network # ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UP qlen 1000
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
17: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet6 fe80::1ceb:a4ff:fe65:1a8e/64 scope link
valid_lft forever preferred_lft forever
18: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:0c:29:a7:aa:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.204.133/24 brd 192.168.204.255 scope global br1
inet6 fe80::20c:29ff:fea7:aa24/64 scope link
valid_lft forever preferred_lft forever
19: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN qlen 500
link/ether fe:54:00:01:3c:53 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe01:3c53/64 scope link
valid_lft forever preferred_lft forever
SUSE:/etc/sysconfig/network # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.fe54005d5e4a no vnet1
br1 8000.000c29a7aa24 no eth0
vnet0
SUSE:/etc/sysconfig/network # brctl delif br0 vnet1
SUSE:/etc/sysconfig/network # brctl addif br1 vnet1
SUSE:/etc/sysconfig/network # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
br1 8000.000c29a7aa24 no eth0
vnet0
vnet1
三、问题
1.Linux虚拟交换机如何增删
(1)查看Linux Bridge信息
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
(2)添加虚拟交换机
SUSE:~ # brctl addbr br1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0
br1 8000.000000000000 no
(3)删除虚拟交换机
SUSE:~ # brctl delbr br1
SUSE:~ # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a7aa24 no eth0