伪适配器与 VLAN

伪适配器与 VLAN

我有一个Debian基础Linux系统,用于排除subnets同一SOHO交换机上有多个本地网络的故障。如果我配置pseudo adapters,我可以与任何子网上的任何机器通信:

# ifconfig eth0:1 192.168.1.222
# ping 192.168.1.1 -c1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.548 ms
# ifconfig eth0:2 192.168.2.222
# ping 192.168.2.1 -c1
PING 192.168.2.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=255 time=0.541 ms

ETC。

但是,当我从 拔下电缆时eth0,所有伪适配器都消失了。我注意到这种情况不会发生在 VLAN 上,但是,对于这些,我没有连接:

# vconfig add eth0 2
Added VLAN with VID == 2 to IF -:eth0:-
# ifconfig eth0.2 192.168.2.222
# ping 192.168.2.1 -c1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
From 192.168.2.222 icmp_seq=1 Destination Host Unreachable

我可以让这些 VLAN 工作吗,或者至少让伪适配器永久存在吗?

答案1

向物理网络接口添加多个静态 IP 地址的“现代”方式是

ip address add dev eth0 10.222.222.222/24
ip address add dev eth0 10.222.222.223/24
ip address add dev eth0 172.17.100.1/24
# Repeat as necessary

然后,您可以使用以下方式列出所有网络接口和地址

ip address show

循环将使添加位于数值相邻子网中的 IP 地址变得更容易:

# Add 10.200.1.1/24, 10.201.1.1/24, and 10.202.1.1/24 to eth0
for num in 200 201 202; do ip address add dev eth0 10.${num}.1.1/24; done

请注意,在此示例中,物理接口称为eth0。我相信您知道其余部分的含义。当我拔下网线时,我的 Debian 系统没有从接口中删除地址。

要在 Linux 中使用 VLAN,请确保加载8021q模块:modprobe 8021q。在大多数发行版中,您可以将模块名称添加到/etc/modules(或其变体)以在启动时加载它。

ip命令还可用于添加/删除 VLAN,如下所示:

# Create VLAN 2 on eth0
ip link add link eth0 name eth0.2 type vlan id 2

# Show information about all available interfaces
ip address show

# Assign 10.222.222.222/24 to eth0.2
ip address add dev eth0.2 10.222.222.222/24

# New VLANs are DOWN by default, so bring VLAN 2 up
ip link set dev eth0.2 up

# Bring the VLAN down prior to removal
ip link set dev eth0.2 down

# Remove the VLAN
ip link del eth0.2

最后,如果您需要设置稍微复杂的网络配置(例如逻辑接口、VLAN 或桥接),请考虑禁用网络管理器。当网络管理器检测到与网络相关的事件时,它通常会干扰并撤消您的配置。

相关内容