[OpenWrt-Devel] hostapd and Linux bridges
Paul Oranje
por at oranjevos.nl
Thu Jan 23 06:08:28 EST 2020
Op 22 jan. 2020, om 10:43 heeft Daniel Golle <daniel at makrotopia.org> het volgende geschreven:
>
> On Wed, Jan 22, 2020 at 06:34:06AM +0200, Daniel Golle wrote:
>> On Tue, Jan 21, 2020 at 11:34:22PM +0100, Mathias Kresin wrote:
>>> 21/01/2020 20:22, Daniel Golle:
>>>> On Tue, Jan 21, 2020 at 07:40:42PM +0100, Bjørn Mork wrote:
>>>>> Daniel Golle <daniel at makrotopia.org> writes:
>>>>>
>>>>>> On proprietary APs it looks like port isolation is enabled or disabled
>>>>>> globally in Linux' bridge code using sysctl or other methods, an
>>>>>> approach which is unlikely to get accepted into the Kernel, also given
>>>>>> that the netlink interface already exists and allows doing the same
>>>>>> thing in a more granular fashion.
>>>>>
>>>>> Huh?
>>>>>
>>>>> Won't this sysfs attribute set the same flag IFLA_BRPORT_ISOLATED sets?
>>>>>
>>>>>
>>>>> root at wrt1900ac-1:~# grep . /sys/class/net/br-lan/brif/*/isolated
>>>>> /sys/class/net/br-lan/brif/eth0.7/isolated:0
>>>>> /sys/class/net/br-lan/brif/wlan0/isolated:0
>>>>> /sys/class/net/br-lan/brif/wlan1/isolated:0
>>>>
>>>> Looks like that's the thing I may have missed ;)
>>>> Yet we do need a way to set this to '1' once hostapd adds the AP
>>>> interface to the bridge. I'm not sure whether setting this via
>>>> sysfs is actually more simple than using netlink given that some
>>>> general purpose netlink code is already part of hostap.
>>>> In the end, either approach would be fine with me and I would
>>>> implement whatever is more likely to be merged into hostap.git.
>>>
>>> netifd is able to set bridge client isolation via sysfs since commit
>>> c06f84238952211b35c2940a82fcce3fcc3221c1.
>>>
>>> /etc/config/wireless as expected:
>>>
>>> config wifi-iface
>>> option device 'radio1'
>>> option ifname 'wlan_guest_leg'
>>> option network 'guest'
>>> option isolate '1'
>>>
>>> config wifi-iface
>>> option device 'radio0'
>>> option ifname 'wlan_guest'
>>> option network 'guest'
>>> option isolate '1
>>>
>>> The isolation option in /etc/config/network does the trick:
>>>
>>> config interface 'guest'
>>> option type 'bridge'
>>> option proto 'static'
>>>
>>> config device 'wlan_guest'
>>> option isolate '1'
>>>
>>> config device 'wlan_guest_leg'
>>> option isolate '1'
>>>
>>>
>>> Of course, bridge client isolation isn't limited to wireless interface.
>
> What about wlan0.sta1 and such created by AP-WDS? Is there a way to catch
> all or set a bridge-wide default?
You mean enabling isolation at the bridge that all sub interfaces are bound to ?
So something like to isolate all bound interfaces:
config interface 'guest'
option type 'bridge'
option isolate '1'
option ifname 'eth1.127'
option proto 'static'
option ipaddr '192.168.127.1'
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list