自宅ネットワーク改造計画
3月現在の自宅ネットワーク環境
各機材の役割
- YAMAHA RTX1210 : VRRPのマスタールータ。IPoEで頑張っている。IPv4 over IPv6を設定済み。
- YAMAHA RTX1200 : VRRPのスレーブルータ。お家にもともと引かれてる無料Wi-Fiにつながっている。
- Netgear Switching Hub : 内部L2スイッチ。現状の単一障害点。
- TP-Link X50 : Wi-FiのAP。
- Synology NAS : ホームネットワークのNAS。今のところ動画置場。RAID0。
- Raspberry Pi 4 : 監視。Zabbix + Grafana。今のところSNMPでトラフィック量だけを見ている。
今後やること。
- L2スイッチの冗長化による単一障害点の排除。
- RTX1210のフィルタ設定見直し。
- SNMPv3の実装。
- 電源の二重化(メインとサブで電源タップを分けるだけ。一般のご家庭に正副2系統はない。)
- トラフィックの行き先を監視。
- VLANを切る。
今日までの進捗~
進捗したものだけ記載(これは進捗というのか…?)。
構成図
前回から大幅に変わった。が、中身的には何も変わっていない。
現時点では、Netgear S350が工場出荷状態のX510Lが2台に変わっただけだ。
L2スイッチの冗長化による単一障害点の排除(排除まではできてない)
みんな大好き例のX510Lを2つ購入。耳がないものなので、耳もついでに購入した。
コンフィグ突っ込むのうまくいかないな~と思っていたが、買ってから初期化せずに使用していて変なコンフィグが入りっぱなしだったため
erase startup-config
で、初期化した。スタック処理はまだ入力していないが、先にSSHができるようにする予定。
電源の二重化
電源タップを適当に買ってきて正副で分けた。
物が少ないのもあって、6口の電源タップで事足りそうである。
ネットワーク断事件
ついさっき、ネットワークが切り替わった際にそのまま外に出れなくなった。VRRPが機能していないことを表している。
RTX1210でネットワーク断がおきた際に、Slaveとして機能してるRTX1200にルーティングが切り替わった。
確認
Grafanaでトラフィック量を確認してみると、確かにRTX1210からRTX1200へ切り替わっていることが確認できた。
だが、RTX1200からの通信がうまくいかないことが判明。ユーザから「Wi-Fiが繋がらない」と苦情が来た()。
調査
原因を調べていると、RTX1200の設定に ip lan1 vrrp shutdown trigger 1 lan2
が設定されていることが判明。
このコマンドはVRRPにおける、Masterルータとして動いているルータ内で、条件を満たした際に対象をシャットダウンさせるものであり、Slaveルータとして動作しているRTX1200には必要がない。(ソース)
そもそもRTX1200はSlaveとして機能しており、RTX1210の通信が復活した際は自動的に戻るようになっている。
変更
今回のことを受けて、RTX1200のコンフィグからVRRPのシャットダウントリガーを削除した。
no ip lan1 vrrp shutdown trigger 1 lan2
確認
上記のコンフィグを削除している段階ではRTX1210の通信が復活していた(調査が遅いともいう)ので、RTX1210のWAN側のLANケーブルを抜線してVRRPの機能テストを行った。
適当な端末でTwitchの適当な配信をつなぎながら行い抜線。RTX1200で show status vrrp
の結果がMasterになっている(移行されている)ことを確認後もTwitchで配信が流れていたため通信は正常に行えてることが確認できた。
もにょもにょすること
シャットダウントリガーの設定がSlaveルータに設定されている場合の挙動が確認できなかった。
報告としては原因が明確になっていないため、精査したいところだ。
憶測としてはSlaveルータにシャットダウントリガーが設定されていると、対象のインタフェースがシャットダウン状態になるのではないかと予想している。その状態でVRRPが切り替わってもシャットダウンされているため通信できなくなったのではないかと予想される。
また確認しよう。
X510Lの監視(MIBの登録からZabbixでの疎通確認まで。)
せっかく2つあるので、監視をさせる。
X510LのSNMP設定
Allied Telesisのコマンドリファレンスを見ながら作業を行う。
行ったのはだいたい以下の通り。今はSNMPv1なので、これぐらいでも問題はない。
(config)# snmp-server
(config)# no snmp-server ipv6
(config)# snmp-server community <X510L-HOSTNAME> ro
MIBの取得
アライドテレシス公式から自分のFirmwareのVersionにあったものをダウンロードしてくる。
MIBをZabbixで使えるようにする。
SSHで繋いで、MIBをZabbixサーバに放り込む。
MIBファイルはunzipとかで解答したあと、/usr/share/snmp/mibs/
に置く。
/usr/share/snmp/snmp.conf
ファイルにx510lのMIBフォルダのフルパスを追記する。
その後、Zabbixサーバを再起動させる。
systemctl restart zabbix-server.service
その後、MIBが機能しているか確認する。
参照:https://www.zabbix.com/documentation/current/jp/manual/config/items/itemtypes/snmp/mibs
ZabbixのWebGUIで見れるようにする。
Monitoring -> Hostsで登録したあと、SNMPの内容を見れるようにData Collectionに登録する。
今回はX510Lのスタック構成にしようとしているため2台存在するので、Template機能を使う。
まだ自動化の手段もないので、GUIベースで作業を進める。
今回設定したItemはHostnameその他諸々を取って来てくれるもの。これでSNMPの疎通確認を行い、疎通することが確認できた。
ここでOIDの読み方などがわからないまま進めていたことが仇になってつまり気味なので、一度そちらの理解を深めてから、再度構築する。
SNMPv3に関係するRFCを読む。
RFC3411を読んだ。
ようやくRFC3411を読み終わったので(といっても完全に理解した訳では無いが)、SNMPv3へ対応していこうと思う。
ちなみにSNMPv3に関するRFCは3410~3415までの6つ(Source)で、Introductionの3410を読みに行った際に、欲しい情報が3411と3414にあるという推測がたった。しかし、3411には欲しい情報はなかったのでおそらく3414であると考える。
SNMPv3とかの仕組みはRFC1個で完結していると思っていたので、いくつもに分かれているという時点でちょっとびっくりだった。
RFCの読み方について調べた。
順番逆じゃない?はい。すみません。
Qiitaの記事を参考にして、RFC/Internet-Draftの読み方を読んだ。頑張ろう、英語。
DHCPの配布範囲の変更
DNSなどのインフラを自分で構築していく際に面倒になってくるのがDHCPによる動的IPの配布。
192.168.100.xをフルパワーで開放していたので、その辺の制御をしていく。
といっても、今回はDHCPを担当しているRTX1200の設定を少しいじるだけである。
- インフラ系は結構IPに余裕を持たせたい。
- DHCPで配布するIP(主にWi-Fi AP経由)は50個程度で余裕をもって対応できる。
と考えると以下のようになるかな。
.1~.99 : インフラ系システムの固定IP
.100~ .150 : DHCPによる配布
.151 ~ 254 : 未割当
Consoleから一行コマンドを打って終わり。
# dhcp scope 1 192.168.100.100-192.168.100.150/24 gateway 192.168.100.1