Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jul 2016 13:06:52 -0600
From:      John Nielsen <lists@jnielsen.net>
To:        Randy Westlund <rwestlun@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: bhyve with lagg failover doesn't work on wifi
Message-ID:  <14F7DC55-3072-452F-AA70-1EA8701327E7@jnielsen.net>
In-Reply-To: <20160729045652.GJ26793@gmail.com>
References:  <20160729045652.GJ26793@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Generally speaking, you can't bridge the station side of a wireless =
link. The access point will only accept frames with the station's MAC =
address. So what you are seeing is expected, unfortunately.

Your best bet is probably to do NAT. Take lagg0 out of the bridge and =
use it as your "public" interface. Assign a local IP to the bridge. Run =
a DHCP server on your host (or in another VM on the bridge if you like) =
or just use static internal IPs on your VMs. Enable IP forwarding =
(gateway_enable=3Dyes in rc.conf). Configure your firewall to NAT your =
private range out lagg0.

You can do other things with tunneling, etc. but you'll need a remote =
endpoint for the tunnel. (If your access point runs FreeBSD you can use =
either vxlan or gif+EtherIP and just use the wireless link to carry the =
tunnel traffic, but I suspect that you want to roam between arbitrary =
access points.)

> On Jul 28, 2016, at 10:56 PM, Randy Westlund <rwestlun@gmail.com> =
wrote:
>=20
> I'm using bhyve on 11.0-BETA2, bridging tap0 to lagg0, a failover
> between wifi and ethernet.  The bhyve VM's networking only works I'm
> using ethernet.
>=20
>> # Lagg config.
>> ifconfig_em0=3D"up"
>> create_args_wlan0=3D"wlanaddr 3c:97:0e:46:70:ca"
>> wlans_iwn0=3D"wlan0"
>> ifconfig_wlan0=3D"WPA"
>> cloned_interfaces=3D"lagg0 bridge0 tap0"
>> ifconfig_lagg0=3D"laggproto failover laggport em0 laggport wlan0 =
DHCP"
>> # tap0 and bridge0 are for bhyve.
>> ifconfig_bridge0=3D"addm lagg0 addm tap0"
>=20
> With the ethernet cable connected, the VM's networking works.  But =
when
> I remove the ethernet cable and lagg0 fails over to wifi, the VM can =
no
> longer use the network.
>=20
> I can use tcpdump to see the DHCP packets going along this path:
>    vtnet0 -> tap0 -> bridge0 -> lagg0 -> wlan0
>=20
> The DHCP requests appear on wlan0.  But the router never sees them.
>=20
> Here's the ifconfig output when wlan0 is active:
>=20
>> em0: flags=3D8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> =
metric 0 mtu 1500
>>        =
options=3D4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL=
_MAGIC,VLAN_HWTSO>
>>        ether 3c:97:0e:46:70:ca
>>        nd6 options=3D29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>>        media: Ethernet autoselect
>>        status: no carrier
>> lo0: flags=3D8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
>>        options=3D600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
>>        inet6 ::1 prefixlen 128
>>        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
>>        inet 127.0.0.1 netmask 0xff000000
>>        nd6 options=3D21<PERFORMNUD,AUTO_LINKLOCAL>
>>        groups: lo
>> wlan0: flags=3D8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> =
metric 0 mtu 1500
>>        ether 3c:97:0e:46:70:ca
>>        nd6 options=3D29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>>        media: IEEE 802.11 Wireless Ethernet MCS mode 11ng
>>        status: associated
>>        ssid neural_network channel 1 (2412 MHz 11g ht/40+) bssid =
c4:04:15:90:f5:fd
>>        regdomain FCC country US authmode WPA2/802.11i privacy ON
>>        deftxkey UNDEF AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 30 =
bmiss 10
>>        scanvalid 60 protmode CTS ampdulimit 64k ampdudensity 8
>>        -amsdutx amsdurx shortgi -stbc wme roaming MANUAL
>>        groups: wlan
>> lagg0: flags=3D8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> =
metric 0 mtu 1500
>>        ether 3c:97:0e:46:70:ca
>>        inet 192.168.1.17 netmask 0xffffff00 broadcast 192.168.1.255
>>        nd6 options=3D29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>>        media: Ethernet autoselect
>>        status: active
>>        groups: lagg
>>        laggproto failover lagghash l2,l3,l4
>>        laggport: em0 flags=3D1<MASTER>
>>        laggport: wlan0 flags=3D4<ACTIVE>
>> bridge0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric =
0 mtu 1500
>>        ether 02:4a:6b:6e:fc:00
>>        nd6 options=3D9<PERFORMNUD,IFDISABLED>
>>        groups: bridge
>>        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
>>        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
>>        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
>>        member: tap0 flags=3D143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
>>                ifmaxaddr 0 port 6 priority 128 path cost 2000000
>>        member: lagg0 flags=3D143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
>>                ifmaxaddr 0 port 4 priority 128 path cost 55
>> tap0: flags=3D8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> =
metric 0 mtu 1500
>>        options=3D80000<LINKSTATE>
>>        ether 00:bd:ea:f0:f6:00
>>        nd6 options=3D29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>>        media: Ethernet autoselect
>>        status: active
>>        groups: tap
>>        Opened by PID 1322
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14F7DC55-3072-452F-AA70-1EA8701327E7>