私が取り組んでいる製品の新しい要件の1つは、イーサネットからワイヤレスへのブリッジングをサポートすることです。 eth0とath0の2つのネットワークインターフェイスがあるとします(Madwifiドライバーを使用しています)。 eth0に接続されたコンピューターがワイヤレスネットワークにアクセスできるようにするには、どのようなオプションが必要ですか?
私が最初に試したのはbrctl
ユーティリティでした。これはまさに私が望んでいることのようでした。そして、有線ネットワークではそうです。しかし、ワイヤレスネットワークでは、それは完全には機能しませんでした。一部のWiresharkingは、ブリッジされたパケットの送信元MACが(正しく)ブリッジの背後にあるコンピューターに設定されていることを明らかにしました。ただし、APは、そのMACアソシエートを見たことがないため、パケットをドロップします。 WDSパケットを有効にした場合(iwpriv ath0 wds 1
)、パケットは送信機と受信機のアドレスで送信されますが、APによって許可されていないようです(非常に古く、変更できません)。すべてのAPがWDSを受け入れる必要はありませんよね?
したがって、何らかのイーサネットNATなどを行う必要があるのではないかと思います。しかし、それがどのように機能するのかわかりません-1つのMACアドレスをn台のコンピューター間で共有するにはどうすればよいですか? ebtables
のレベルが低すぎるようです。出入りの途中でMACアドレスを書き換えるだけで、ブリッジコンピュータがネットワークを使用できなくなります。さらに、着信パケットの最終的な宛先をどのようにして知ることができますか?少なくとも、IP層とTCP/UDP層からの詳細が必要です。
そうです、ブリッジングはWi-Fiでは機能しません。最も簡単な解決策は、ルーティングを使用することです。ブリッジのように感じる「透過ルーター」をセットアップできますが、実際にはisパケットをルーティングします。このために、一方のネットワークをもう一方のサブセットにします。
たとえば、有線LANが192.168.183.0/24
の場合、無線LANに192.168.183.192/26
を使用させることができます。
'proxyarp'をオンにする必要がある場合もあります。起動スクリプトにecho 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
を追加するだけです。
このような構成は、2つのネットワークインターフェイスをブリッジする場合に完全に機能します
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.10
network 192.160.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 212.27.39.2
dns-search home
auto eth0
iface wlan0 inet static
address 192.168.0.9
network 192.160.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 212.27.39.2
dns-search home
wireless_keymode open
wireless_mode managed
wireless_nick srvolivier
wireless-essid SMC2870
wireless-key wepkey
auto wlan0
iface br0 inet static
address 192.168.0.8
network 192.160.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 212.27.39.2
dns-search home
bridge_ports eth0 wlan0
auto br0
これが私たちが取り組んでいることです(それが役立つことを願っています):
ネットワーク1 ---ワイヤレス(WDSブリッジ))))(((ワイヤレス(WDSブリッジ)---ネットワーク2
Network1とNetwork2は共通のIPアドレス空間(192.168.1.0/24)を利用しています。これは魅力のように機能します。
「通常の」デスクトップディストリビューションではわかりませんが、netgearルーターのdd-wrtでは、ワイヤレス(仮想)インターフェイスをehternetおよびvlanインターフェイスと簡単にブリッジできます。お気に入り
brctl addif br0 wl0.1
brctl addif br0 vlan1
brctl addif br1 wl0.2
brctl addif br1 eth0
したがって、ワイヤレス「WAN」をWAN ethポートにブリッジし、ワイヤレス「LAN」を4ポートスイッチ(eth0)にブリッジします。
ブリッジの背後にあるPCのMACを学習し、必要に応じてsrc/dst MACを書き換えるために、一方を読み取ってもう一方に送信するリピータープログラムを作成しましたが、これは予期せぬ結果を招きます。