我在使用 netkit 实验室时遇到了问题。我有一台交换机和 3 台 PC(PC1、PC2 和 PC3)。PC1 和 PC3 必须在 VLAN 100(100.1.0.x/24)上,PC2 和 PC3 必须在 VLAN 200(100.1.1.x/24)上。而且 PC3 上只能有一个接口,因此我在 eth0 上创建了 2 个子接口,并为每个子接口分配了不同的 IP。这是我的 pc3.startup:
ifconfig eth0 up
vconfig add eth0 100
ifconfig eth0.100 up
vconfig add eth0 200
ifconfig eth0.200 up
ifconfig eth0 hw ether 00:00:00:00:50:00
ifconfig eth0.200 100.1.1.5 up
ifconfig eth0.100 100.1.0.5 up
这是我的 Switcher 启动情况:
ifconfig eth0 up
ifconfig eth1 up
ifconfig eth2 up
vconfig add eth0 100
vconfig add eth0 200
ifconfig eth0.100 up
ifconfig eth0.200 up
brctl addbr vlan100
brctl addbr vlan200
brctl addif vlan100 eth2
brctl addif vlan100 eth0.100
brctl addif vlan200 eth1
brctl addif vlan200 eth0.200
ifconfig vlan100 100.1.0.0 netmask 255.255.255.0 up
ifconfig vlan200 100.1.1.0 netmask 255.255.255.0 up
eth0 与 pc3 具有相同的冲突域。
问题是,当我想从 pc3 ping pc1 时,没有问题,但当我想 ping pc2 时,却无法访问。我在交换机上进行了 tcpdump 捕获,发现只能在 eth0.200 上 ping。现在,如果我更改以下顺序:
ifconfig eth0.200 100.1.1.5 up
ifconfig eth0.100 100.1.0.5 up
在 pc3.startup 中:
ifconfig eth0.100 100.1.0.5 up
ifconfig eth0.200 100.1.1.5 up
问题发生了变化,我可以 ping 通 pc3,但不能 ping 通 pc1,并且在交换机上请求仅来自 eth0.100。
谢谢你,抱歉我的英语真的很差。
答案1
好吧,我解决了。:) 为了防止有人遇到这个问题,我所做的是在 PC3 启动时添加网络掩码,如下所示:
ifconfig eth0.200 100.1.1.5 netmask 255.255.255.0 up
ifconfig eth0.100 100.1.0.5 netmask 255.255.255.0 up
问候!