首页 > 系统教程 > 操作系统 > 如何在Linux中配置VLAN标记[逐步指南]

如何在Linux中配置VLAN标记[逐步指南]

Lisa Kudrow
发布: 2025-03-20 09:31:12
原创
248 人浏览过

在此详细的教程中,我们将了解VLAN标签是什么,其优点和用例以及如何在Linux操作系统中配置VLAN标记

在Linux中配置VLAN标记涉及创建虚拟LAN,分配VLAN ID并根据需要配置IP地址。我们将在即将到来的部分中看到如何以三种不同的方式做到这一点。但是在此之前,让我们了解什么是VLAN标记,其优势和模式。

目录

什么是VLAN标签?

虚拟LAN(VLAN)标记是一种网络技术,可让您从逻辑上将物理网络分为多个虚拟网络或VLAN。

VLAN标签在数据链路层(第2层)的以太网帧中添加了一个特殊的标签,以识别特定框架所属的VLAN。此标签使您能够隔离网络流量并提高网络安全性,效率和可管理性。

用外行的话说这一点,请想象您有一个有很多房间的大房子,您想将房子分为不同的部分出于不同的目的。

例如,您可能有一个客厅供每个人闲逛,一个厨房烹饪,睡觉的卧室和洗澡的浴室。

以类似的方式,VLAN标记就像将大型计算机网络分为较小,更易于管理的部分。这就像在您的房屋内创建虚拟房间一样。

每个VLAN都像一个单独的房间,同一VLAN中的设备可以轻松地进行通信,但是不同VLAN的设备无法直接通信。

VLAN标记是一种强大的网络技术,可以帮助提高网络安全性,性能和灵活性。从小型企业到大型企业,这是一项广泛使用的技术。

VLAN标记优势

你为什么要这样做?有几个原因:

  • 网络分割:VLAN用于从逻辑上将物理网络分割为较小的孤立网络。例如,您可以将人力资源部门的流量与销售部门的流量分开,以提高安全性和可管理性。
  • 广播控制:通过将网络分为VLAN,每个VLAN中都包含广播流量,从而降低了整个广播域的大小和网络拥塞。
  • 服务质量(QoS) :VLAN可通过为每个VLAN分配不同的QoS策略来确定某些类型的流量(例如语音或视频)的优先级。
  • 来宾网络:在公司环境中,您可以为访客设备创建一个单独的VLAN,以将它们与内部网络隔离开来。
  • 隔离:VLAN可用于隔离特定的设备或服务,例如IP摄像机,IoT设备或网络服务器。

我们在哪里配置VLAN标记?

以下是现实网络中如何使用VLAN的一些示例:

  • 在学校或大学中,VLAN可以用来将网络分开,以分离学生,老师和管理人员。这可能有助于保护学生数据并防止未经授权访问管理系统。
  • 在医院,VLAN可以用来将网络分开以获取患者记录,医疗设备和行政人员。这可能有助于保护患者隐私,并确保关键医疗设备不受网络流量的影响。
  • 在公司办公室中,VLAN可以用来将网络分开,以分开不同部门的网络,例如销售,营销和金融。这可能有助于提高网络安全性并防止未经授权访问敏感数据。

VLAN标签VS。将多个IP地址分配给一个NIC

VLAN标记与将多个IP地址分配给单个网络接口并不完全相同。

VLAN标记是将单个网络分为多个虚拟网络的一种方式,每个网络都有自己的广播域。这是通过在每个以太网框架中添加VLAN标签来完成的,该标签标识了框架所属的VLAN。 VLAN标记是2层技术,这意味着它与以太网协议的水平相同。

另一方面,将多个IP地址分配给单个网络接口是第3层技术。这是通过使用多个IP地址配置网络接口来完成的,每个IP地址属于其他子网。这允许接口与多个网络上的设备通信。

这两种技术通常被一起使用以创建安全且灵活的网络环境。例如,公司可能会使用VLAN将其网络分为不同的部门,然后将多个IP地址分配给每个网络接口,以允许设备与多个部门进行通信。

这是一个表,总结了VLAN标记和将多个IP地址分配给单个网络接口之间的关键差异:

如何在Linux中配置VLAN标记[逐步指南]

完成这些步骤后,应加载VLAN模块,并用于在Linux系统上配置VLAN。您可以继续创建VLAN子界面并根据需要配置VLAN标记。

步骤2-编辑NetPlan配置文件

