I have 3 Linux boxes networked with Ethernet, all running Linux 2.4.23
and 2.4.24. They have their eth0 network interfaces configured with
IP addresses 10.0.0.1, 10.0.0.3 and 10.0.0.5, routing is correct, and
communication works between all of them.
I have now tried to configure 802.1q VLAN interfaces on each of these
3 machines, using VLAN ID 200, so I did
modprobe 8021q
vconfig add eth0 200
ip addr add dev eth0.200 192.168.0.1/24 brd 192.168.0.255
ip link set eth0.200 up
on the first machine, and with 192.168.0.3 and 192.168.0.5 on the
other two. ip addr ls and ip route ls look good as expected. I can
ping between 192.168.0.1 and 192.168.0.3, wich have an RTL8139 and
Intel EEPRO 100 NIC, respectively. The third machine using 10.0.0.5
on eth0 and 192.168.0.5 on eth0.200 uses an Adaptec DuraLink Starfire
NIC and has problems only on the VLAN interface eth0.200.
When I ping from 192.168.0.5 to 192.168.0.1, a tcpdump on the third
machine looks like this:
22:13:55.040604 0:0:d1:9d:7b:a8 ff:ff:ff:ff:ff:ff 8100 46: 802.1Q vlan#200 P0 arp who-has 192.168.0.1 tell 192.168.0.5
22:13:56.039267 0:0:d1:9d:7b:a8 ff:ff:ff:ff:ff:ff 8100 46: 802.1Q vlan#200 P0 arp who-has 192.168.0.1 tell 192.168.0.5
22:13:57.039277 0:0:d1:9d:7b:a8 ff:ff:ff:ff:ff:ff 8100 46: 802.1Q vlan#200 P0 arp who-has 192.168.0.1 tell 192.168.0.5
...
while tcpdump on the first machine using 192.168.0.1 shows
22:13:55.045205 00:00:d1:9d:7b:a8 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q, length 60: vlan 200, p 0, ethertype ARP, arp who-has 192.168.0.1 tell 192.168.0.5
22:13:55.045306 00:e0:7d:78:e4:21 > 00:00:d1:9d:7b:a8, ethertype 802.1Q, length 46: vlan 200, p 0, ethertype ARP, arp reply 192.168.0.1 is-at 00:e0:7d:78:e4:21
22:13:56.043827 00:00:d1:9d:7b:a8 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q, length 60: vlan 200, p 0, ethertype ARP, arp who-has 192.168.0.1 tell 192.168.0.5
22:13:56.043876 00:e0:7d:78:e4:21 > 00:00:d1:9d:7b:a8, ethertype 802.1Q, length 46: vlan 200, p 0, ethertype ARP, arp reply 192.168.0.1 is-at 00:e0:7d:78:e4:21
22:13:57.043833 00:00:d1:9d:7b:a8 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q, length 60: vlan 200, p 0, ethertype ARP, arp who-has 192.168.0.1 tell 192.168.0.5
22:13:57.043893 00:e0:7d:78:e4:21 > 00:00:d1:9d:7b:a8, ethertype 802.1Q, length 46: vlan 200, p 0, ethertype ARP, arp reply 192.168.0.1 is-at 00:e0:7d:78:e4:21
...
that is 192.168.0.5 correctly sends the ARP requests on VLAN 200.
192.168.0.1 can receive the requests and correctly replies on VLAN
200, but for some reason, these replies aren't seen by 192.168.0.5,
and the ping command on 192.168.0.5 prints
ping -c4 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.5 icmp_seq=1 Destination Host Unreachable
...
Since the identical config works between the other two machines I
suspect the network driver for the Adaptec DuraLink has a bug in VLAN
support. Has anyone else seen this problem or has it working with
this NIC?
urs