# ICTSC2021 夏の陣 参加記 ICTSC2019から3年連続の出場で、ついに優勝した(キャリーしてもらった)のでwrite upを書きます。 ## 問題 ### [なんでだ!?](https://blog.icttoracon.net/2021/09/03/%e3%81%aa%e3%82%93%e3%81%a7%e3%81%a0%ef%bc%81%ef%bc%9f/) ![](https://i.imgur.com/4B7m8nY.png) [ICTSC公式サイト](https://blog.icttoracon.net/2021/09/03/%e3%81%aa%e3%82%93%e3%81%a7%e3%81%a0%ef%bc%81%ef%bc%9f/)より引用 条件の「ルータのconfig を変更してはいけない」を「HostAしかいじれない」と解釈したせいで終わりました。が、逆に「HostAの静的ルートが仮想IPを向いていないんだろうなぁ」とアタリがついたので良かった。 <details><summary> カスの提出</summary> とりあえずVRRPの設定見るかーと思って見たところ、VRRPがうまく組まれていない。「なんでだ!?」って声が出た。configをいじらずにVRRPを組むことはおそらく不可能なので、とりあえずhostAからRTBに静的ルートを貼って提出。50/150点が返ってきてまた「なんでだ!?」が出てしまった。再展開したらVRRPが完璧に組まれていた。「なんでだ!?」(おそらく初っ端に再展開を引いてしまったんだと思う。ネットワーク系は複数VMが絡むので仕方ない...まぁ運負けということで。) </details> 一応pingをそれぞれ通してみると、以下の青矢印が通らなかった。(カッコ内のIPは仮想IP) ![](https://i.imgur.com/lkFLSX4.png) HostAの静的ルーティングを見ると192.168.19.128/25は192.168.19.2へ飛ばすようになっていたので、RTA-SWB間が死んでると断定。 以下、青矢印のpingが通った想定ルートと死んでいる部分 - HostA->SWA->RTA[->]SWB->RTB - RTA[->]SWB->RTB - RTA[->]SWB->HostB 問題の終了条件が「デフォルトゲートウェイの冗長化をして、HostA から HostB(192.168.19.129) に ping が通るようにしてほしい」となっているが、競技中は(多分)「HostA から HostB(192.168.19.129) に ping が通るようにしてほしい」しかなかったので、とりあえず静的ルートをHostA->RTBに飛ばすかと思い、以下の様に送った。 ``` この問題ではRTAからSWBへの物理線に問題があるなどして該当部分でパケットロスしており、HostA->SWA->RTA->SWB->HostBのルートが使えなくなっていることが原因と考えられました。 そのため、以下の手順でHostAから192.168.19.128/25のネットワークに対してnext-hopがRTBになるようにstatic routeを張ってあげることで疎通確認が取れました。確認のほどよろしくお願いします。 ### 手順 1. HostAのRTAに対してのstatic routeを削除する。 user@HostA:~$ configure [edit] user@HostA:~$ del protocols static route 192.168.19.128/25 2. HostAのRTBに対してのstatic routeを追加する。 [edit] user@HostA:~$ set protocols static route 192.168.19.128/25 next-hop 192.168.19.3 commit save ``` 50/150点。**なんでだ!?** 冗長化したいのはわかるが、HostAの設定を変えるだけではどうしようもないだろうと考えながら、RTA, RTBの設定を眺めていると192.168.19.1に対してpingを飛ばしてヘルスチェックをしていることがわかった。 これがおかしいのはわかるが、Routerの設定は変更できない(と思い込んでいた)のでHostAに対するpingを弾いてむりやりRTBのルートを通るように奮闘し、実装できず。一日目終了とともに「なんでだ!?」に侘びポイントが配られた。 **なんでだー!?!?!!!?!?** 一日目、僕は侘び点をもらっただけでした... ### [インターネット契約って大変だ!](https://blog.icttoracon.net/2021/09/03/%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e5%a5%91%e7%b4%84%e3%81%a3%e3%81%a6%e5%a4%a7%e5%a4%89%e3%81%a0%ef%bc%81/) 他のRoutingの問題は@minoeru_xavierがやってくれたので、DHCPv6と殴り合う他なくなっていた。 Routerにとりあえずggって出てきた ``` show dhcpv6 server leases ``` を打ったら、pythonがエラーを吐いていた。 これを治すんだな多分と思ったのが運の尽き。今思えば多分これが問題文にある ``` vyosの仕様上、DHCPv6 PDの使用時に委譲したプレフィックスのルートがルーターに注入されないバグがあります。それは仕様のため問題とは関係ありません。 ``` だったんだと思う。うんうん唸りながら百億年かかり、@minoeru_xavierがSLAACのRAのPrefixおかしくないすか?って言ってくれたので言われるがままに直し、DHCPv6のエラーが出てるし部分点かなーと思って提出したら満点だった。そんなー ``` この問題ではRAのprefixが間違っていたため、SLAACでアドレスが割り振られていませんでした。そこで以下の設定を行ったところ、正しくアドレスが割り振られました。ご確認のほどよろしくお願いします。 ## 手順 $ configure $ del service router-advert interface eth1 $ set service router-advert interface eth1 prefix fd9b:b0bc:3e87:e000::/64 $ commit $ save ``` ## 終わりに 結局3年間で全然成長しなかった感じある。まぁ普段Windows serverとActiveDirectoryしかいじってないのでそれはそうという感じではあるけど。そして日本語をもっとうまくなろうと思いました。競技はめちゃくちゃ楽しかったです。運営の皆様ありがとうございました。 ## 蛇足 競技直前にRFAをするなどして全身汗だくになり、洗濯機にぶちこんだら着る服がなくなってしまい、パンイチコーディング部になってしまいました。合宿にはたくさん服を持っていこう!