Netgear R7800 の OpenWrt 化

最新の OpenWrt R7800 用ファームウェア(hnyman ビルド)のインストール

NetGear R7800 は一部のハードウェアチップ用ドライバーが非公開のためサポートされていないもの(ハードウェア NAT 機能)もあるが、全体としては Linux カーネルの更新に追従し続けているため、発売当時の OpenWrt ベースのままである純正 OEM ファームウェアよりもはるかに良くなっている(👉 Some notes on the current support in OpenWrt

このルーターは 2016 年末頃から OpenWrt コミュニティによってサポートされ続けており、既に十分に安定化しているので、迷わず OpenWrt 化することを決意した。特に、R7800 についてはコミュニティの中心的人物である hnyman 氏がコミュニティビルドを用意しており、絶大な支持を集めているので、その通称 hnyman ビルドの stable 版を用いた。

OEM 版からの GUI のファームウェア更新機能を利用してファームウェアを乗せ換えるので、使ったのは *-factory.img である(*-sysupgrade.bin は OpenWrt 化済の場合に OpenWrt の GUI からアップデートする場合に使うもの)。もちろん、TFTP から *-factory.img を書き込むことも可能(反対に純正 OEM 版に戻す場合も TFTP から R7800-V1.0.2.68.img を書き戻せばよい)。

ちなみに、コミュニティで hnyman 氏らが慎重に検証していたが、OpenWrt 化に先立って予め、何らかの失敗に備えるために純正版の mtd をバックアップしておくような作業をする必要はない。OEM 版ファームウェアを書き戻す際に、付随する設定値を格納するパーティションも初期化されて復活するようになっているようである。そういう意味でやはり Netgear はカスタムファームウェアに対しては非常に寛容で好感の持てるメーカーであり、チップのドライバーの公開・非公開次第では OpenWrt フレンドリーな製品となりやすいブランドだと思う。

Wi-Fi 設定の初期化

👉 OpenWrt での Wi-Fi 設定(OpenWrt 一般)

SSH の認証用公開鍵の登録

👉 OpenWrt での SSH 設定(OpenWrt 一般)

NTP の設定

👉 OpenWrt での NTP 設定(OpenWrt 一般)

特に急ぐ必要はないが、同じシステム設定なので、SSH を設定する流れてやっておいた。

ポートマップ・パケットフィルターの設定と実運用環境への設置

次に、この OpenWrt 化 R7800 は前回の記事における実家のネットワークにおける GateKeeper として設置するために行っているので、最小限のセットアップを整えたら、GateKeeper として実家に配置して、以後、配置された状況の中でセットアップを続行する必要がある。一旦、実家のネットワークに組み入れてしまえば、元々 OpenVPN も使える環境なので、以後は実家に行かずとも、OpenVPN 越しに設定作業を続けることができる。

まず、周辺機器の設定が不要となるようにするために、従来の GateKeeper の Wi-Fi の SSID とパスワードを引き継いで同じになるように設定した。さらに、従来の GateKeeper の WAN 側アドレス 192.168.0.254 も引き継ぐため、WAN インターフェースの設定を初期設定である「DHCP クライアント」から「固定アドレス」にして、IP アドレス、ネットマスク(ブロードキャストアドレス)、ゲートウェイアドレス、DNS アドレスを手動設定した。

また、従来の GateKeeper は DMZ と家庭内 LAN との間の L3 ハブとなるルーターだったので、ポートマップパケットフィルターの設定だけは最低限受け継いでおく必要がある。

フィルタリングルールの参考リンク
ゼロから始めるLinuxセキュリティ
OpenWrt はあくまでも Linux なので、ファイアーウォールの設定などは Linux の仕様に従うことになる。
Linuxで作るファイアウォール
OpenWrt: Firewall
全体では膨大なドキュメント量だが、特に必要なのは“Firewall configuration /etc/config/firewall”だろう。
Poor Man's Bridge Mode
OpenWrt の公式ドキュメントによると、プロバイダーから提供される HGW(ホームゲートウェイ)と OpenWrt ルーターとの接続方法については、レイヤーの高い順に 1: ゲートウェイ; 2: ルーター; 3: ブリッジと大別されている(ゲートウェイはルーター+ WAN モデムとしての運用)。
そのドキュメントの中で IPv4 における Double NAT 問題に対して採りうるストラテジーとして、最良なのは HGW をブリッジとして運用することだが、これは VoIP 電話を使う場合は断念せざるを得ない(VoIP 電話が HGW のルーター機能を前提としているため)。そこで次善の策となるのが、“Poor Man's Bridge Mode(貧者のブリッジモード)”で、HGW をルーターモードで運用しつつ、DMZ 機能を使って OpenWrt ルーターを接続するストラテジーである。自分の場合も、実家では、VoIP(ひかり)電話を利用しているので、このストラテジーを採用する。
ブロードバンドルータの内と外
  1. IPマスカレードは、LAN側ノードのIPアドレスとポート番号を、ルータのWAN側のIPアドレスと任意のポート番号に変換して、LAN側ノードにインターネットへのアクセス手段を提供する。また結果的に、WAN側からのLAN側への侵入を阻止する
  2. フォワーディングやDMZは、LAN側の任意のIPアドレスへと変換することによって、逆にLAN側へのアクセス手段を提供する
  3. パケットフィルタリングは、ある一定のルールによりパケットのルーティングの許可/禁止を行う。ブロードバンドルータでは、LAN→WAN方向のみに適用される

DHCP サーバー機能の移行

DHCP サーバーとしての機能は、元々 GateKeeper(192.168.1.1)の立ち位置にあるルーターとは別のブリッジ化した OpenWrt 機(192.168.1.254)に担わせていたので、今回 GateKeeper を R7800 に置き換えるにあたって、当初は R7800 側の DHCP の設定はノータッチのままだった。

とはいえ、デフォルトでは R7800 側の DHCP も稼動しているので、そのままでは競合が起こるかもしれないので、まずは双方の Authoritative チェックを外して無効にしてから → 元の DHCP の Static Lease 設定を R7800 に書き写し → 元の DHCP Sever の機能を停止(わかりにくいが、DHCP の設定からではなく、LAN インターフェースの設定の DHCP Server タブの Ignore interface のチェックを有効にすることで off にできる)→ 最後に再び R7800 の Authoritative チェックを有効にする、という順番で移行を行った。

OpenVPN サーバー機能の移行と WireGuard への移行

👉 OpenWrt の OpenVPN(サーバー)についての包括的メモ

GateKeeper とは別のブリッジ運用していた OpenWrt ルーターに担わせていた OpenVPN サーバーの機能を、新しい GateKeeper に移転した。

さらに、WireGuard も初導入し、OpenVPN をリプレースすることにした。

(以上)

コメント

このブログの人気の投稿

清水俊史『上座部仏教における聖典論の研究』

シークエンスパパとも 本物の霊能力

シークエンスパパともの先見の明