NetPlan配置文件通常位于/etc/netplan/Directory中,并以.YAML扩展名结尾。

您可能已经有一个配置文件。如果没有,您可以创建一个。使用文本编辑器(例如Nano或vim)编辑配置文件:

 $ sudo nano /etc/netplan/01-netcfg.yaml
登录后复制
登录后复制

用自己的配置文件替换01-netcfg.yaml。

步骤3-定义VLAN配置

在NetPlan配置文件中,通过指定其名称,parent界面(VLAN将与之关联的物理接口)和VLAN ID来定义VLAN接口。

这是一个示例yaml配置:

网络:
  版本:2
  渲染器:NetworkD
  以太网:
    ENS18:
      DHCP4:不
      地址:
        -192.168.1.40/24
      路线:
         -  to:默认
          Via:192.168.1.101
      名称服务器:
          地址:[8.8.8.8,8.8.4.4]

  Vlans:
    VLAN10:
      ID:10
      链接:ENS18
      地址:[192.168.10.2/24]
登录后复制

在上面的配置文件中,替换与您自己的配置匹配的网络设置。

  • ENS18:替换为物理网络接口的名称。
  • VLAN10:替换为VLAN的名称。
  • ID:10:用所需的VLAN ID替换。
  • 链接:ENS18:指定将VLAN关联的物理接口。
  • 地址:为VLAN设置IP地址和子网掩码。

您还可以定义多个VLAN,如以下配置所示。只需确保您对每个VLAN都使用了一个唯一的名称和IP地址。

如何在Linux中配置VLAN标记[逐步指南]

重要的:

NetPlan YAML配置文件中的适当行凹痕对于可读性和正确性至关重要。 YAML使用空间来表示数据结构,因此一致和清晰的凹痕至关重要。

  • 使用空间(不是选项卡)进行凹痕。
  • 在整个配置中保持一致的间距。
  • 在结肠后离开一个空间,将键与值或块分开。
  • 正确的凹痕可增强可读性,最小化错误并使网络配置文件更易于管理。

步骤4-应用配置

将更改保存到NetPlan配置文件中,然后退出文本编辑器。然后,使用NetPlan命令应用配置:

 $ sudo Netplan申请
登录后复制
登录后复制

此命令将应用新的网络配置,包括VLAN设置。

步骤5-验证配置

您可以验证是否已创建了VLAN界面,并使用IP命令正常运行:

 $ ip addr show vlan10
$ ip链接显示VLAN10
登录后复制

将“ VLAN10”替换为VLAN接口名称。这些命令应显示有关VLAN接口及其IP配置的信息。

如何在Linux中配置VLAN标记[逐步指南]

就是这样!您已经使用NetPlan配置了VLAN标记。确保根据需要将配置调整为特定的网络设置,包括VLAN ID,IP地址和物理接口名称。

步骤6-删除VLAN

要删除VLAN接口,只需删除NetPlan配置文件中VLAN的相应部分即可。

在更改之前,最好备份Netplan配置文件。这样,如果出现任何问题,您可以轻松地恢复为原始配置。

 $ sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.backup
登录后复制

现在,使用文本编辑器打开NetPlan配置文件:

 $ sudo nano /etc/netplan/01-netcfg.yaml
登录后复制
登录后复制

找到要删除的VLAN的部分。这将是VLANS下的小节:看起来像这样:

 Vlans:
  VLAN10:
    ID:10
    链接:ETH0
    地址:[192.168.10.2/24]
登录后复制

卸下VLAN的整个部分。保存并关闭文件。

通过运行应用更改:

 $ sudo Netplan申请
登录后复制
登录后复制

确保通过检查网络接口成功删除了VLAN:

 $ ip a
登录后复制

VLAN接口(例如VLAN10)不再列出。

2。使用NMCLI命令配置VLAN标记

要在Linux系统上使用NMCLI(NetworkManager命令行接口)配置VLAN标记,请按照以下步骤:

步骤1-检查VLAN模块是否已加载

要验证是否在Linux中加载了VLAN模块(8021Q),您可以使用LSMOD命令,该命令列出了已加载的内核模块。这是检查VLAN模块是否已加载的方法:

打开终端并运行以下命令:

 $ LSMOD | GREP 8021Q
登录后复制
登录后复制
登录后复制

如果加载了VLAN模块,您将看到包括“ 8021Q”的输出。如果您没有看到任何输出,则意味着该模块未加载。

如果发现未加载VLAN模块,则可以使用ModProbe命令手动加载它:

 $ SUDO MODPROBE 8021Q
