第 1 章 虚拟化 - 013 - 动手实践 Linux VLAN

 

在实验环境中实施和配置如下 VLAN 网络。

 

配置 VLAN

编辑 /etc/network/interfaces,配置 ens192.10、brvlan10、ens192.20 和 brvlan20。

增加的部分:

 

重启宿主机,ifconfig 各个网络接口如下所示:

root@ubuntu:~# ifconfig

br0       Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet addr:10.12.31.42  Bcast:10.12.31.255  Mask:255.255.252.0

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:5256 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2577 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:3680594 (3.6 MB)  TX bytes:238588 (238.5 KB)

 

brvlan10  Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:3624 (3.6 KB)

 

brvlan20  Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:31 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:3554 (3.5 KB)

 

ens192    Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:7512 errors:0 dropped:5 overruns:0 frame:0

          TX packets:2732 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:5543885 (5.5 MB)  TX bytes:256258 (256.2 KB)

 

ens192.10 Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:7068 (7.0 KB)

 

ens192.20 Link encap:Ethernet  HWaddr 00:50:56:87:1b:f9 

          inet6 addr: fe80::250:56ff:fe87:1bf9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:63 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:7178 (7.1 KB)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:89 errors:0 dropped:0 overruns:0 frame:0

          TX packets:89 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:6361 (6.3 KB)  TX bytes:6361 (6.3 KB)

 

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00 

          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

用 brctl show 查看当前 Linux Bridge 的配置。 ens192.10 和 ens192.20 分别挂在 brvlan10 和 brvlan20上了。

 

在宿主机中已经提前创建好了虚机 VM1 和 VM2,现在都处于关机状态。

 

配置 VM1

在 virt-manager 中将 VM1 的虚拟网卡挂到 brvlan10 上。

 

启动 VM1

 

查看 Bridge,发现 brvlan10 已经连接了一个 vnet0 设备。

 

通过 virsh 确认这就是 VM1 的虚拟网卡。

 

 

配置VM2

类似的,将 VM2 的网卡挂在 brvlan20 上。

 

启动 VM2。

 

查看 Bridge,发现 brvlan20 已经连接了一个 vnet1 设备。

 

通过 virsh 确认这就是 VM2 的虚拟网卡。

 

 

验证 VLAN 的隔离性

为了验证 VLAN10 和 VLAN20 之间的隔离,我们为 VM1 和 VM2 配置同一网段的 IP。

 

配置 VM1 的 IP。

 

配置 VM2 的 IP

 

Ping 测试结果: VM1 与 VM2 是不通的。

 

原因如下:

1. VM2 向 VM1 发 Ping 包之前,需要知道 VM1 的 IP 192.168.100.10 所对应的 MAC 地址。

     VM2 会在网络上广播 ARP 包,其作用就是问 “谁知道 192.168.100.10 的 MAC 地址是多少?”

2. ARP 是二层协议,VLAN 的隔离作用使得 ARP 只能在 VLAN20 范围内广播,只有 brvlan20 和 eth0.20 能收到,VLAN10 里的设备是收不到的。

     VM1 无法应答 VM2 发出的ARP包。

3. VM2 拿不到 VM1 vnet0 的 MAC 地址,也就 Ping 不到 VM1。

 

Linux Bridge + VLAN = 虚拟交换机

 

对 KVM 的网络虚拟化做个总结:

    物理交换机存在多个 VLAN,每个 VLAN 拥有多个端口。 同一 VLAN 端口之间可以交换转发,不同 VLAN 端口之间隔离。 所以交换机其包含两层功能:交换与隔离。

    Linux 的 VLAN 设备实现的是隔离功能,但没有交换功能。 一个 VLAN 母设备(比如 eth0)不能拥有两个相同 ID 的 VLAN 子设备,因此也就不可能出现数据交换情况。

    Linux Bridge 专门实现交换功能。 将同一 VLAN 的子设备都挂载到一个 Bridge 上,设备之间就可以交换数据了。

 

总结起来,Linux Bridge 加 VLAN 在功能层面完整模拟现实世界里的二层交换机。eth0 相当于虚拟交换机上的 trunk 口,允许 vlan10 和 vlan20 的数据通过。

 

eth0.10,vent0 和 brvlan10 都可以看着 vlan10 的 access 口。

eth0.20,vent1 和 brvlan20 都可以看着 vlan20 的 access 口。

 

 

-------------------------------------------引用来自-----------------------------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587914&idx=1&sn=9a584117a38f8b8ef525c3cae109d0c8&chksm=8d3081d3ba4708c56d86224450f47eb8611714ef1b441afe275fc169671bdc6d9ae0494921ff&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/10917941.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值