【linux】Centos7单网卡多VLAN配置
Centos7单网卡多VLAN配置
1.需要使用到vconfig软件,首先yum安装vconfig;
使用命令yum install vconfig;
2.使用modprobe 命令加载8021q模块;
modprobe 8021q
另外可以使用lsmod命令模是否已入核心:
lsmod |grep 8021q
3.使用vconfig命令增加子接口,增加vlan为 100的子接口:
命令vconfig add ens32.100(ens32可以是你主机上一张可用的网卡如:eth0,eth1)
4.然后ifconfig查看网卡信息会发现多出一张虚拟网卡,可利用ls /proc/net/vlan查看。
5.增加好之后进入/etc/sysconfig/network-scripts利用cp命令复制接口的IP地址配置;
cp ifcfg-ens32 ifcfg-ens32.100
再用vi修改ifcfg-ens32.100文件,参考以下参数进行修改:
TYPE=Ethernet
DEVICE=ens32.100
BOOTPROTO=static
NAME="ens32.100"
ONBOOT=yes
VLAN=yes
MACADDR=0C:C4:7A:50:D3:16 (虚拟网卡最好不要使用HWADDR)
IPADDR=192.168.100.193
NETMASK=255.255.255.0
GATEWAY=192.168.100.1 ------若存在多网关的话,则写静态路由,参考后文
NM_CONTROLLED=no (该配置可以有效解决重启网络服务失败的问题)
6.最后重启网络服务:使用命令systemctl restart network.service令配置生效
可发现ens32.100的网卡已生成,且MAC地址已修改为0C:C4:7A:50:D3:16。
7.这样即可选择所需要的VLAN局域网。
以上设置可以适用于多个VLAN配置,每一个vlan网卡配置的mac地址都要设置成不同的MAC;
常见问题
1、添加某网段vlan网卡后,对应网段的客户机无法ping通server端IP。
① 关闭反向路由检查(根据自己的情况替换第二第三行的网卡名):
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
② 关闭后请使用命令查看参数是否为0
③ 由于除了all这条,其他项重启机器后都会失效,因此2,3条命令都需要写入启动项,路径文件为/etc/rc.local。
2、存在需要配置多网关的情况下,其他网关使用静态路由代替,且需要配置后使重启网络或服务器也可以生效。
① 静态路由参考命令:
route add –net 192.168.0.0/24 gw 192.168.100.1
route add –net 192.168.0.0 netmask 255.255.255.0 gw 192.168.100.1
② 设置永久路由的建议方法:
在/etc/sysconfig/static-routes文件(没有的话手动创建)中添加如下参数:
any net 192.168.0.0/24 gw 192.168.100.1
any net 192.168.0.0. netmask 255.255.255.0 gw 192.168.100.1
开机自动加载8021q模块
要想在CentOS中自动加载内核模块,需要在/etc/sysconfig/modules/目录中增加一个脚本,在此脚本中加载所需的模块。
下面是一个名为8021q.modules的脚本,用来在系统启动中自动加载802.1Q模块:
#! /bin/sh
/sbin/modinfo -F filename 8021q > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe 8021q
fi