如何在 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:

  • VLAN ID (200), VLAN N/W = 172.168.10.0/24
  • VLAN ID (300), VLAN N/W = 172.168.20.0/24

要在 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命令查看标记后的接口状态:

现在我们可以使用下面的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:

重启之后,上面所有通过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命令检验标记的接口是否已配置和启动,并且正在运行中:

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

(0)

相关推荐

  • VMware安装CentOS虚拟机与配置网络的图文教程

    1. 下载CentOS镜像 1.1 下载网站 http://mirrors.163.com/centos/ http://mirrors.aliyun.com/centos/ 1.2 选择相应版本,如:7.9.2009:注意:该仓库地址不对较老版本镜像进行保留,若需要请通过官方地址https://www.centos.org/download/进行下载 1.3 选择isos 1.4 选择相应硬件架构版本,如:x86_64(主流64位架构) 1.5 选择DVD标准安装版进行下载 2. 安装Cent

  • 关于VLAN中DHCP域的问题

    我的问题就是如何给每个VLAN 指定各自的DHCP 域.比如vlan 2 对应dhcp test2 vlan3 对应dhcp test3. 假如:   情况1: 现在有一个router 上做了多个DHCP 域.   然后在switch 上划VLAN .那么那个交换机上的ip help-address 的IP 是什么呢?是router 上哪个口的IP 呢? 如:在router 上的配制:  ip dhcp excluded-address 10.0.199.200 10.0.199.254 ! i

  • linux虚拟网络设备之vlan配置详解

    简介 VLAN是网络栈的一个附加功能,且位于下两层.首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去.下两层涉及到具体的硬件设备,日趋完善的Linux内核已经做到了很好的代码隔离,对网络设备驱动也是如此,如下图所示: 这里要注意的是,Linux下的网络设备net_dev并不一定都对应实际的硬件设备,只要注册一个struct net_device{}结构体(netdevice.h)到内核中,那么这个网络设备就存在了.该结构体很庞大,其中包含设备的协议地址(对于IP即I

  • Centos7.3开机自动启动或执行指定命令操作

    在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限. chmod +x /etc/rc.d/rc.local 然后就可以在里面添加你要开机自启的命令了 vi /etc/rc.d/rc.local 补充知识:centOS7.2将自定义的脚本设置成service,并开机启动 spring boot的jar包部署上线时,希望能将其设置成service,并能开机启动,步骤如下: 1.准备好脚本(网上很多,此处不写了) 2.建立一个软连接到/e

  • vmware12中安装 RedHat RHEL7.2系统的详细步骤(图文)

    本文介绍了vmware12中安装 RedHat RHEL7.2系统的详细步骤(图文),分享给大家,具体如下: 一.开始安装 1)新建虚拟机 RHEL7.2 2)成功引导系统--开机出现此画面 Install Red Hat EnterpriseLinux 7.2 安装RHLE7.2 操作系统 Test this edia & install RedHat Enterprise Linux 7.2 测试安装文件并安装RHLE7.2 操作系统 Troubleshooting 修复故障 3)选择第一项

  • 突破VLAN

    VLAN是网络交换机的一种技术,可以把不同的电脑划分在不同的网络中,使其不能互相通信,以达到提高安全性和网络性能的目的.要跨越VLAN通信,必须借助路由器或者3层交换模块. 我市的ADSL网在接入层使用了Cisco的Catalyst6509型三层交换机,在端口上设置了VLAN,把同一IP段的用户相互隔开.这样一来,安全性倒是高了,可惜平时打游戏.共享文件都不方便,需要通过其他IP段的朋友中转.于是突破VLAN成了当务之急. 我所在的段,IP地址为10.145.254.x,网关为10.145.25

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

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

  • CentOS Linux系统搭建Android开发环境详细介绍

    CentOS Linux系统搭建Android开发环境详细介绍 很多人都是在Windows下进行Android开发,但是对于Linux,Android开发环境方面的资料比较少,今天在网上找到了一位网友分享的在CentOS Linux系统中搭建Android开发环境的过程.下面就是其介绍的配置的详细步骤原文: 由于我最近每天使用的是CentOS 5.5,所以选择CentOS5.5作为我的开发环境. 主要包括以下步骤: 1.JDK安装 2.Eclipse安装 3.ADT安装 4.Android SD

  • 详解如何在 CentOS 7 中添加新磁盘而不用重启系统

    对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一.因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器.关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种. 1. 在虚拟机客户端扩充磁盘空间: 在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere.VMware 工作站以及你使用的其它虚拟环

  • CentOS系统中一键安装Openstack图文教程

    前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下: 用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫packsta

  • 详解如何在 CentOS 7 中安装或升级最新的内核

    虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核.另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库. 在正常操作期间,内核负责执行两个重要任务: 作为硬件和系统上运行的软件之间的接口. 尽可能高效地管理系统资源. 为此,内核通过内置的驱动程序或以后可作为模块安装的驱动程序与硬件通信. 例如,当你计算机上运行的程序想要连接到无线网络时,它会将该请求提交给内核,后者又会使用正确的驱动程序连接到网络. 随着新的设备和

  • 如何在CentOS中安装PHP7.4的方法步骤

    本指南提供了在 CentOS 8 / RHEL 8 Linux 系统上安装 PHP 7.4 的步骤.有兴趣的开发者已经可以在生产环境中使用使用 PHP 7.4,正式版本的官方发布时间为2019 年 11 月 28 日. 请按照以下步骤在 CentOS 8 / RHEL 8 上安装 PHP 7.4. 步骤一:添加 EPEL 和 REMI 库 安装需要 EPEL 和 REMI 库.通过以下命令将其添加到系统中 sudo yum -y install https://dl.fedoraproject.

  • Centos系统中彻底删除Mysql数据库步骤

    详细步骤如下所示: 1.输入命令查询系统中已安装的mysql. rpm -qa |grep -i mysql 2.逐个卸载mysql. yum remove 系统显示已安装的mysql 比如: yum remove mysql-community-server-5.7.19-1.el7.x86_64 3.卸载完成后使用find命令来查找系统中存在的mysql文件夹. find / -name mysql 4.使用rm -rf命令逐个删除文件夹路径即可. 比如: rm -rf /etc/logro

  • Centos系统中如何在指定位置下安装Nginx

    Centos系统中如何在指定位置下安装Nginx?前言需求分析安装过程环境准备安装Nginx需要的编译及依赖库安装OpenSSL库安装 PCRE库安装Zlib库安装Nginx启动Nginx进行验证撒花!Nginx 安装成功! 前言 之前因为没有写博客的习惯,导致很多东西时间久了容易遗忘.今天起,将会把工作中遇到的问题与解决思路携程博客分享出来.希望与各位程序员共同进步. 需求分析 工作中为方便运维人员安装部署.项目经理要求前端包与web服务器进行统一打包.统一入库. 从而实现运维人员使用简单的t

  • 解决Navicat无法连接 VMware中Centos系统中的 MySQL服务器的问题

    Host 'xxxx' is not allowed to connect to this MySQL server的解决方法 报错:1130 -Host *** is not allowed to connect to this MySQL server 这里的ip也发生了错误,我输入的是192.168.117.101但是报错报成192.168.117.1 实际的连接不上,可能有很多种,如果是上面这种报错信息,则下面就是解决方法.如果不是, 可能原因有  网络无法连通,文章链接:Centos设

  • 如何在centos中安装redis插件bloom-filter

    目录 前言 步骤: 总结 前言 linux上安装redis就不说了,主要说redis安装插件布隆过滤器. 布隆过滤器:一种数据结构,是由一串很长的二进制向量组成,可以将其看成一个二进制数组.既然是二进制,那么里面存放的不是0,就是1,但是初始默认值都是0. 如下所示: 步骤: 1.下载redisbloom插件(redis官网下载即可) https://github.com/RedisLabsModules/redisbloom/ 找到最新的tag下载tar.gz格式即可: [root@redis

随机推荐