centos配置vlan

一. 网上大佬方式(测试未通过)

  1. 安装依赖包
1
yum install vconfig -y
  1. 查看核心是否提供VLAN 功能
1
2
3
4
5
6
7
8
9
dmesg | grep -i 802

[root@c159 network-scripts]# dmesg |grep -i 802
[ 0.318021] pci 0000:00:16.5: [15ad:07a0] type 01 class 0x060400
[ 0.398023] pci 0000:00:16.2: bridge window [mem 0xeb100000-0xeb1fffff 64bit pref]
[ 1.120802] Key type trusted registered
[12888.091996] 8021q: 802.1Q VLAN Support v1.8
[12888.092019] 8021q: adding VLAN 0 to HW filter on device ens192
[12888.092511] 8021q: adding VLAN 0 to HW filter on device ens224
  1. 查看/proc/net/vlan目录是否存在,如果不存在,使用modprobe模命令进入802.1q.o,且使用lsmod命令模是否已入核心
1
2
3
4
5
6
modprobe 8021q

[root@c159 network-scripts]# lsmod |grep 802
8021q 33159 0
garp 14384 1 8021q
mrp 18542 1 8021q
  1. 使用vconfig命令增加子接口:
1
vconfig add ens224 60
  1. 利用ls /proc/net/vlan查看
1
2
[root@c159 network-scripts]# ls /proc/net/vlan/
config ens224.60 ens224.20 ens224.30

如没有vconfig包则修改配置文件即可(见六以下步骤)

  1. 修改网卡配置:

ifcfg-ens224配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens224 ifcfg-ens224.60

vim ifcfg-ens224

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none //此项dhcp对vlan端口无影响,如不放心,可改成static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
DEVICE=ens224
ONBOOT=no //此项yes或no,对vlan端口无影响

对应vlan的配置文件中UUID一定要删掉,不然会出现不可知的问题

ifcfg-ens224.60配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vim ifcfg-ens224.60
TYPE=vlan //TYPE类型
PHYSDEV=ens224 //vlan端口对应物理硬件名称
VLAN_ID=60 //VLAN ID
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224.60
DEVICE=ens224.60
ONBOOT=yes
VLAN=yes //设置允许vlan
IPADDR=10.0.0.80
NETMASK=255.255.255.0

二. 直接在主网卡修改配置文件方式(推荐)

vlan内网10.0.1.段地址vlan idvlan60vlan60
机器名称centos1centos2
vlan内网地址

10.0.1.6010.0.1.61
外网地址10.0.0.1010.0.0.128

本次环境使用 vmware 模拟

一台centos7 一台centos8

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_d1ed2ec5c1b9dfd1d195e5b96d71c0f3.png

GATEWAY 此参数根据情况考虑是否添加

如:双网卡不同IP情况 只允许有一个默认网关 如果另一张网卡需要配置外网IP 那么只允许规定外网IP的网卡配置外网网关

VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD 是网络配置文件中的一个选项,它指定了 VLAN 标签的格式。

  • VLAN_PLUS_VID_NO_PAD 表示 VLAN 标签以 “VLAN” 开头,后跟 VLAN ID,例如 “VLAN80”。
  • NO_PAD 表示 VLAN ID 不会在前面填充零。例如,VLAN ID 80 表示为 “VLAN80” 而不是 “VLAN080”。

因此,VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD 的意思是,使用 “VLAN” 加上 VLAN ID 的格式,并且不在 VLAN ID 前面填充零。

网卡配置其实只需要在下方添加此配置即可

1
2
3
4
5
6
7
8
9
IPADDR=10.0.1.61
PREFIX=24
GATEWAY=10.0.1.220
DNS1=114.114.114.114
DNS2=8.8.8.8
DNS3=223.5.5.5
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
VLAN_ID=80

centos8修改网卡配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens224
DEVICE=ens224
ONBOOT=yes
IPADDR=10.0.1.61
PREFIX=24
GATEWAY=10.0.1.220
DNS1=114.114.114.114
DNS2=8.8.8.8
DNS3=223.5.5.5
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
VLAN_ID=60

centos7配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
IPV6_PRIVACY="no"
NAME="ens35"
DEVICE="ens35"
ONBOOT="yes"
IPADDR="10.0.1.60"
PREFIX="24"
GATEWAY="10.0.1.220"
DNS1="114.114.114.114"
DNS2="8.8.8.8"
DNS3="223.5.5.5"
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
VLAN_ID=60

centos8物理服务器实际配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[test@cloud1 network-scripts]$ cat ifcfg-eno4
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=eno4
UUID=7ee10950-b9b8-45dd-995d-074cf1695242
DEVICE=eno4
ONBOOT=yes
IPADDR=172.56.20.11
PREFIX=24
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
VLAN_ID=20

验证:

相互ping看内网是否互通

  • 物理服务器验证
    网卡变为绿色

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/6/image_2bfbac8a58848ceb401fa888e341bd45.png

    交换机对应服务器的端口灯亮

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/6/image_f5809244b4f7e86f58c42d319e515b3e.png

  • down掉centos7 ens33网卡 在vmware控制台ping centos8 vlan60网卡ens35 ping 10.0.1.61 (成功)

  • 并且此时ping不通centos7 10.0.0.10 说明内外网隔离环境测试成功

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_46d9d81ccd08ad64cb09535dc5f30812.png

  • 将centos2机器vlan修改为其他段如vlan80后使用此机器 ping centos1 vlan60 10.0.1.60看能否ping通

    https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_1367c682fbe66fce000e3afced063d48.png

    此时两台机器互相无法ping通 https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_f9f2dc184abb2dd3b0f6ede28a0e7830.png

成功!

本文参考:

https://blog.csdn.net/zhongbeida_xue/article/details/95355111