VLAN trunking and fragmentation
Giulio Ferro
auryn at zirakzigil.org
Wed Mar 12 05:16:29 PDT 2008
I need to configure ports to work with multiple vlan on my redundant
freebsd router/firewall.
In order to setup my test environment I have 2 freebsd boxes 7.0 STABLE
amd64 both with
gigabit realtek (re0). According to what the man says, these cards
should support vlan in hardware.
These PCs are connected to a dell 48 port managed layer-3 switch on port
1 and 2.
On the dell CLI I configure the vlans:
---------------------------
enable
configure
vlan database
vlan 10
exit
interface vlan 10
name testvlan
exit
interface ethernet 1/g1
switchport mode trunk
switchport trunk allowed vlan add 10
exit
interface ethernet 1/g2
switchport mode trunk
switchport trunk allowed vlan add 10
exit
---------------------------
On both PC I have configured a vlan interface like this:
from /etc/rc.conf
---------------------------
ifconfig_re0="inet 192.168.60.1 netmask 255.255.255.0"
cloned_interfaces="vlan0"
ifconfig_vlan0="inet 192.168.100.1 netmask 255.255.255.0 vlan 10 vlandev
re0"
---------------------------
same on the other PC, but with physical address = 192.168.60.2 and
virtual address 192.168.100.2
When I now try to ping from one machine to the other there is no problem:
---------------------------
# ping -c 1 192.168.100.2
PING 192.168.100.2 (192.168.100.2): 56 data bytes
64 bytes from 192.168.100.2: icmp_seq=0 ttl=64 time=0.108 ms
--- 192.168.100.2 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.108/0.108/0.108/0.000 ms
---------------------------
The problems start when I send a packet which is bigger than 1472 bytes:
---------------------------
ping -c 1 -s 1473 192.168.100.2
---------------------------
The packet is fragmented as it should, but there seems to be some
problem with the checksum computation.
---------------------------
# on PC 192.168.100.1
tcpdump -i re0 -n -vvv not stp
13:33:37.789615 IP (tos 0x0, ttl 64, id 809, offset 0, flags [+], proto
ICMP (1), length 1500, bad cksum 0 (->8a4)!) 192.168.100.1 >
192.168.100.2: ICMP echo request, id 31748, seq 0, length 1480
13:33:37.789622 IP (tos 0x0, ttl 64, id 809, offset 1480, flags [none],
proto ICMP (1), length 21, bad cksum 0 (->2db2)!) 192.168.100.1 >
192.168.100.2: icmp
#on PC 192.168.100.2
tcpdump -i re0 -n -vvv not stp
13:32:49.038581 IP (tos 0x0, ttl 64, id 809, offset 1480, flags [none],
proto ICMP (1), length 21) 192.168.100.1 > 192.168.100.2: icmp
---------------------------
I'm told that this same configuration works under linux. It seems to me
this could be a bug of the vlan stack under freebsd...
Thanks in advance for any workaround / quick patch to solve this issue.
More information about the freebsd-net
mailing list