在此详细的教程中,我们将了解VLAN标签是什么,其优点和用例以及如何在Linux操作系统中配置VLAN标记。
在Linux中配置VLAN标记涉及创建虚拟LAN,分配VLAN ID并根据需要配置IP地址。我们将在即将到来的部分中看到如何以三种不同的方式做到这一点。但是在此之前,让我们了解什么是VLAN标记,其优势和模式。
目录
虚拟LAN(VLAN)标记是一种网络技术,可让您从逻辑上将物理网络分为多个虚拟网络或VLAN。
VLAN标签在数据链路层(第2层)的以太网帧中添加了一个特殊的标签,以识别特定框架所属的VLAN。此标签使您能够隔离网络流量并提高网络安全性,效率和可管理性。
用外行的话说这一点,请想象您有一个有很多房间的大房子,您想将房子分为不同的部分出于不同的目的。
例如,您可能有一个客厅供每个人闲逛,一个厨房烹饪,睡觉的卧室和洗澡的浴室。
以类似的方式,VLAN标记就像将大型计算机网络分为较小,更易于管理的部分。这就像在您的房屋内创建虚拟房间一样。
每个VLAN都像一个单独的房间,同一VLAN中的设备可以轻松地进行通信,但是不同VLAN的设备无法直接通信。
VLAN标记是一种强大的网络技术,可以帮助提高网络安全性,性能和灵活性。从小型企业到大型企业,这是一项广泛使用的技术。
你为什么要这样做?有几个原因:
以下是现实网络中如何使用VLAN的一些示例:
VLAN标记与将多个IP地址分配给单个网络接口并不完全相同。
VLAN标记是将单个网络分为多个虚拟网络的一种方式,每个网络都有自己的广播域。这是通过在每个以太网框架中添加VLAN标签来完成的,该标签标识了框架所属的VLAN。 VLAN标记是2层技术,这意味着它与以太网协议的水平相同。
另一方面,将多个IP地址分配给单个网络接口是第3层技术。这是通过使用多个IP地址配置网络接口来完成的,每个IP地址属于其他子网。这允许接口与多个网络上的设备通信。
这两种技术通常被一起使用以创建安全且灵活的网络环境。例如,公司可能会使用VLAN将其网络分为不同的部门,然后将多个IP地址分配给每个网络接口,以允许设备与多个部门进行通信。
这是一个表,总结了VLAN标记和将多个IP地址分配给单个网络接口之间的关键差异:
完成这些步骤后,应加载VLAN模块,并用于在Linux系统上配置VLAN。您可以继续创建VLAN子界面并根据需要配置VLAN标记。
NetPlan配置文件通常位于/etc/netplan/Directory中,并以.YAML扩展名结尾。
您可能已经有一个配置文件。如果没有,您可以创建一个。使用文本编辑器(例如Nano或vim)编辑配置文件:
$ sudo nano /etc/netplan/01-netcfg.yaml
用自己的配置文件替换01-netcfg.yaml。
在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]
在上面的配置文件中,替换与您自己的配置匹配的网络设置。
您还可以定义多个VLAN,如以下配置所示。只需确保您对每个VLAN都使用了一个唯一的名称和IP地址。
重要的:
NetPlan YAML配置文件中的适当行凹痕对于可读性和正确性至关重要。 YAML使用空间来表示数据结构,因此一致和清晰的凹痕至关重要。
将更改保存到NetPlan配置文件中,然后退出文本编辑器。然后,使用NetPlan命令应用配置:
$ sudo Netplan申请
此命令将应用新的网络配置,包括VLAN设置。
您可以验证是否已创建了VLAN界面,并使用IP命令正常运行:
$ ip addr show vlan10 $ ip链接显示VLAN10
将“ VLAN10”替换为VLAN接口名称。这些命令应显示有关VLAN接口及其IP配置的信息。
就是这样!您已经使用NetPlan配置了VLAN标记。确保根据需要将配置调整为特定的网络设置,包括VLAN ID,IP地址和物理接口名称。
要删除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)不再列出。
要在Linux系统上使用NMCLI(NetworkManager命令行接口)配置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模块以持久加载,您可以确保每次启动系统时都会自动加载模块,并且您无需手动加载它。
确保在系统上安装并运行NetworkManager。您可以使用以下命令检查NetworkManager的状态:
$ systemctl状态网络管理员
如果未安装或运行,您可以使用Distributs的软件包管理器(例如,在Debian/Ubuntu上的APT或Centos/Rhel上的百胜)安装并启动它。
确定您将用作VLAN的基础的物理网络接口。您可以使用以下命令列出所有可用的网络接口:
$ NMCLI设备状态
样本输出:
设备类型状态连接 ENS18以太网连接的有线连接1 LO循环背包 - 不受管理 -
查找您要使用的接口,例如ENS18 。
接下来,您创建一个VLAN接口。在此示例中,假设您要在ETH0上创建具有ID 10的VLAN。
$ sudo nmcli con添加类型vlan con-name vlan10 ifname vlan10 dev ens18 ID 10
现在,将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
在上述命令中,用自己的网络设置替换网络设置。
使用以下命令激活VLAN连接:
$ sudo nmcli连接up vlan10
用VLAN连接的名称替换VLAN10。
您可以使用NMCLI验证配置:
$ NMCLI连接显示VLAN10
此命令将显示有关VLAN连接的详细信息,包括其状态和配置的属性。
您可以使用NMCLI CON修改命令修改设置。删除VLAN。例如,vlan10,命令将是:
$ sudo nmcli con delete vlan10
就是这样!您已经在Linux系统上使用NMCLI配置了VLAN标记。确保将配置调整为您的特定网络设置和需求,包括IP地址,网关和DNS设置。
为了确保在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”。
在配置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的网络接口。
使用IP命令为您的物理网络接口创建VLAN子界面。替换为物理接口的名称(例如,ENS18)和所需的VLAN ID。
$ sudo ip链接添加链接ENS18名称VLAN10类型VLAN ID 10
$ sudo ip链接添加链接ENS18名称VLAN20类型VLAN ID 20
将IP地址分配给VLAN子界面。
$ sudo ip addr添加192.168.10.2/24 dev vlan10
$ sudo ip addr添加192.168.20.2/24 dev vlan20
$ sudo ip链接集dev vlan10 up
$ sudo ip链接集开发vlan20 up
同样,您可以配置与设置所需的VLAN一样多。
使用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>
这是关于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中文网其他相关文章!