在实验环境中实施和配置如下 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

第 1 章 虚拟化 - 013 - 动手实践 Linux VLAN相关推荐

  1. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)

    Linux内核分析与应用 西安邮电大学(陈莉君) 在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础, ...

  2. 添加简单的linux内核模块,操作系统实践 第12章-添加最简单的Linux内核模块.ppt

    操作系统实践 第12章-添加最简单的Linux内核模块.ppt 文档编号:310662 文档页数:16 上传时间: 2018-07-21 文档级别: 文档类型:ppt 文档大小:2.00MB 第12章 ...

  3. 第3章 远程连接管理Linux实践

    第3章 远程连接管理Linux实践 3.1 远程连接Linux系统管理 3.1.1 为什么要远程连接Linux系统 在很多机构的培训教学中,教员通常会直接在虚拟机界面或者虚拟机里的图形界面讲解知识,这 ...

  4. eBPF动手实践系列一:解构内核源码eBPF样例编译过程

    作者:闻茂泉 他山之石 了解和掌握纯c语言的ebpf编译和使用,有助于我们加深对于eBPF技术原理的进一步掌握,也有助于开发符合自己业务需求的高性能的ebpf程序.目前常见和主流的纯c语言的ebpf编 ...

  5. guice google_与Google Guice的动手实践

    guice google by Sankalp Bhatia 通过Sankalp Bhatia 与Google Guice的动手实践 (A hands-on session with Google G ...

  6. 产品经理也能动手实践的AI(二)- 做个识别宠物的AI

    https://www.toutiao.com/a6673604688056680972/ 上一篇产品经理也能动手实践的AI(一)- FastAI介绍,介绍了为什么选择FastAI,为什么适合产品经理 ...

  7. 《Hadoop与大数据挖掘》一2.3.5 动手实践:运行MapReduce任务

    本节书摘来华章计算机<Hadoop与大数据挖掘>一书中的第2章 ,第2.3.5节,张良均 樊 哲 位文超 刘名军 许国杰 周 龙 焦正升 著 更多章节内容可以访问云栖社区"华章计 ...

  8. Linux 虚拟化网络技术 — KVM + Linux Bridge 的网络虚拟化解决方案

    目录 文章目录 目录 KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离 TSG: Failed to restart network KVM 虚拟机应用 Linux Bridg ...

  9. 《JavaScript高级程序设计》红宝书第二遍阅读(动手实践)

    <JavaScript高级程序设计>红宝书第二遍阅读(动手实践) 第1章--什么是JavaScript 第2章--HTML中的JavaScript 第3章--语言基础 第4章--变量.作用 ...

最新文章

  1. Linux系统JDK安装和配置
  2. 用 mongodb + elasticsearch 实现中文检索
  3. DSP5509项目之用FFT识别钢琴音调(1)
  4. STL之红黑树容器:set,hash_set,multiset,hash_map,multimap
  5. 阿里云PolarDB论文入选数据库顶会SIGMOD2021 最新一代架构领先世界
  6. uva 10118 ——Free Candies
  7. dedeCMS会员注册功能,如何开启或关闭?
  8. 实例变量 成员变量 java 1615135036
  9. 国行ps4服务器维护,不能登录其地区的PSN代表什么
  10. 位置编码在注意机制中的作用
  11. 经典——也许这就是方向
  12. 过去的2017和已经到来的2018
  13. 离散数学及其应用第六版中文电子书和答案
  14. Android音乐播放器demo
  15. JPG图像太大怎么免费压缩
  16. access orcad 数据库_cis(orcad)本地元件access数据库创建跟加载方法详解.doc
  17. dns配置异常怎么修复_dns异常怎么修复【详细介绍】
  18. 设计模式~调停者(中介)模式-06
  19. 聊天室页面问题和解决方案
  20. 为MacTex配置Ctex环境

热门文章

  1. php 正则教程,最通俗易懂的php正则表达式教程(上)
  2. 计算机考试受苦受累,受苦受累真是福作文800字
  3. java 9宫格抽奖_前端js实现九宫格模式抽奖(多宫格抽奖)
  4. python实操培训_python实训day1
  5. ipython notebook_50个关于IPython的使用技巧,get起来!
  6. Verilog系统函数(一) $display
  7. 【Verilog HDL 训练】第 07 天(串并转换)
  8. Linux实战教学笔记16:磁盘原理
  9. vue-cli3.0配置详解
  10. 树的基本操作的非递归实现