一台服务器上一块网卡想同时划到两个不同vlan,并且让他们之间可以互相通信。
1、首先确认Linux系统内核是否已经支持VLAN功能,加载了8021q模块,lsmod |grep 8021q。
2、关于网卡的解释,好多人不知道网卡接口上的冒号和点号的区别,以下是一些解释(我也是从网上查的,仅供参考)
a、物理网卡:物理网卡指的是服务器上实际的网络接口设备,如在系统中看到的2个物理网卡分别对应是eth0和eth1这两个网络接口。
b、子网卡:子网卡并不是实际上的网络接口设备,但是可以作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖 于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有它们自己的网络接口配置文件。但是当所依赖的物理网卡不启用 时(Down状态)这些子网卡也将一同不能工作。
c、虚拟VLAN网卡:这些虚拟VLAN网卡也不是实际上的网络接口设备,也可以作为网络接口在系统中出现,但是与子网卡不同的是,他们没有自己 的配置文件。他们只是通过将物理网加入不同的VLAN而生成的VLAN虚拟网卡。如果将一个物理网卡添加到多个VLAN当中去的话,就会有多个VLAN虚 拟网卡出现,他们的信息以及相关的VLAN信息都是保存在/proc/net /vlan/config这个临时文件中的,而没有独自的配置文件。它们的网络接口名是eth0.1、eth1.2这种名字。
下面为实际操作,我的环境是一台H3C S5120三层交换机,服务器有4个网卡。
交换机配置
配置trunk,并且配置允许vlan id,我这里端口是g1/0/11 到g1/0/15
设置该端口为trunk模式
1 | [H3C-Git1/0/11]port link-type trunk //vlan端口默认为access模式 |
[H3c-Git1/0/11]port trunk permit vlan 40 50 //替换后面的数字为all则是允许所有vlan tag通过该端口
1 |
|
[H3C]interface Vlan-interface 40
[H3C-Vlan-interface1]ip address 192.168.4.254 255.255.255.0
[H3C]interface Vlan-interface 50
[H3C-Vlan-interface1]ip address 192.168.5.254 255.255.255.0
1 |
|
dmesg | grep -i 802
[root@test]# dmesg | grep -i 802
802.1Q VLAN Support v1.8 Ben Greeargreearb@candelatech.com
[root@test]# modprobe 8021q
[root@test~]#lsmod |grep 8021q //查看系统内核是否支持802.1q协议
8021q 18633 0
1 |
vconfig add eno3 300 // eno3为物理网络接口名称,300为 802.1q tag id 也即 vlan ID
vconfig add eno3 500
ifconfig eno3.300 192.168.4.5/24 up
ifconfig eno3.500 172.31.5.5/24 up
1 |
|
auto lo eno3
iface lo inet loopback
iface eno3.300 inet static
address 192.168.4.5
netmask 255.255.255.0
iface eno3.500 inet static
address 172.31.5.5
netmask 255.255.255.0
1 |
|
[root@test0001]#vconfig rem eth0.100]#vconfig rem eth0.200
Removed VLAN -:eth0.100:-
[root@test0001
Removed VLAN -:eth0.200:-
在openstack虚拟机里不能做操作,不过newton版开发了这个plugin叫VLAN-aware-VMs
http://blog.csdn.net/bc_vnetwork/article/details/53927687