如何在橋接內的實體網路介面之間重新導向

如何在橋接內的實體網路介面之間重新導向

我有一台有線乙太網路連線(連接到路由器)和無線網路卡的家用電腦。 wifi 設定為存取點 (hostapd) 且網路介面被橋接:

auto enp0s10
iface enp0s10 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports wlan0 enp0s10
netmask 255.255.255.0

有一些iptables規則會影響通過的選定流量無線區域網路0僅接口,使用--physdev-in選擇器。此設定按預期工作。
我現在想做的是建立一個機制來強制裝置上選定的進程僅透過發送流量 無線區域網路0
跟著線索這裡我試過:

> sudo ip netns add myNamespace
> sudo ip link set wlan0 netns myNamespace
RTNETLINK answers: Invalid argument 

據我所知,這意味著:

  • 我無法指定實體接口,因為它是橋接的
  • 我無法使用netns命名空間來實現我的目標

編輯:按照以下建議重力結合上面提到的線索,我嘗試了:

> sudo ip netns show
> sudo ip netns add myNamespace
> sudo ip netns show
myNamespace
> sudo iw phy phy0 set name myNamespace
> sudo ip netns exec myNamespace ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

在這個階段,我是否應該看到物理層0或者無線區域網路0列出?該iw phy phy0 set name myNamespace命令不返回任何錯誤訊息,但兩個介面似乎都未添加到我的命名空間。可以預見的是,嘗試調出介面會失敗:

> sudo ip netns exec myNamespace ifconfig wlan0 192.168.0.10/24 up
SIOCSIFADDR: No such device
wlan0: ERROR while getting interface flags: No such device
wlan0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
> sudo ip netns exec myNamespace ifconfig phy0 192.168.0.10/24 up  
SIOCSIFADDR: No such device
phy0: ERROR while getting interface flags: No such device
phy0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device<br/>

再次,我懷疑橋接設置會讓這件事變得複雜。

B 計畫是專門為此任務建立一個使用者/群組(我們稱之為無線網路流量) 然後用於iptables將此使用者的流量重定向到無線區域網路0如果/什麼時候enp0s10
這就是我陷入困境的地方。該規則看起來像:

iptables -t nat -A PREROUTING -m owner --gid-owner wlantraffic -m physdev ! --physdev-in wlan0 -j ???

即「來自群組的流量無線網路流量沒有通過進入橋無線區域網路0應改道至無線區域網路0
數據包將是沼澤標準的網路流量。
我的問題是:

  • 這是一個規則PREROUTING還是一個FORWARD規則?
  • 如果我要DROP在網橋的上下文中匹配資料包,那麼資料包是否會「落入」下一個介面?
  • 我如何指定無線區域網路0界面作為目標?

答案1

我無法使用 ntns 命名空間來實現我的目標

這座橋可能是你的問題;然而:

當涉及到網路命名空間時,WLAN 介面有點奇怪。每個適配器都有兩層-phy(代表實體硬體)和netdev(代表網路介面)。

(原因是同一實體層上可能有多個網路設備,例如用戶端+AP,或雙頻 Wi-Fi 適配器可以讓 wlan0 和 wlan1 在不同網路上同時運作。如果好奇,請查看iw phy支援哪些組合適用於您的適配器。

Linux 目前有一個限制:全部的phy 設備必須移至命名空間中;各個網路設備無法移動。為此,請使用iw

iw phy phy0 set netns myNamespace

這是 PREROUTING 還是 FORWARD 規則?

一般來說,這完全取決於-j使用什麼操作(參數)。有些僅在 FORWARD 中有意義,有些僅在 PREROUTING 中有意義;有些只能在 中工作-t nat,有些只能在 中工作-t mangle

如果我要在網橋的上下文中丟棄匹配的資料包,那麼資料包是否會「落入」下一個介面?

不會。如果封包在 IP 層被丟棄,那麼封包就消失了。

相關內容