Linux 络虚拟化之vlan

        利用Linux操作系统提供的 络虚拟化功能,创建一个跨主机覆盖的vlan 络。vlan id占用12比特的数字,可表示的范围是4096,最多可以创建4096个vlan 络。为什么是这么小呢vlan构筑在大二层 络之上,二层 络是局域 ,规模是有限的。在有限的二层 络上创建虚拟 ,4096应该是足够大的了。

1.准备实现环境

        用VirtualBox创建两台虚拟机ubuntu-01与ubuntu-02,使用ubuntu-16.04.3-server-amd64.iso镜像,选装镜像自带的Virtual Machine功能以便于创建KVM虚拟机。另外手动安装桌面环境及virt-manager软件。

        ubuntu-01与ubuntu-02 卡设置如下表:

卡名称 络类型 作用
enp0s3 nat 络 连接外部 络,主要用于安装软件包
enp0s9 内部 络 为分别位于ubuntu-01与ubuntu-02中的虚拟机互通提供物理连接

2.组 图

Linux 络虚拟化之vlan

                                                                                     图1

上图是将要实现 络的连接示意图,创建一个vlan id为100的跨ubuntu-01与ubuntu-02的vlan 络。在ubuntu-01中用dnsmasq为整个vlan 络提供DHCP功能,如图中的橙色部分。同时在ubuntu-01中利用iptables为整个 络提供三层 络服务,使新创建的VLAN 络具备连接外 的能力。图中红色部分为VirtualBox的内部 络,用来模拟现实中的物理交换机。最终目的是实现ubuntu-01中的虚拟机test01与ubuntu-02的虚拟机test02能同时接入VLAN 络并能连接外 。

下表是所创建vlan 络的IP地址规划表

络名称 VLAN ID DHCP地址 IP地址范围
test-br-01 100 172.16.0.1 172.16.0.2 172.16.0.3/24~172.16.0.50/24

                                                                                  表1

3.创建二层vlan 络

  •     首先用root账户登录ubuntu-01,根据图1及表1的规划配置dnsmasq。创建文件/etc/test-dnsmasq.conf,增加如下内容:
  • 在 卡enp0s9上创建vlan从设备enp0s9.100,vlan id为100,运行如下命令:
  • 创建 桥test-br-01,并挂接enp0s9.100,命令如下:

启动dnsmasq服务。为了隔离dnsmasq,使它只为本次创建的 络服务,而不是ubuntu-01连接的所有 络,需要创建 络名称空间test-ns-01实现隔离,并用veth pair设备连接test-ns-01名称空间与系统名称空间。其中veth pair中的test-veth-02放入名称空间,并手动l设置IP地址172.16.0.2,作为DHCP服务的监听地址。另一端test-veth-01挂接到 桥test-br-01上。启动设备后,在名称空间test-ns-01下启动dnsmasq,具体命令如下:

用root账户登录ubuntu-02。同样,在enp0s9上创建VLAN从设备enp0s9.100,vlan id为100。创建 桥test-br-01并将enp0s9.100挂接上,然后启动所有创建的设备。在ubuntu-02中无需配置dnsmasq相关的内容。命令如下:

至此,vlan 络的二层相关部分已经搭建完成,可以创建虚拟机并能互通了。但是还不能连接外 。

4.为vlan 络设置三层服务。

  按图1中的规划,需要在ubunt-01上为整个vlan 络提供三层服务。步骤如下。

  • 用root账户登录ubuntu-01
  • 为test-br-01设置IP地址,使它可以向ubuntu-01的 络栈注入数据
  • 设置iptables的转发及nat规则

至此,vlan 络的二层及三层全部搭建完成。

5.测试 络

在ubuntu-01上创建KVM虚拟机test01,并连接到vlan 络test-br-01上。在ubuntu-02上执行同样的操作。登录所创建的虚拟机查看ip分配情况,及测试连接性。

通过ifconfig命令可以看到,两台虚拟机都正确分配到了test-br-01 络上的IP地址。运行ping命令,是可以互通的。另外在两台虚拟机中ping外 地址也是可以通过的。如果正确设备了DNS服务器地址,就可以解析域名了。

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树交换VLAN22400 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年2月8日
下一篇 2018年2月8日

相关推荐