はじめに
こんにちは、実に1年以上ぶりにブログを書いている荻野です。
先日社内で利用しているルーターをYAMAHAのRTX810からRTX1210へとアップグレードをしました。
元々RTX810はAWSとVPN接続を確立していたのですが、RTX1210への変更時にBGPの設定で少しハマってしまった部分があったので自戒も込めてご紹介します。
入れ替え手順
ざっくり、以下の手順でルーターを入れ替えました。
- RTX810 のconfigを取得
- RTX1210 へconfigを反映
- RTX810 でプロバイダーとの接続を解除
- RTX1210 を社内ネットワークへ設置
作業当日はプレミアムフライデーだったせいか、利用メンバーが少なかったのでメンテナンス時間は多めに確保することができました。
また、どうしてもインターネットへ接続したいメンバーには、別に用意してあるゲスト向けのネットワークを利用することで凌いでもらいました。
そして障害は起きた
RTX1210へ入れ替え後に動作検証を行っていたところ、名前解決がうまくできていない事に気がつきました。
このネットワークのDNSサーバはVPNで接続した先、AWSのVPCの中に存在しています。
ちなみに、ローカルネットワークは 172.20.0.0/16 で、VPN先ネットワークは 172.25.0.0/16 です。
IPSecの状況ですが、ルーター側からはトンネルが確立できていることが確認でき、AWS側でもトンネルがUPしていることを確認できました。
この状態で、試しにDNSサーバに問い合わせてみます。
# localhost で実施 $ dig fugafuga.tagbangers.co.jp @172.25.0.200 ; <<>> DiG 9.8.3-P1 <<>> fugafuga.tagbangers.co.jp @172.25.0.200 ;; global options: +cmd ;; connection timed out; no servers could be reached
connection timed out... なるほど。
一応pingも飛ばしてみます。
# localhost で実施 $ ping 172.25.0.200 PING 172.25.0.200 (172.25.0.200): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3 Request timeout for icmp_seq 4
Request timeout... なるほど。。。。
この時点で、今回の障害の原因は概ねこんな感じかなぁと考えていました。
- ローカルネットワーク側のルーティング
- ローカルネットワーク側のフィルター
- AWS側のルーティング
- AWS側のSecurityGroup
ですが、RTX810のconfigとRTX1210のconfigに差異はなく、もちろんAWS側の設定も一切変更していません。
(実は)RTXに精通している訳でもありませんので正直どの設定を直せばいいか見当がつきませんでした。
トラブルシューティングの時間です
さすがAWS。ドキュメント豊富です。
Yamaha 製カスタマーゲートウェイの接続のトラブルシューティング
こちらを参考にトラシューしていきましょう。
ざざーっと、IKE / IPSec / トンネル の項目をチェックしますが、それぞれ問題はなさそう。(コマンドの実行結果は割愛)
次に BGP の項目をチェックします。
# RTX1210で実施 > show status bgp neighbor BGP disabled
おや。。。。っということはルーティングも。。。。
# RTX1210で実施 > show ip route 172.20.0.0/16 172.20.0.1 LAN1 implicit
172.25.0.0/16 へのrouteがない。。RTX1210のconfigではBGPは有効になっているはずなのに。。
BGP-4 設定ガイド を見てみましょう。
5. 設定の有効化
すべての項目を設定したら、 最後にbgp configure refreshコマンドを実行します。 設定を変更したときには、このコマンドを実行するか、 ルータを再起動するまで、設定が有効にならないので注意してください。
Oh....ということで今回はルーターを再起動しました。
再起動後、改めてBGPの設定を確認してみます。
# RTX1210で実施 > show status bgp neighbor BGP neighbor is xxx.xxx.xxx.xxx, remote AS 10124, local AS 65000, external link BGP version 0, remote router ID 0.0.0.0 BGP state = Idle Last read 00:00:00, hold time is 0, keepalive interval is 0 seconds Received 0 messages, 0 notifications, 0 in queue Sent 0 messages, 0 notifications, 0 in queue Connection established 0; dropped 0 Last reset never Local host: unspecified Foreign host: xxx.xxx.xxx.xxx, Foreign port: 0
Idle状態ですね。立ち上がりはしばらく時間が必要なようです。
少し時間が経過してから今度はルーティング情報も確認してみます。
# RTX1210で実施 > show ip route 172.20.0.0/16 172.20.0.1 LAN1 implicit 172.25.0.0/16 xxx.xxx.xxx.xxx TUNNEL[1] BGP path=10124
無事にルーティングも追加されました。
改めてdigとpingも試してみましょう。
# localhostで実施 $ dig fuga.tagbangers.co.jp @172.25.0.200 +noall +answer ; <<>> DiG 9.8.3-P1 <<>> fuga.tagbangers.co.jp @172.25.0.200 +noall +answer ;; global options: +cmd fuga.tagbangers.co.jp.3600INA172.25.10.50
# localhostで実施 $ ping 172.25.0.200 PING 172.25.0.200 (172.25.0.200): 56 data bytes 64 bytes from 172.25.0.200: icmp_seq=0 ttl=125 time=18.798 ms 64 bytes from 172.25.0.200: icmp_seq=1 ttl=125 time=18.784 ms 64 bytes from 172.25.0.200: icmp_seq=2 ttl=125 time=16.522 ms
ということで無事に名前解決もできるようになりました。
おわりに
結論ですが、RTXでのBGPの設定有効には、ルーターの再起動かbgp configure refreshコマンドが必要です。
それでは、よいRTXライフをお送りください!