On 03/29/2013 01:57 PM, Barney Cordoba wrote:
--- On Fri, 3/29/13, Pablo Ribalta Lorenzo <r...@semihalf.com> wrote:
From: Pablo Ribalta Lorenzo <r...@semihalf.com>
Subject: vlan with modified MAC fails to communicate
To: freebsd-net@freebsd.org
Date: Friday, March 29, 2013, 7:53 AM
Hi there!
Lately I've been investigating an issue that I would like to
share, as I feel I may have to attack it from a different
end.
I have an ethernet interface from where I create a vlan.
Once I set up the ip address in the vlan I can ping
correctly on both
sides. The issue arrives when I try to change the MAC
address of the vlan, as from then on it fails to communicate
unless:
- I restore vlan's MAC address to its previous value
- I enable promisc mode.
It's also worth to mention that my current setup is FreeBSD
8.3 and the NIC driver I'm using is not fully mature.
I was wondering if this behavior is due to some limitations
in the NCI driver I'm using or if in fact it's the correct
way to
proceed, as it was possible to reproduce this same issue in
FreeBSD 8.3 and FreeBSD CURRENT versions, even using more
mature
NIC drivers as 'em' and 're'.
Could somebody please shed some light in this? Thank you.
Without looking at the code, it's likely that you should be changing
the MAC address BEFORE you set up the VLAN. The mac is probably being
mapped into some table that being used to track the vlans.
BC
Thanks for your answer Barney,
I'm going to extend a little bit the explanation of the issue as it may be too
brief.
First of all, ifconfig shows me this (mge being the NIC):
mge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
ether 00:01:01:58:31:30
inet 192.168.126.9 netmask 0xffffff00 broadcast 192.168.126.255
media: Ethernet autoselect (1000baseT <full-duplex,master>)
status: active
vlan1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:01:01:58:31:30
media: Ethernet autoselect (1000baseT <full-duplex,master>)
status: active
vlan: 100 parent interface: mge1
Once I set up the ip for vlan1, I'm able to ping outside:
#ifconfig vlan1 inet 172.18.0.254
#ping 172.18.0.1
PING 172.18.0.1 (172.18.0.1): 56 data bytes
64 bytes from 172.18.0.1: icmp_seq=0 ttl=64 time=2.511 ms
^C
--- 172.18.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
I change MAC address for vlan1 :
#ifconfig vlan1 ether 00:0d:01:58:51:30
mge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
ether 00:01:01:58:31:30
inet 192.168.126.9 netmask 0xffffff00 broadcast 192.168.126.255
media: Ethernet autoselect (1000baseT <full-duplex,master>)
status: active
vlan1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:0d:01:58:51:30
inet 172.18.0.254 netmask 0xffff0000 broadcast 172.18.255.255
media: Ethernet autoselect (1000baseT <full-duplex,master>)
status: active
vlan: 100 parent interface: mge1
And here is where the problems start, as I'm not able to contact with vlan1
from the outside unless:
- Restore the MAC address to be 00:01:01:58:31:30 again
- Set up promisc mode
As I said, since I was able to see this issue in other platforms and with more
mature drivers than my 'mge',
I don't know if this is the expected behavior, or my NIC driver is missing
something to be able to deal
with this situation.
However thanks for your hint, I feel I need a little bit of perspective in this
issue.
--
Pozdrawiam,
Pablo Ribalta Lorenzo
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"