登录后复制
登录后复制

运行此命令后,您可以使用LSMOD再次检查其状态| GREP 8021Q。如果已加载,您将看到输出中列出的模块。

要使在Linux系统上的系统启动期间持续使VLAN模块(8021Q)加载,您可以按照以下步骤操作:

确定在系统引导过程中使用哪个配置文件指定用于自动加载的模块。该文件的位置可以根据您的Linux分发而有所不同。

对于红帽子/Centos

该文件通常是/etc/modules-load.d/modules.conf。

对于Ubuntu/Debian

在/etc/modules-load.d/ Directory中创建一个自定义.conf文件。

使用具有管理特权的文本编辑器(例如Sudo Nano或Sudo VI)打开配置文件。

在配置文件中,添加一个行以指定要在启动时加载的VLAN模块(8021Q)。例如:

 8021q
登录后复制

添加此条目后保存文件。

应用配置:

编辑配置文件后,您可能需要应用更改。在某些系统上,这是在引导过程中自动完成的。但是,您可以使用SystemCtl命令手动应用更改:

对于红帽子/Centos

 $ sudo systemctl restart systemd-modules-load
登录后复制

对于Ubuntu/Debian

 $ sudo systemctl restart systemd-modules-load.service
登录后复制

验证模块加载:

为了确保在引导处加载VLAN模块,您可以使用LSMOD命令检查其状态,也可以验证系统日志中的任何相关消息。

 $ LSMOD | GREP 8021Q
登录后复制
登录后复制
登录后复制

如果模块在输出中列出,则意味着它在引导过程中成功加载。

通过遵循这些步骤并配置VLAN模块以持久加载,您可以确保每次启动系统时都会自动加载模块,并且您无需手动加载它。

步骤2-检查NetworkManager服务

确保在系统上安装并运行NetworkManager。您可以使用以下命令检查NetworkManager的状态:

 $ systemctl状态网络管理员
登录后复制

如果未安装或运行,您可以使用Distributs的软件包管理器(例如,在Debian/Ubuntu上的APT或Centos/Rhel上的百胜)安装并启动它。

步骤3-标识父界面

确定您将用作VLAN的基础的物理网络接口。您可以使用以下命令列出所有可用的网络接口:

 $ NMCLI设备状态
登录后复制

样本输出:

设备类型状态连接         
ENS18以太网连接的有线连接1 
LO循环背包 - 不受管理 - 
登录后复制

查找您要使用的接口,例如ENS18

步骤4-创建VLAN连接

接下来,您创建一个VLAN接口。在此示例中,假设您要在ETH0上创建具有ID 10的VLAN。

 $ sudo nmcli con添加类型vlan con-name vlan10 ifname vlan10 dev ens18 ID 10
登录后复制
  • con-name vlan10是您给此连接的名称。
  • IFNAME VLAN10是VLAN接口的名称。
  • dev ens18指定父界面。
  • ID 10是VLAN ID。

步骤5-将IP配置分配到VLAN接口

现在,将IP地址,网关和DNS分配到VLAN接口。

例如:

 $ sudo nmcli连接修改VLAN10 ipv4.addresses 192.168.10.2/24
$ sudo nmcli连接修改VLAN10 ipv4.gateway 192.168.10.1
$ sudo nmcli连接修改VLAN10 ipv4.dns 8.8.8.8
$ sudo nmcli连接修改VLAN10 IPV4
登录后复制

在上述命令中,用自己的网络设置替换网络设置。

  • 用所需的IP地址和子网替换192.168.10.2/24。
  • 用您的网关IP替换192.168.10.1。
  • 8.8.8.8是示例DNS服务器(Google的公共DNS)。

步骤6-激活连接

使用以下命令激活VLAN连接:

 $ sudo nmcli连接up vlan10
登录后复制

用VLAN连接的名称替换VLAN10。

步骤7-验证配置

您可以使用NMCLI验证配置:

 $ NMCLI连接显示VLAN10
登录后复制

此命令将显示有关VLAN连接的详细信息,包括其状态和配置的属性。

如何在Linux中配置VLAN标记[逐步指南]

步骤8-修改/删除VLAN

您可以使用NMCLI CON修改命令修改设置。删除VLAN。例如,vlan10,命令将是:

 $ sudo nmcli con delete vlan10
登录后复制

就是这样!您已经在Linux系统上使用NMCLI配置了VLAN标记。确保将配置调整为您的特定网络设置和需求,包括IP地址,网关和DNS设置。

