2019年が終わる前に記事を書けてほっとしています。アドベントカレンダーなんてお洒落なものに刺激を受けたので来年は勢力的に頑張りたいと思います。
この記事は【後編】です。お話はつながってますので気になる方はインフラ更新で困った話(前編)(前回の記事)をご覧ください。
前回のおさらい
インフラ更新の案件で「ファイアウォールをまたいだ通信が通らない」といった話でした。
前回は事象の説明で終わりましたが今回は原因と解説まで書きます。
先に言っておきますが「そのくらいわかるでしょ」とか「なんですぐ気づかないの?」といったご意見はおおいにその通りです。あくまで雑魚エンジニアが本番環境に臨んだ時のきょどり具合まで加味してご覧ください。
原因1:NAT設定の仕様
原因の1つは製品のバグでした。
「ファイアウォールとは境界防御の製品です」とは前回述べたとおりです。
ネットワークとネットワークの境界に設置するものですから両ネットワーク間で通信する際はファイアウォールがいい感じにやります。
さて、NATとは。
(IP的に)異なるネットワーク間で通信をする際にIPアドレスを変換する機能のこと。
異なるネットワークに向けて通信するときIP体系が違うので通常は通信不可です。
が、NAT機能を使用するとネットワークの違いを吸収して(IPアドレスを変換して)通信することができます。
↓の例でいうとLAN1のHostAからLAN2の端末へ通信する際、IPアドレスを192.168.1.100から172.20.1.100に変換してくれるのです。この機能により異なるネットワーク間でも通信できます。
LAN1 | LAN2 | |
---|---|---|
HostA | 192.168.1.100 | 172.20.1.100 |
HostB | 192.168.1.101 | 172.20.1.200 |
HostC | 192.168.1.150 | 172.20.1.120 |
↑の表みたいなものをNATテーブルといいます。
導入したファイアウォールでは何故か一番下のルールが効いていませんでした。(↑の例でいうHostCのとこ)
上手くいかないのでNATのテストをするべくルールを1つ追加したところさっきまで効かなかったHostCのルールが効くようになりました。
終わって聞いた話では、前回(5年前)も同じことが起こったとのこと。GUIで設定したものが反映されなかったらしい(もっと早く聞きたかった
解決法としては、CUIで設定することorダミーのルールを一番下に入れることでした。
原因2:ポリシー設定ミス
※NATも「ポリシー設定」に含まれますが今回はちょっと書き分けます。
こっちはしょうもない原因です。
片方のネットワークからの通信を全拒否するよう設定していました。
でも間違いなく全許可の設定はしたはずなんだけど・・・
なんかの拍子に戻ったのかな?原因1も設定が反映されないことが根本的な話だったわけだし・・・
触っていたときには再現しなかったので何とも言えませんが、「設定したはずのものができていない」は十分疑うべき対象だと思いました。
おわりに
長くなっちゃたけど新年会が楽しみですね!