当前位置:服务器 > > 正文

centos7配vlan(如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡)

时间:2021-10-30 10:30:09类别:服务器

centos7配vlan

如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡

在某些场景中,我们希望在 Linux 服务器(CentOS/RHEL)的同一块以太网卡(NIC)上分配来自不同 VLAN 的多个 IP。这个可以通过使用 VLAN 标记接口来实现。但是要做到这一点,我们必须确保交换机的端口上连接了多个 VLAN,也就是说我们可以在交换机上添加多个 VLAN 来配置聚合端口Trunk port(LCTT 译注:一般有聚合端口Trunk port接入端口Access port混合端口Hybird port三种)。

假设我们有一个 Linux 服务器,我们在这里有两张以太网卡(enp0s3enp0s8),第一张网卡(enp0s3)会用于数据传输,而第二张网卡(enp0s8) 会用于控制/流量管理。我会使用多个 VLAN 用于数据传输(或在数据流量网卡上从不同的 VLAN 中分配多个 IP)。

我假设连接到我服务器的数据网卡的端口,是通过映射多个 VLAN 来配置为聚合端口。

下面是映射到数据传输网卡(NIC)的 VLAN:

要在 CentOS 7 / RHEL 7 / CentOS 8 / RHEL 8 系统中使用 VLAN 标记接口,必须加载内核模块8021q

加载内核模块8021q可以使用下面的命令:

  • [root@linuxtechi ~]# lsmod | grep -i 8021q
    [root@linuxtechi ~]# modprobe --first-time 8021q
    [root@linuxtechi ~]# lsmod | grep -i 8021q
    8021q 29022 0
    garp 14384 1 8021q
    mrp 18542 1 8021q
    [root@linuxtechi ~]#
    
  • 可以使用modinfo命令显示内核模块8021q的详细信息:

  • [root@linuxtechi ~]# modinfo 8021q
    filename: /lib/modules/3.10.0-327.el7.x86_64/kernel/net/8021q/8021q.ko
    version: 1.8
    license: GPL
    alias: rtnl-link-vlan
    rhelversion: 7.2
    srcversion: 2E63BD725D9DC11C7DA6190
    depends: mrp,garp
    intree: Y
    vermagic: 3.10.0-327.el7.x86_64 SMP mod_unload modversions
    signer: CentOS Linux kernel signing key
    sig_key: 79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3
    sig_hashalgo: sha256
    [root@linuxtechi ~]#
    
  • 现在使用ip 命令给enp0s3网卡标记(或映射)上200300的 VLAN 。

    (LCTT 译注:这是先给enp0s3网卡映射上200的 VLAN 标签。)

  • [root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.200 type vlan id 200
    
  • 使用下面的ip命令打开接口:

  • [root@linuxtechi ~]# ip link set dev enp0s3.200 up
    
  • 同理给enp0s3网卡映射上300的 VLAN 标签:

  • [root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.300 type vlan id 300
    [root@linuxtechi ~]# ip link set dev enp0s3.300 up
    
  • 现在使用ip命令查看标记后的接口状态:

    centos7配vlan(如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡)

    现在我们可以使用下面的ip命令从它们各自的 VLAN 为已经标记的接口分配 IP 地址:

  • [root@linuxtechi ~]# ip addr add 172.168.10.51/24 dev enp0s3.200
    [root@linuxtechi ~]# ip addr add 172.168.20.51/24 dev enp0s3.300
    
  • 使用下面的ip命令查看是否为已标记的接口分配到 IP:

    centos7配vlan(如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡)

    重启之后,上面所有通过ip命令的更改都不会保持(LCTT 译注:修改后可保存至配置文件或数据库中,如果未进行保存处理,则只有当前环境生效,重启后配置失效)。系统重启和网络服务重启(LCTT 译注:service network restart,或downup命令)之后这些标记接口将不可用。

    因此,要使标记的接口在重启后保持不变,需要使用接口的ifcfg文件。

    编辑接口(enp0s3)文件/etc/sysconfig/network-scripts/ifcfg-enp0s3,并且增加下面的内容:

    作者提醒:替换为你环境中的接口名称。

  • [root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    TYPE=Ethernet
    DEVICE=enp0s3
    BOOTPROTO=none
    ONBOOT=yes
  • 保存和退出文件。

    为 id 是200的 VLAN 创建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.200,且增加下面的内容:

  • [root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.200
    DEVICE=enp0s3.200
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=172.168.10.51
    PREFIX=24
    NETWORK=172.168.10.0
    VLAN=yes
    
  • 保存并退出此文件。

    同理为 id 是300的 VLAN 创建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.300,且增加下面的内容:

  • [root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.300
    DEVICE=enp0s3.300
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=172.168.20.51
    PREFIX=24
    NETWORK=172.168.20.0
    VLAN=yes
    
  • 保存并退出文件,这时候使用下面的命令重启网络服务

  • [root@linuxtechi ~]# systemctl restart network
    
  • 现在使用下面的ip命令检验标记的接口是否已配置和启动,并且正在运行中:

    centos7配vlan(如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡)

    到此这篇关于如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡的文章就介绍到这了,更多相关CentOS系统中使用带 VLAN 标记的以太网卡内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    上一篇下一篇

    猜您喜欢

    热门推荐