每天学习opensatck(5)

本章节将继续分享虚拟vlan实现。


centos实现vlan功能:

1.需要使用到vconfig软甲。首先安装vconfig软件:

yum  install vconfig

2.查看核心是否支持vlan

dmesg | grep  -i 802(有结果输出

root@kvm:~# dmesg |grep -i 802.1Q
[  419.236126] 8021q: 802.1Q VLAN Support v1.8

3.检查/proc/net/vlan 是否存在。

root@kvm:~# ll /proc/net/vlan/
config        enp1s0f1.101  enp1s0f1.200  enp1s0f1.202  enp1s0f1.303 

4.使用modprobe 命令载入802.1Q模块

root@kvm:~# modprobe 8021q

root@kvm:~# lsmod | grep 8021q
8021q                  28919  0 
garp                   14384  1 8021q
mrp                    18778  1 8021q

5.使用vconfig命令增减子接口,增加子接口vlan分别为20,100。

vconfig add eth1 20

vconfig add eth1 100

可以使用ifconfig eth1.20 查看子接口

6.增加子接口完毕后,使用cp命令复制接口ip配置文件,并使用vi修改。

cp ifcfg-eth1 ifcfg-eth1.20

cp ifcfg-eth1 ifcfg-eth1.100

7.重启network服务生效


ubuntu配置如下:

apt-get  install  vlan

modprobe 8021q

echo "8021q"  >> /etc/modules

lsmod |grep -i 8021q

example:

brctl addbr br20

brctl addbr br100

ifconfig br20 up

ifconfig br100 up

链接网桥和VLAN

brctl addif br10 eth0.100

brctl addif br10 eth0.20

vconfig add eth0 2

vconfig add eth0 3

vconfig add eth0 4
ifconfig eth1.2 192.168.2.1 up
ifconfig eth1.3 192.168.3.1 up
ifconfig eth1.4 192.168.4.1 up


配置 VLAN

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

下面用 vmdiff 展示了对 /etc/network/interfaces 的修改

重启宿主机,ifconfig 各个网络接口

用 brctl show 查看当前 Linux Bridge 的配置。 eth0.10 和 eth0.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 的网络虚拟化做个总结。

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

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

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

总结起来,Linux Bridge 加 VLAN 在功能层面完整模拟现实世界里的二层交换机。

eth0 相当于虚拟交换机上的 trunk 口,允许 vlan10 和 vlan20 的数据通过
eth0.10,vent0 可以看做 vlan10 的 access 口,brvlan10 可以看做为虚拟交换机
eth0.20,vent1 可以看做 vlan20 的 access 口 ,brvlan20 可以看做为虚拟机机。

部分内容转载: https://www.ibm.com/developerworks/community/blogs/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值