
私はこれを持っていますクリアフォグプロArmbian イメージのルーター ボード。私がやりたいのは、6 台の RaspberryPi を Clearfog Pro 経由でインターネットに接続することです。最終的には、7 台のコンピューターすべてに IP アドレスを設定して、すべてのコンピューターにアクセスできる必要があります。インターネットで調べたところ、これを実現するにはネットワーク ブリッジを設定する必要があることがわかりました。
まずこれらの構成を試しましたここしかし、それらは私には効果がありませんでした。
これは私の/etc/network/interfacesファイルの現在の設定です
auto lo br0 eth1 lan1
iface lo inet loopback
iface br0 inet dhcp
bridge_ports eth0 lan1
これはからの出力ですip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether fe:cc:39:e2:0e:81 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT group default qlen 532 link/ether 00:50:43:25:fb:84 brd ff:ff:ff:ff:ff:ff
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 532 link/ether 00:50:43:84:25:2f brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 532 link/ether 00:50:43:0d:19:18 brd ff:ff:ff:ff:ff:ff
6: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0
7: lan1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000 link/ether 00:50:43:84:25:2f brd ff:ff:ff:ff:ff:ff
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:50:43:25:fb:84 brd ff:ff:ff:ff:ff:ff
そしてip route
192.168.178.0/24 dev br0 proto kernel scope link src 192.168.178.44
そこで、lan1 のコンピューターに接続できると思って ssh を試みましたが192.168.178.44
、できませんでした。再び clearfog に接続しました。
eth1とeth0をブリッジしようとしましたが、戻りましたcan't add eth1 to bridge br0: Invalid argument
私の質問は、正しいブリッジ設定は何ですか?
編集:リクエストに応じてbrctl show
bridge name bridge id STP enabled interfaces
br0 8000.00504325fb84 no eth0
lan1
ifconfig
br0 Link encap:Ethernet HWaddr 00:50:43:25:fb:84
inet addr:192.168.178.44 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::250:43ff:fe25:fb84/64 Scope:Link
inet6 addr: 2001:984:6433:1:250:43ff:fe25:fb84/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:572 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:147582 (144.1 KiB) TX bytes:11762 (11.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:50:43:25:fb:84
inet addr:192.168.178.44 Bcast:192.168.178.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1225 errors:0 dropped:0 overruns:0 frame:0
TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:532
RX bytes:318910 (311.4 KiB) TX bytes:15514 (15.1 KiB)
Interrupt:38
eth1 Link encap:Ethernet HWaddr 00:50:43:84:25:2f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:532
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:39
lan1 Link encap:Ethernet HWaddr 00:50:43:84:25:2f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
そしてip route show
default via 192.168.178.1 dev br0
192.168.178.0/24 dev br0 proto kernel scope link src 192.168.178.44
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.44
答え1
私が正しく理解しているように、6 台の RPi がスイッチに接続されており、スイッチも Clearfrog に接続されています。RPi が相互に通信できるようにし、Clearfrog を介してインターネットにアクセスできるようにしたいだけです。これからは Clearfrog を CF と呼びます。
それでは、IP リンクを見てみましょう。
1: lo <- loopback
2: bond0 <- special interface for traffic aggregation/bonding
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> <- Assuming this is your uplink
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> <- Assuming this is physically connected to your switch
5: eth2: <BROADCAST,MULTICAST> <- Assuming this is inactive
6: tunl0@NONE: <NOARP> <- Tunnel interface for vpn
7: lan1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> <- Lan1 isn't physical, it's a VLAN inteface.
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> <- bridge interface you created
はっきりしないのは、ルーターが WAN 側でパブリック IP アドレスを受け取るのか、それとも別のゲートウェイの背後に残るのかということです。別のゲートウェイの背後にある場合は、RPi を別のサブネットに配置し、CF にトラフィックをルーティングするように指示する必要があります。
例えば:
*internets*
^
|modem| -> |gateway| -> | switch |
^ ^ ^ ^
192.168.178.0/25 PC1 PC2 PC3 CF Primary Network
^
| switch |
^ ^ ^ ^ ^ ^
192.168.178.128/25 Pi Pi Pi Pi Pi Pi Pi Network
プライマリネットワークにサブネット 192.168.178.0/25 を割り当てました。使用可能な範囲は .1-.126 です。Pi ネットワークにサブネット 192.168.178.128/25 を割り当てました。使用可能な範囲は .129-.254 です。
以前やろうとしていたのは、2つのアダプタをブリッジすることだったと思います。2つのアダプタの背後に複数のホストがあり、それらにもMACアドレスがある場合は、ルーティング、ブリッジではありません。
結局のところ、これはルーターですよね? 質問は「スイッチの作り方」でしたが、このデバイスは 2 つのネットワーク間のトラフィックを制御するために使用していませんか? そうでなければ、CF を削除してダム スイッチを挿入すればよく、組み込み Linux は必要ありません。
br0を削除するには:
brctl show | awk '{if(NR>1)print}' | awk '{print $NF}' | while read line ; do brctl delif br0 $line ; done
ifconfig br0 down
brctl delbr br0
次に、ルーターがルーターの機能を実行できるように準備しましょう。
/etc/network/interfacesを編集する
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.178.126
network 192.168.178.0
netmask 255.255.255.128
gateway 192.168.178.1
broadcast 192.168.178.127
auto eth1
iface eth1 inet static
address 192.168.178.129
network 192.168.178.128
netmask 255.255.255.128
broadcast 192.168.178.255
次に/etc/sysctl.confを編集して転送を有効にします。必要最初の行ですが、これはルーターに一般的に使用するものです。
net.ipv4.conf.all.forwading=1
net.ipv4.conf.default.accept_source_route = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
次に、sysctl -p を実行します。
次に、ルートを追加します。ip route flush all を実行することをお勧めしますが、これを実行するとすぐに ssh から切断されるため、コンソールで実行する必要があります。
ip route flush all
ip rule flush
ip route add 192.168.178.0/25 via 192.168.178.1 dev eth0
ip route add 192.168.178.128/25 src 192.168.178.129
ip route add default via 192.168.178.1 dev eth0
ここで、プライマリ ネットワーク ルーターに移動して、静的ルートを追加します: 192.168.178.128/25 via 192.168.178.129 これにより、内部ネットワーク上のホストが RPi ネットワークに接続しようとすると、リクエストが CF (ゲートウェイとして機能) に転送され、さらにルーティングされるようにメイン ゲートウェイ/ルーターに指示されます。
CF に戻って、最後に行うことは、iptables に転送ルールを追加することです。
#Allow rpi's to connect to the outside world but not initiate new connections to hosts on your primary network
iptables -I FORWARD -i eth1 -o eth0 -s 192.168.178.128/25 ! -d 192.168.178.0/25 -m conntrack --ctstate NEW -j ACCEPT
# Allow forwarding for established connections
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Allow hosts on your primary network to initiate new connections to pi's
iptables -I FORWARD -i eth0 -o eth1 -s 192.168.178.0/25 -d 192.168.178.128/25 -m conntrack --ctstate NEW -j ACCEPT
これらのルールは、iptables-save > /etc/iptables/rules.v4 で保存する必要があります。
ここで、CF に DHCP サーバーを設置して Pi に IP を割り当てるか、静的アドレスを割り当てる必要があります。どちらの場合も、デフォルト ゲートウェイを CF の IP 192.168.178.129 に設定する必要があります。
必要なのはそれだけです。何か問題があれば、遠慮なくコメントしてください。できる限りお手伝いします。
答え2
network/interfaces ファイル内:
auto lo br0 eth1 lan1
iface lo inet loopback
iface br0 inet dhcp
bridge_ports eth0 lan1
物事をある程度分離するのに役立ちます
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static #or dhcp
address <your address>
netmask 255.255.255.0
gateway <your gateway>
bridge_ports eth1
bridge_stp off
bridge_fd 0
お役に立てれば