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