3。使用Linux中的IP命令配置VLAN标记

步骤1-检查VLAN模块是否已加载

为了确保在Linux系统上加载VLAN模块(802.1Q),您可以按照以下步骤操作:

要检查是否已经加载了VLAN模块,您可以使用LSMOD命令,该命令列出了已加载的内核模块。打开终端并运行:

 $ LSMOD | GREP 8021Q
登录后复制
登录后复制
登录后复制

样本输出:

 8021Q 45056 0
GARP 20480 1 8021Q
MRP 20480 1 8021Q
登录后复制

如果您看到包含“ 8021Q”的输出,则意味着VLAN模块已被加载。

如果LSMOD命令未显示802.1Q模块,则可以使用ModProbe命令手动加载它。打开终端并运行:

 $ SUDO MODPROBE 8021Q
登录后复制
登录后复制

此命令将将VLAN模块加载到内核中。如果您没有看到任何错误消息,则应成功加载该模块。

为了确保在启动时自动加载VLAN模块,您可以将其添加到/etc/模块文件中,或在/etc/modules-load.d/ directory中创建配置文件。例如,要将其添加到 /etc /模块中,请运行:

 $ ECHO'8021Q'| sudo Tee -A /etc /模块
登录后复制

这将在系统启动期间自动加载的模块列表中添加“ 8021Q”。

步骤2-检查网络接口名称

在配置VLAN标记之前,您应该找到网络接口的名称。

您可以使用IP链接显示或IFConfig命令列出可用的网络接口。通常,这些接口具有ENP0SX或ENSX或ETHX之类的名称。

 $ IP链接显示
登录后复制

样本输出:

 1:lo:<loopback> mtu 65536 qdisc noqueue状态未知模式默认组默认组默认qlen 1000
    链接/循环00:00:00:00:00:00 BRD 00:00:00:00:00:00:00:00
2:<strong><mark> ENS18</mark> : mtu 1500 qdisc fq_codel state up模式默认组默认qlen 1000
    Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF:FF:FF:FF
    AltName ENP0S18</strong></loopback>
登录后复制

正如您在上面的输出中看到的那样,有一个名为ENS18的网络接口。

步骤3-创建VLAN子接口

使用IP命令为您的物理网络接口创建VLAN子界面。替换为物理接口的名称(例如,ENS18)和所需的VLAN ID。

 $ sudo ip链接添加链接ENS18名称VLAN10类型VLAN ID 10
登录后复制
 $ sudo ip链接添加链接ENS18名称VLAN20类型VLAN ID 20
登录后复制

步骤4-配置IP地址

将IP地址分配给VLAN子界面。

 $ sudo ip addr添加192.168.10.2/24 dev vlan10
登录后复制
 $ sudo ip addr添加192.168.20.2/24 dev vlan20
登录后复制

步骤5-启用VLAN接口

$ sudo ip链接集dev vlan10 up
登录后复制
 $ sudo ip链接集开发vlan20 up
登录后复制

如何在Linux中配置VLAN标记[逐步指南]

同样,您可以配置与设置所需的VLAN一样多。

步骤6-验证VLAN IP地址

使用IP命令验证VLAN的IP地址是否正确配置。

 $ ip a
1:lo:<loopback> mtu 65536 qdisc noqueue状态未知组默认qlen 1000
    链接/循环00:00:00:00:00:00 BRD 00:00:00:00:00:00:00:00
    INET 127.0.0.1/8示波器主机lo
       有效_lft永远preferred_lft永远
    inet6 :: 1/128范围主机 
       有效_lft永远preferred_lft永远
2:ens18: mtu 1500 qdisc fq_codel state up组默认qlen 1000
    Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF:FF:FF:FF
    AltName ENP0S18
    INET 192.168.1.40/24 BRD 192.168.1.255范围全球noprefixroute ens18
       有效_lft永远preferred_lft永远
    Inet6 Fe80 :: bfcf:b9d3:60de:af1b/64范围链接noprefixroute 
       有效_lft永远preferred_lft永远
3:<strong><mark> VLAN10@ENS18</mark> : mtu 1500 qdisc noqueue state up up组默认qlen 1000
    Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF:FF:FF:FF
    inet<strong><mark> 192.168.10.2/24</mark> 范围全球ENS18.10
       有效_lft永远preferred_lft永远
    Inet6 Fe80 :: 6C26:BFF:FE8E:338C/64范围链接 
       有效_lft永远preferred_lft永远
