Raspbian ブリッジ設定の問題

Raspbian ブリッジ設定の問題

ワイヤレスアクセスポイントとルーター間のブリッジでラズベリーパイを設定しようとしています(理由は、デバイスをAPに接続し、tcそれをパイで使用して悪いネットワークをシミュレートしたいからです)。ルータは pi at に接続され、eth0AP は pi at eth1(USB-Ethernet アダプタ) に接続されます。

私はこれを使ってdhcpcdこれdnsmasqを達成しようとしています。ただし、デバイスをAPに接続し、IPアドレス(で指定された範囲内dhcpcd.conf)を提供できますが、ドメインやIPアドレスに関係なく、すべてのpingがタイムアウトします(パイを接続してpingできない場合)。 AP)。

IPv4転送を有効にしました/etc/sysctl.conf
net.ipv4.ip_forward=1

dhcpcd.confデフォルト値を追加しました。

# eth1 is connected to the AP
interface eth1
# This is the ip address of the Raspberry Pi
static ip_address=10.0.0.100/24
# This is the ip address of the router
static routers=10.0.0.1

dnsmasq.confは次のようになります(インターフェイスが正しいか完全にはわかりません。APに接続されているインターフェイスに設定しましたが、に変更しても違いはeth0ありません)。

interface=eth1
listen-address=10.0.0.100
bind-interfaces
server=8.8.8.8
server=8.8.4.4
domain-needed
bogus-priv
dhcp-range=10.0.0.110,10.0.0.130,4h

次のコマンドを実行してiptableルールを追加します(次にiptablesをファイルに保存し、起動時に復元しますrc.local)。

sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

私が読んだところによると、上記のルールはpiを介してトラフィックを正しく転送する必要がありますが、そうではないようです。

dhcpcdとサービスのステータスを確認しましたが、dnsmasqエラーのように見えるものは見つかりませんでした。

dhcpcd状態:

● dhcpcd.service - dhcpcd on all interfaces
   Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/dhcpcd.service.d
           └─wait.conf
   Active: active (running) since Tue 2019-02-26 12:02:43 GMT; 29min ago
 Main PID: 368 (dhcpcd)
   CGroup: /system.slice/dhcpcd.service
           └─368 /sbin/dhcpcd -q -w

Feb 26 12:02:43 raspberrypi dhcpcd[368]: eth0: offered 10.0.0.140 from 10.0.0.1
Feb 26 12:02:43 raspberrypi dhcpcd[368]: eth0: probing address 10.0.0.140/24
Feb 26 12:02:47 raspberrypi dhcpcd[368]: eth0: using IPv4LL address 169.254.202.179
Feb 26 12:02:47 raspberrypi dhcpcd[368]: eth0: adding route to 169.254.0.0/16
Feb 26 12:02:48 raspberrypi dhcpcd[368]: eth0: leased 10.0.0.140 for 86400 seconds
Feb 26 12:02:48 raspberrypi dhcpcd[368]: eth0: adding route to 10.0.0.0/24
Feb 26 12:02:48 raspberrypi dhcpcd[368]: eth0: adding default route via 10.0.0.1
Feb 26 12:02:49 raspberrypi dhcpcd[368]: eth0: deleting route to 169.254.0.0/16
Feb 26 12:02:50 raspberrypi dhcpcd[368]: eth0: no IPv6 Routers available
Feb 26 12:02:50 raspberrypi dhcpcd[368]: eth1: no IPv6 Routers available

dnsmasq状態:

● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-02-26 12:02:43 GMT; 33min ago
 Main PID: 401 (dnsmasq)
   CGroup: /system.slice/dnsmasq.service
           └─401 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5 --trust-anchor=.,20326,8,2,e06d44b80b8f1d39a95c0b0d7c65d0

