シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

中継回線メンテナンス対応方法を見直しました

シナプスの技術部ネットワーク課の末吉と申します。

シナプスでは、東京/大阪の2ヶ所で他のASと接続をしており、鹿児島から東京/大阪までは回線事業者の複数の専用線を利用しています。 その専用線の1つが、メンテナンス等で利用する事ができない場合、お客様のインターネット接続に影響が発生しないよう、他の専用線にトラフィックが流れる様に迂回をさせています。 昨年の大阪POPを開設後、それまでの方法では問題が発生した為、中継回線メンテナンス対応方法を見直しをしました。

中継回線メンテナンス対応方法

大阪POP開設前のネットワーク構成

大阪POP開設前は下記の様なネットワーク構成でした。
f:id:ksueyoshi:20200912165802p:plain
緑の線がトラフィックの流れとなります

トラフィック迂回方法

例えば回線事業者2の回線でメンテナンスがあると仮定します。 f:id:ksueyoshi:20200912182106p:plain

回線事業者2の回線を終端している上位ルータを切り離す事により、回線事業者1のみにトラフィックが流れる様に迂回を行っていました。

大阪POP開設後の問題

大阪POP開設後に何が問題になったのかを説明します。

大阪POP開設後のネットワーク構成

大阪POP開設後のネットワーク構成となります。
f:id:ksueyoshi:20200912173614p:plain
大阪向け回線は1度スイッチにて終端し、そのスイッチから上位ルータ2台に接続しています。 理由としては、上位ルータで大阪向け回線を直接終端すると、上位ルータ1台で2回線分を終端する事になり、その上位ルータのメンテナンス/障害時は1回線のみとなり、帯域が足りなくなる可能性がある為です。

東京向け中継回線メンテナンスの場合

東京向けの回線は回線事業者1, 回線事業者2がありますが、回線事業者2の回線でメンテナンスがあると仮定します。 f:id:ksueyoshi:20200912173633p:plain
今まで通り上位ルータを切り離すと回線事業者2へのトラフィック迂回は出来ますが、大阪向けの一部のトラフィックが流れず帯域が有効活用できません。

大阪向け中継回線メンテナンスの場合

f:id:ksueyoshi:20200912173645p:plain
大阪には上位ルータ2台とも接続している為、上位ルータを切り離すとメンテナンス対象以外の回線でもトラフィックも流れず(サービス全停)、今までの方法ではトラフィック迂回ができません。

問題まとめ

問題を纏めると下記の様になります。

  • 東京向け回線メンテナンスの場合
    • 従来の方法でトラフィック迂回は可能だが大阪向け回線の帯域が有効活用できない。
  • 大阪向け回線メンテナンスの場合
    • 従来の方法ではトラフィック迂回が出来ない。

少なくとも大阪向け回線メンテナンスのトラフィック迂回方法に関しては再検討が必要であるとわかりました。

メンテナンス時にどうするべきか

  • メンテナンス対象回線向けのトラフィックのみ迂回させたい
  • 使用可能な回線にはトラフィックを流したい
  • メンテナンス対応は手順をなるべく統一したい

上記を考慮した結果、上位ルータを切り離すのではなく、上位ルータのBGPピアを切断しトラフィックの迂回をする方向で検討する事にしました。

BGPピア切断方法

BGPは、ピアを張るルータ間で179/tcpを利用して通信を行います。 今回新たに検討した内容は、そのBGPピアで使用する179/tcpのパケットを、ルータのACLで落とすことでBGPピアの切断させる方法です。

ACL

ACLのInbound側に下記を追加する方法で実施しました。

deny tcp [対象ネットワークアドレス] [ワイルドカード] eq 179 host [シナプスIPアドレス] ・・・シナプスからのピア先に送ったパケット分 
deny tcp [対象ネットワークアドレス] [ワイルドカード] host [シナプスIPアドレス] eq 179 ・・・ピア先からシナプス宛に送ったパケット分

Inbound/Outboundで分けてもいいですが、両方設定変更するより片方のみ設定した方が、トラブル/設定箇所も少ないと考えInbound側に設定しました。

BGPピア切断(ACL設定)

すでに上位ルータに設定しているACLがありますので、そこに2行挿入する形で設定しています。

 1 deny tcp [対象ネットワークアドレス] [ワイルドカード] eq 179 host [シナプスIPアドレス] 
 2 deny tcp [対象ネットワークアドレス] [ワイルドカード] host [シナプスIPアドレス] eq 179 

シナプスではACLシーケンス番号は10で始まり10間隔で設定している為、上記の様にACLの1番目、2番目に挿入する事で他のACL設定を書き換える事もなく手順を固定する事にしました。

BGPピア切断解除(ACL設定戻し)

戻す場合は、挿入した設定を削除するだけです。

 no 1  
 no 2 

ただし、設定から削除するまでに機器の再起動またはACLシーケンス番号の振り直しをした場合は、シーケンス番号が変更されるため注意が必要です。

実際にやってみて

現状では特に問題は発生しておらず、回線メンテナンス対象の回線のみトラフィック迂回をする事が出来ています。

まとめ

今回、メンテナンス方法を見直す事により、帯域の有効活用や新しい構成でのトラフィック迂回が実現できました。 機会があれば、他社さんと回線メンテナンス時のトラフィック迂回方法について意見交換し、今後、更により良いトラフィック迂回の方法を検討してきたいと思います。