10分でわかるJANOG53会場ネットワーク 〜ゆるくいこう by 岡田〜
この記事は、2024年1月17日(水)に行われた「さくらの夕べ in 福岡」における発表を編集部にて記事化したものです。
はじめに
JANOG53ネットワークチームの鬼塚です。本日は「JANOG53 NOC BAKUCHIKU 〜10分でわかるJ53 NOC〜」というタイトルで発表します。今回さくらの夕べで話すにあたり、本番3時間前ぐらいからNOCの各チームに作っていただいた、心のこもったスライドをもとにお話しします。
NOCチーム設立の経緯
JANOG53のNOCが始まったきっかけをお話しします。
自分は長崎県立大学の岡田研究室に所属してるんですけども、本番の約1か月前ぐらいに、JANOGの運営委員でもある岡田先生から「急な話ですが、JANOG53のNOCを私と佐々木健さんでやることになりました。1か月でJANOGの会場ネットワークを作ります」という連絡がありました。「参加できる方はリアクションください。月曜日にはキックオフやります。1週間後には会場下見をやります。2,3週間後にはホットステージ(※)です」という駆け足のスケジュールでした。
※ホットステージ:本番と同じ機材構成でシステムを組んで動かしてみる予行演習
バックボーンネットワーク
今回のバックボーンネットワークの構成はこんな感じになってます。
左側が長崎にあるAS146979ですね。これがSUNDAICHIといって、長崎県立大学が構築しているバックボーンネットワークになります。そこからQTnetの10Gbps回線2本を利用して博多国際展示場に引っ張ってきています。ちなみにこのAS146979ではBBIX、JPNAP、JPIXと接続しており、大阪と東京に接続されています。
今回なぜ長崎県立大学のASを使っているかというと、/24のグローバルアドレスを使いたいからです。自分たちのサーバでも/27とかを出してもらって、DNSを立ててDoH(DNS over HTTPS)をやりたいとか、外向けにWebサービスを公開したいとか、そういうことにグローバルアドレスを使っています。あとNATをするためにも利用しています。構成図のもう少し詳しいものも載せておきます。
こんな構成なのでやはり速度は出ます。皆さんぜひ会場でスピードテストをしてみてください。快適な通信ができるかと思います。
L2/L3
L2/L3の構成はこのようになってます。
上位のルータ/スイッチをBGPで結んでいて、L2が図の右側のようになっています。全部で16台の機器で構成しています。
L2/L3チームでは本番前日に障害があったようです。サーバチームの隣がL2/L3チームなんですけど、「ループした!」みたいな声が聞こえてきて、何が起こったかというと、LACPにおいてLAGが成立する前にトラフィックが流れたのでループしたらしいです。対策として、光モジュールを片系ずつ挿入することで障害を回避しました。
サーバ
DNS
サーバチームの話題としてはまずDNSですね。DNSはこんな構成になってます。DNSサーバが2つあって、それをkeepalivedで冗長化しています。そして、4つのDNSリゾルバにクエリを投げて、正常時は左の片系、障害時には右の片系に行くといった形になってます。まとめると常にDNSが4台動いていてロードバランスするといった形になってます。
サーバチームは潤沢にリソースがありまして、メモリは総計1.2TBぐらいあって、ハードディスクは40TBをRAIDを使って実質20TBのストレージとして使ってます。今回はMIXIから2台、NTTコミュニケーションズから2台、CiscoからESXiライセンスやvSphereなどをお借りしています。OSにはAlmaLinuxを使用しています。
ここでお伝えしておきたいこととして、事前検証のためにさくらのクラウドを使わせていただきました。検証環境としてすごく役に立ち、チームとしてもすごく盛り上がりました。この場を借りて感謝の意を述べたいと思います。ありがとうございます。
DHCP
それからDHCPですね。DHCPのソフトウェアはKeaを使用してまして、NOC部屋は/24、ゲストネットワークは/19でDHCPサービスを提供しています。本日(1月17日)最大のリース数は1770でした。
NTP
NTPについてはセイコーソリューションズからTS-2950をお借りして、GPSアンテナをNOC部屋の窓の方に立てて、23個のGPSから時刻を収集してNTPの時刻同期に利用しています。NOC部屋に来ると実際にきのこアンテナとNTPサーバを見ることができます。
監視
監視はGrafanaとPrometheusを使っています。node-exporterをDNSやDHCPに入れて、各VMが生きているかどうかを監視しています。ネットワーク機器はsnmp-exporterで監視しています。これもNOC部屋に来ると見ることができます。
netboxに登録されているIPアドレスへのping監視
NOCをやっていると、皆がどのIPアドレスを使ってるかっていうのがすごくわかりづらいです。だいたいスプレッドシートなどで管理していますが、見づらかったり、どのセグメントがどうなってるかとか誰が使ってるかとかすごいわかりづらいです。そこで今回はnetboxというサービスを自分で立ち上げて管理しました。ここにIPアドレスを登録しておくと、そこから自動的にホスト名などの情報を持ってきて、さらにpingを打って自動監視することができて、さらにAPIなども叩けるのですごく便利です。今回のNOCでは約130台のホストがnetboxに登録されて観測されています。
Syslogの収集
Syslog監視も行っています。Promtailを設置して、rsyslogでPromtailに送信した後、Grafana Lokiにログを送信して監視しています。
アクセスポイント
APのOSが古すぎる
アクセスポイント(AP)チームの作業は、まずインシデントから始まりました。APをアップデートできないっていう問題がありまして、もともとCiscoのAPはWLC(無線LANコントローラ)に接続すると自動的にOSのバージョンアップがなされるんですけど、APのバージョンがあまりにも古すぎてアップデートができないという状況でした。古いと言っても数年前のバージョンで、そんなに年数は経っていないのですが、バージョンとしては対応してなかったです。
そこで、いったん古いバージョンのAPに対応するWLCを用意し、そちらで更新をかけてから、本番用のWLCに接続して更新するという手順が必要でした。
IPアドレスの重複割り当て
それから、これが意外と気付きづらかったインシデントなんですけども、異なるAPに同じIPアドレスを振っていて、そのせいでAPが立ち上がってもすぐに使えなくなるという事象が発生しました。原因調査に1日ぐらいかかったんですが、スイッチの方を見たらそちらも赤いランプが点滅してたので、同じIPアドレスを使ってるんじゃないかということで調べたらやっぱり同じIPアドレスを割り当てていたことがわかって解決しました。
Cisco DNA Centerでの監視
Cisco DNA Centerでも監視していて、今回の接続クライアント数は最高で1300台を突破しました。だいたい昼食の時間帯に皆さんスマホやPCを使われるようです。
こんな感じでヒートマップみたいなものが表示されて、これで会場内のどこにクライアントが多いかがわかります。これはソフトウェアでどこに壁があるかなどを設定してあげると、それを認識して、ここにAPを置いたらこういう電波強度になってこの辺の人が使いづらいとか電波強度が弱いといったことを図示してくれます。AP同士の電波干渉も見てくれます。
ケーブル
最後にケーブルチームです。ケーブルチームはたぶん一番大変だったと思います。
今回の会場の特徴として、壁のコンセントが使えません。つまり構内配線が使えないので、すべて自分たちでケーブルを這わせないといけないということで、地を這い、空中配線もして、ケーブルの総延長はUTPだけでも約2kmになりました。ここ(さくらインターネット福岡オフィス)の近くに大濠公園という、福岡で一番有名な公園があるんですけども、そこの一周が2kmなので、だいたいそれぐらい引いてます。総施工時間は1.5日を要しました。
皆さんこうやって100本以上のケーブルを作ってテスターで検査して使いました。
ケーブルチームのポリシーは、まず第一に安全に、限られた時間の中で迅速に、ていねいに真心を込めて、ケーブルへの思いやりを忘れずに作業する、だそうです。
まとめ
皆さんこの発表をご覧になって、きっとNOCチームに関心を持ったと思います。JANOG53 NOCチーム「BAKUCHIKU」でTwitterをやっていて、JANOG53でユーザ検索すると一番上に出てきますので、ぜひフォローをよろしくお願いします。ありがとうございました。
発表を終えて
今回のスライドは発表当日に各チームに頼んで作っていただきました。「ごめん、あと3時間後に発表なんだけど作れる?」というお願いに文句ひとつ言わず、忙しい中で最後の調整まで対応していただきました。(ありがとうーー!)
今回、無事に約3000人の参加者にネットワークをお届けできたことをうれしく思います。12月下旬から駆け抜けた1か月はとても刺激的でした。駆け抜けすぎてJANOG後は皆ダウンしている感じです。それほど皆それぞれのチームで個性を発揮し、自律分散協調していたと思います。
また、NOCチームやNOC部屋を訪問された方々など、いろんな方との繋がりが生まれたことがとても楽しかったです。またどこかでお会いできることを願っています。
最後に、今回NOCを支えてくださった皆様、本当にありがとうございました!!
Thank you everyone───────