Feb 26 12:02:50 raspberrypi dnsmasq-dhcp[401]: DHCPDISCOVER(eth1) a0:f3:c1:6d:2f:1b
Feb 26 12:02:50 raspberrypi dnsmasq-dhcp[401]: DHCPOFFER(eth1) 10.0.0.129 a0:f3:c1:6d:2f:1b
Feb 26 12:02:50 raspberrypi dnsmasq-dhcp[401]: DHCPDISCOVER(eth1) a0:f3:c1:6d:2f:1b
Feb 26 12:02:50 raspberrypi dnsmasq-dhcp[401]: DHCPOFFER(eth1) 10.0.0.129 a0:f3:c1:6d:2f:1b
Feb 26 12:02:58 raspberrypi dnsmasq-dhcp[401]: DHCPDISCOVER(eth1) a0:f3:c1:6d:2f:1b
Feb 26 12:02:58 raspberrypi dnsmasq-dhcp[401]: DHCPOFFER(eth1) 10.0.0.129 a0:f3:c1:6d:2f:1b
Feb 26 12:02:58 raspberrypi dnsmasq-dhcp[401]: DHCPREQUEST(eth1) 10.0.0.129 a0:f3:c1:6d:2f:1b
Feb 26 12:02:58 raspberrypi dnsmasq-dhcp[401]: DHCPACK(eth1) 10.0.0.129 a0:f3:c1:6d:2f:1b TL-WR702N
Feb 26 12:35:05 raspberrypi dnsmasq-dhcp[401]: DHCPREQUEST(eth1) 10.0.0.124 f4:5c:89:8e:aa:a1
Feb 26 12:35:05 raspberrypi dnsmasq-dhcp[401]: DHCPACK(eth1) 10.0.0.124 f4:5c:89:8e:aa:a1 george

この状態では、TL-WR702NAPgeorgeとAPに接続されているデバイスです。

私はどこで間違っているのか混乱しています。私はフォローしています地図時間piをブリッジに設定し、参照されたマニュアルページで問題をデバッグしようとしましたが、dnsmasq役に立ちませんでしたdhcpcdiptables

PI持つ設定後に再起動しました。

答え1

リンクされたチュートリアルを確認した後(https://pimylifeup.com/raspberry-pi-wifi-bridge/)、以下の結論を下すことができます。いいえブリッジングチュートリアルではなく、NAT/ルーターチュートリアルです。コメントの1つは次のように言います。

また、この設定は技術的にブリッジではなくWi-FiクライアントNATルーターであることに注意することも重要です。

したがって、実際にブリッジを使用するには、ブリッジのチュートリアルに従ってください。ラズビアンだからDebianブリッジされたネットワーク接続十分に良いでしょう。記載されているbridge-utilsパッケージは実際には必要ありません(古い)。brctl最新のコマンドで完全に置き換え可能IP ルート 2~のip linkそして(本当に必要な場合)bridgeしかし、それのためにbridge-utils-interfacesプラグイン上下なら~の構成

したがって、最終的に次の方法を使用して構成を実行できます。

iface eth0 inet manual

iface eth1 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0 eth1

これで、物理インターフェイスがブリッジポートになり、レイヤ3設定が無視されるため、物理インターフェイスにIPを入力しないでください。また重要ではありませんが、ブリッジは最初のインターフェイスのMACアドレスを継承する必要があります。したがって、これが本当に重要でeth1のMACを使用したい場合は、コマンドの前に置いてくださいbridge_ports(これにより、ルータのDHCP提案が変更される可能性があります)。

これで、eth0さまざまな設定で参照を変更してインターフェースをとして宣言しますbr0。たとえば、不要になったため必要ない場合がありますdnsmasq

追加情報:

  • iptables2 つのインターフェイス間をフィルタリングするための代替または補足の試みを使用したことがある場合ebtables(ヒント: そうしてはいけません。今はルータではなくブリッジですが、ステートフル透明ファイアウォール ブリッジに必要なものです)。有効な場合br-netフィルタブリッジフィルタリングとIPフィルタリング層の間の特別な相互作用:Linuxベースのブリッジのebtables/iptables相互作用。これを理解しないと、デバッグが困難な結果が生じる可能性があります。

  • たくさんtc qdisc効果(例:netem)は発信方向(出口)にのみ適用されます。 2つのインターフェースeth0の間にあるので、eth1特定の意図された操作のためのシャットダウンインターフェースを常に見つけることができると思うかもしれませんが、そうすればeth0RPi自体がインターネット側で影響を受ける可能性があり、これは私たちが望むものではないかもしれません。の。以下を追加すると、これを防ぐことができます。中間機能ブロック装置ifb0)to eth1:エントリと残りのネットワーキングコードの間にインタフェースを人工的に挿入します。したがって、受信データフローの観点から、インターフェイスは送信インターフェイスであり、eth1netemの解釈では受信フローの一部です。これで、中断することなくTCを適用してeth1出ることができます。私の答えにはより多くの情報があります。ifb0eth0netem を使用したブリッジインターフェイスでのパケット損失のシミュレーション

関連情報