zoukankan      html  css  js  c++  java
  • 第 1 章 虚拟化

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

  • 相关阅读:
    中芯国际内争的真相
    对Delphi控件作用的新理解(控件本身的源代码就是一个很强的工业级源码)
    百度云怎么赚钱
    百度地图在某架构下找不到符号.a文件的问题
    忽然发现,if语句没有相应的continue功能
    可怜的苏联,以及可恨的戈尔巴乔夫
    感觉镀金没有用,兼论小公司与大公司的选择
    开发团队的民主集中制
    关于明末历史(已全部写完)
    CF 322B Ciel and Flowers 贪心水题
  • 原文地址:https://www.cnblogs.com/gsophy/p/10917941.html
Copyright © 2011-2022 走看看