既存のWiFiからイーサネットへの透明ブリッジ?

既存のWiFiからイーサネットへの透明ブリッジ?

独自のDHCPサーバーなどを使用して、ブリッジを別のルーターに切り替える例をたくさん見ました。ところで、有線デバイスを元のルータに直接接続しているかのように使用したいと思います。ブリッジマシンは問題なく自分でWiFiに接続します。

この回答私が望むものに近いですが、次のように言います。The wlan0 interface also has to be condigured to connect to your remote AP so this configuration is not be used verbatim.

警告に示すように、それ自体は機能しません。 WiFiアダプタが見つからないため接続できませんが、元々動作していた接続をリセットする方法は記載されていません。どうすればいいですか?


/etc/wpa_supplicant/wpa_supplicant.conf例:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="MyNetwork"
    psk="MyPassword"
    key_mgmt=WPA-PSK
}

WiFiが動作している場合、デフォルトは/etc/network/interfaces次のとおりです。

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

結果ifconfig:

pi@FCC-FOH:~ $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:4c:6c:a7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.35  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::c39b:c8ac:86c9:1f0e  prefixlen 64  scopeid 0x20<link>
        inet6 2600:100a:b02f:8196:b8ae:3d20:c4d0:817c  prefixlen 64  scopeid 0x0<global>
        ether 00:f0:00:36:1f:1a  txqueuelen 1000  (Ethernet)
        RX packets 17  bytes 1955 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52  bytes 7956 (7.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@FCC-FOH:~ $ 

ブリッジを有効にしようとすると、/etc/network/interfaces次のようになります。

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0

結果ifconfig:

pi@FCC-FOH:~ $ ifconfig
br0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:4c:6c:a7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:4c:6c:a7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:f0:00:36:1f:1a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@FCC-FOH:~ $ 

ベストアンサー1

さて、ここで最大の問題は通信問題だと思います。使用している用語には、目的の結果(WLANのないデバイスAがあります。2番目のデバイスを介してWLANルーターに接続すると、WLANの他のすべてのデバイスからアクセスでき、その逆も同様です。もちろん、あなたが望むもの(あなたのX)ではなく、特定の意味を持つ用語(質問でXY、Y)に従う答えが得られます。

これがXYの質問の中心です。 Yの代わりにXを要求すると正解が得られます。 Yと尋ねると、人々は正確に答えることができません。

それでは、いくつかのネットワーキングの基本を見てみましょう。これオープンシステム相互接続モデルネットワークの複数の層を記述します。レイヤ2はイーサネット/WiFiレイヤです。デバイスはMACアドレスによって識別され、すべてのデバイスがお互いを見ることができ、そのネットワークセグメントで互いに通信できるネットワークセグメント(ブロードキャストドメインとも呼ばれる)があります。メッセージを送ってください。一方、レイヤ3はインターネット(IP)アドレスを使用します。

ブリッジング2つのレイヤ2セグメントが単一のレイヤ2セグメントとして表示されるように接続することを示します(したがって、前の両方のセグメントでレイヤ2ブロードキャストを見ることができます)。ルーティングレイヤ 3 でパケットの次の宛先を検索し、レイヤ 2 の対応する宛先にパケットを転送し、2 つのレイヤ 2 セグメントが接続されていることを示します。

今日のWLANは、複数のアクセスポイント(と呼ばれる)を許可するように設計されています。分配システム(DS)):

<--- SEGMENT (DS) --->  <- SEGMENT ->
       
    LAN         WLAN        LAN 
     |      
     |           .....C1------------D
     |---- B1 ....
A----|           .....C2
     |
     |---- B2 ..
     |

AはDSのゲートウェイ、B1とB2はアクセスポイント(AP)、C1とC2はワークステーション(STA)、DはLANを介してC1に接続されたコンピュータです。

少し簡単にするために「パケット」(802.11フレームWLAN経由で送信されます)には、A、B、C(3アドレスモード)のMACアドレスが含まれています。したがって、APはWLANとLANアダプタをブリッジして単一のネットワークセグメントを形成できます。 Cがレイヤ2パケットをAに直接送信したい場合は、APはBに関連付けられていることを知っているので、アドレス(A、B、C)の袋のデータに。 Bはパケットを受信すると、最終宛先がAであることを確認し、ブリッジされたLANインターフェイスを介して再送信できます。他の方向でも同じです。

今、STA CがLANとWLANを接続するのと同じことを試みるとどうなりますか?では、D が A にレイヤ 2 データパケットを送信するとき、C は WLAN データパケットにどのアドレスを入れるべきでしょうか。 (A、B、D)を入れることができます。通信が暗号化されていない場合、AP Bは「いいえ、このパケットはDから来ましたが、私はDに関連付けられていません。したがって、このパケットに問題があるようです。削除します」と言います。さらに悪いことは、通信が暗号化されている場合(現在の標準でなければならない)、APとSTAの間で鍵がネゴシエートされることです。しかし、Cは<B,C>キーだけを持っていて、<B,D>キーは持っていません。したがって、このパケットは正しく暗号化できません。

Cが自分のMACアドレスだけを入力した場合はどうなりますか?その後、データパケットの場合到着D、最終的にCにも送信されます。したがって、Cは、Dにパケットを転送することと、これらのパケット自体を受け入れることを区別する方法を決定する必要があります。レイヤ 2 にはこの決定の基礎となる情報があまりないため、これを行うことは困難です。そのため、この場合、最終的にCは「消え」、DはBと直接接続されているように見えます。 WLAN_KABELが実装したソリューションです。この結晶の変形は、使用される(レイヤ3)ポートなどに依存する。

別のオプションは、(A、B、C)の代わりに関連するすべてのアドレス(A、B、C、D)を入力することです。これは4アドレスモードと呼ばれ、時にはWDSとも呼ばれます。注意してください。 WDS は、同様のタスクを実行するために他の独自の方法で使用されます。

これで、STAがLANとWLANをブリッジできる理由がわかりました。

欲しくないなら、示されているように彫刻を維持する限り、すべてが簡単になります。路線、AとすべてのBのDに適切な(静的)ルーティングテーブルを追加すると、到達可能になります。レイヤ3のIPアドレスはセグメントとして割り当てられるため、アドレス範囲のみが異なります。たとえば、Aが192.168.23.1、B1が192.168.23.2、B2が192.168.23.3、C1が192.168.23.100、C2が192.168.23.101であるとすると、2.4.2ネットワークセグメントC1は10.0.0.1であり、ネットワークセグメントDは10.0.0.2である。その後、C2は「レイヤ3パケットを10.0.0.2に送信します」と言うと正常に到着します。 NATは必要ありません。

ほとんどのホームネットワークには1つのAPしかありません(複数のAPを正しく設定する方法を知っている人はほとんどいません。複数のAPが必要な場合はデュアルNATなどの恐ろしい作業を行います)、家のルータはAとBを1つのデバイスにまとめますします。ただし、契約は上記のように維持されます。

ホテルと同じ場所で説明されているように、専門家がインストールした複数のAPを見つけることができます。

おすすめ記事