4:<strong><mark> VLAN20@ENS18</mark> : mtu 1500 qdisc noqueue state up up组默认qlen 1000
    Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF:FF:FF:FF
    inet<strong><mark> 192.168.20.2/24</mark> 范围全球ENS18.20
       有效_lft永远preferred_lft永远
    Inet6 Fe80 :: 6C26:BFF:FE8E:338C/64范围链接 
       有效_lft永远preferred_lft永远</strong></strong></strong></strong></loopback>
登录后复制

如您在上面的输出中看到的那样,我创建了两个VLANS,即VLAN10和VLAN20,IP地址分别为192.168.10.24和192.168.20.24。

您还可以使用IP Addr Show命令仅查看特定的VLAN的IP地址。例如,要显示VLAN10的IP地址,请运行:

 $ ip addr show vlan10
3:vlan10@ens18: mtu 1500 qdisc noqueue state up up组默认qlen qlen 1000
    Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF:FF:FF:FF
    inet<strong><mark> 192.168.10.2/24</mark> BRD 192.168.10.255范围全球noprefixroute ens18.10
       有效_lft永远preferred_lft永远
    Inet6 Fe80 :: 6C26:BFF:FE8E:338C/64范围链接 
       有效_lft永远preferred_lft永远</strong>
登录后复制

如何在Linux中配置VLAN标记[逐步指南]

常见问题

这是关于VLAN标签的常见问题解答(常见问题):

问:什么是VLAN标记?

答:VLAN标记是一种网络技术,可让您从逻辑上将物理网络分为多个虚拟网络或VLAN。它在以太网框架中添加了特殊标签,以识别特定框架所属的VLAN。

问:VLAN标记的目的是什么?

答:VLAN标记可实现多种目的,包括网络细分,流量隔离,广播控制,服务质量(QOS)优先级和改进的网络安全性。

问:VLAN标记如何工作​​?

答:VLAN标签在数据链路层(第2层)处的以太网帧添加了一个4字节标签,以指示VLAN ID。网络设备使用此标签来确定框架所属的VLAN。

问:我可以将IP地址类(例如,A类和C类)混合在VLAN中吗?

答:是的,您可以从同一VLAN中的不同类中分配IP地址。 VLAN不取决于IP地址类,您可以使用任何IP地址范围,并带有适当的子网掩码。

问:默认情况下,不同VLAN中的设备是否相互通信?

答:不,默认情况下,不同VLAN中的设备不会相互通信。 VLAN是彼此隔离的,通信需要路由器或第3层设备才能在它们之间路由流量。

问:如何在Linux中配置VLAN标记?

答:要在Linux中配置VLAN标记,您可以使用IP命令或NetPlan等配置文件之类的工具。您将在物理接口,分配VLAN ID和根据需要配置IP地址上创建VLAN子接口。

问:我可以在托管开关上配置VLAN标记吗?

答:是的,大多数托管开关支持VLAN标记。您可以配置VLAN,将端口分配给VLAN,并在托管开关上设置VLAN中继,以促进VLAN通信。

问:单个接口上的VLAN标记与多个IP地址之间有什么区别?

答:VLAN标记创建具有不同VLAN ID的单独的虚拟网络,而单个接口上的多个IP地址涉及在同一网络或子网中分配多个IP地址。 VLAN标记提供了更好的流量隔离和安全性。

问:如何检查VLAN模块是否已加载在Linux系统上?

答:您可以使用LSMOD |检查VLAN模块是否加载了VLAN模块。 GREP 8021Q命令。如果在输出中看到“ 8021q”,则加载模块;否则,您可能需要手动加载它。

问:如何确保在启动时自动加载VLAN模块?

答:要确保在引导时自动加载VLAN模块,请将其添加到适当的配置文件中以进行Linux分发。例如,在Ubuntu中,您可以将其添加到/ETC/Modules-load.d/。

结论

在本综合指南中,我们讨论了在Linux操作系统中配置VLAN标记的三种方法。

在Linux网络中,VLAN标记是一种有用的技术,可让您在单个物理网络中创建孤立的虚拟网络。这种隔离可提高安全性,简化网络管理并提高整体网络效率。

无论您是管理家庭网络还是复杂的企业环境,了解和实现Linux中的VLAN标记都可以自​​定义网络以满足您的特定需求,从而增强功能和安全性。

以上是如何在Linux中配置VLAN标记[逐步指南]的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板