Nano Piを使ってみた
Ethernet Portが2つ以上存在するシングルボードコンピューターを探していたところ、「NanoPi R5S RK3568 4GBメモリ 16GB eMMC トリプルLANポート」を見つけたので、いじってみることにした。目指せシリーズ化のため、「その1」としている。
何をするか
結局のところ、ルーターとかブリッジと言ったところ。まあ、Raspberry PiのUSBポートに、USB-Ethernetアダプタをさし、オンボードEthernetとの組み合わせで、複数のEthernetポートを設けても、内容的にはよいのだが、やはり、両方のEthernetともオンボードの方が安定性もありそうだし、余計なものがないほうがいいに決まっている。
その1では、ブリッジ+Firewallを試すと同時に、基本事項と感じたことを備忘録として残す。
右から左へのデータの流れに成約はないが、左から右へはデータは流れない、、と言った単純なもの。実物では下記。
左から、インターフェースeth0(黒)、eth1(水色)、eth2(白)となっており、ここでは、eth2はNano Pi制御用のポートである。
Friendlywrt
RasPiと同じ感覚で、μSDカードに何らかのイメージを焼いてそのまま起動するか、イメージをeMMCにコピーして起動するのかと思っていた。が、当初から、Friendlywrtという、OpenwrtベースのLinux Distributionがインストールされていたので、それをそのまま使う。
設定(その1)
Tipsも含めて説明。
最初に
本家のWikiはこちらである。何か不具合などが生じた時、工場出荷時に戻せることが大事。例えば、IPアドレスを間違えた場合など、ネットワークからのアクセス不能時には、Nano PiのHDMIポートにディスプレイを、USBポートにキーボードを接続し、root(初期パスワード:password)でログインし、
# firstboot && reboot
により初期化(工場出荷時状態)できる。こちらに説明あり。
初期化状態
初期状態では、br-lanというeth0とeth1とが属するLANが、IPアドレス192.168.2.1/24(+DHCPサーバー)を持ち、eth2とがWAN側でDHCPクライアントとなっている。
eth2からの制御
後にLAN側を単にL2化(IPアドレスをアサインしない)するため、eth2(WAN)からNano Piを制御できるよう、ファイアウォールの設定を変更する。下記が初期状態。WAN側の受信が「拒否」となっている。
これを、「許可」に変更する。
ちなみに、eth2の状況は下記のとおり。
LAN側(br-lan)のL2化(IPアドレスをアサインしない)
eth0からeth1への流れをストップするため、両I/Fが属するLAN側(br-lan)をL2化する。
プロトコルを「アンマネージド」とすると、実現できるようだ。最終的な適用(保存)時に、下記のような確認メッセージが表示される。
eth0およびeth1の単体の状況は下記のとおり。
インターフェース確定
設定(その2:ここからが本質)
GUI上でI/Fの制御をトライしたが、よくわからず、結局、ebtablesを利用することになった(こちらの記事「いまさらだけどebtables(その1)」なども参照)。が、インストールされていないことが判明。
ebtablesインストール
まずはソフトウェアリストの更新を実施。
ebtablesの検索及びインストール。
インストール直後は何も設定されておらず。
ebtables設定
eth0に入るすべてのデータをDrop(拒否)する。
# ebtables -A FORWARD -i eth0 -j DROP
これを起動時に実行する。
上記は、”/etc/rc.local”そのもののようだ。再起動後は、下記となる。
結果は自明なので省略。
EOF