こんにちは!ICTSC8 問題リーダーの中西です。

大変遅くなりましたが、ICTSC8で出題された全問題の問題解説を公開します!
解けた問題は別解法の確認を、解けなかった問題は次回から解けるようになるために、是非勉強にお役立てください!

 


始まりの国

始まりの国には、様々な種族が住んでいる。エイトもこの国の出身である。
立地からか、外国との交流が盛んで旅人も多い。

永遠の国

エルフは魔法を使って生活を便利にすることが上手な種族である。
エルフの国はたくさんの村から構成され、村を指導する長は村人の尊敬を集めている。

謎の国 ICTSC

この国は未だに多くのことが謎に包まれている。
外国との交流は少なく、内情を知るものはほとんどいない。
一説では、政府が強大な力を持ち、魔法陣を使った交信を厳しく制限しているという。

荒廃の国

かつては栄えた国だったが、長く続いた内乱のせいで今は見る影もない。
治安は悪く、盗賊が人々を悩ませているという。

伝統の国

この国はドワーフを中心に構成されている。
ドワーフは何よりも繋がりを大切にしている種族である。
しかし自分の種族以外の人を冷たい目で見ることがある。

研究の国

この国では研究が盛んであり、教育にも力を入れている。
国の各地に学校があり、見習い魔導師たちが机を並べて勉強している。

ホビットの国

この国には、サーバが得意なホビットがたくさん住んでいる。 ホビットは商売が上手く、この国最大の会社であるホビットカンパニーは他国にもその名を轟かせる。

妖精の国

妖精の国がどこにあるのかは知られていない。しかし、たまに迷い込む者がいるという。妖精は様々なものに姿を変えて、出会ったものを惑わすと伝えられている。

 /
カテゴリー

問題文

エイト「早速だけど、ギルドに案内するね。ギルドっていうのは国を超えて様々な情報を交換するところなの。クエストの依頼もたくさん集まっているわ」

エイト「ほら着いた! ここがギルドよ。……あら、あのドワーフ、なにか考え込んでいるようね。ちょっと話を聞いてみましょう」

ドワーフ「魔法陣を構築したんやけど、上手くsshができへんねん。なんとかしてくれへん?」

エイト「ちょっと見てあげてくれない? あっそうだった……『魔法陣』の説明をしないとね。魔法陣はあなたたちの世界におけるネットワークのことよ。ネットワーク機器に関してはあんたたちの世界の物と一緒だから安心しなさい!」

起こっていたトラブル

192.168.200.253(2960-A)にsshするとconnection refusedと表示される。

トラブルの概要

vtyと呼ばれるネットワーク機器の仮想コンソールが枯渇していることにより、
sshしても仮想コンソールがないのでconnection refusedと表示されるというものでした。

採点基準

始まりの国の1問目ということもあり、sshができるようになれば方法は問わない、という採点基準で出題しました。

解法一覧

想定外な解法もありましたので、想定していた解法とともにご紹介いたします。

想定していた解法

  • show userなどでユーザー情報を確認し、clear line vty でvtyを解放する。
  • vtyへのアクセス制御設定

未想定だった解法

  • 秘密鍵の再作成を含む、sshの再設定

講評

解答は15チーム中14チームから来ており、採点基準を他の問題よりも多少低く設定していたため全ての解答が満点でした。
個々の解答を見ると connection refused というエラーメッセージのためなのか、
sshの設定が不十分あるいは未設定でsshできていなかったと判断したチームが数多くありました。
その際の不足している設定で transport input ssh との記載が多く見受けられましたが、
今回使用した機械では上記の設定を入れなくてもvtyが空いていればsshは可能になっていました。

14チーム中1チームだけvtyの枯渇について言及している解答があり、
状況をよく調べられていると感じました。

 /
カテゴリー

問題文

トラブルを解決したことで、宿の料金は無料になった。

エイト「お金も浮いたことだし、服を買いにいきたいの。近くに服屋さんはないかパソコンで調べるわ……ってめちゃくちゃ重たくて調べられない〜!」

エイト「たぶんトラフィック量が多いのね。服を買うために何とかできない?」

トポロジー図

トラブルの概要

AS65100からAS65300宛の通信(大会中はICMP)がAS65200を経由して行われていたため、
AS65200内のトラフィックが多くなっていた。

採点基準

BGPのピアを切断せずにAS65200内のトラフィックを削減すること。

解法

as-path access-listを用いてAS65100への広告経路に対してフィルタリングをかける

ip as-path access-list 1 permit ^$
router bgp 65200
neighbor 192.168.4.19 filter-list 1 out
neighbor 192.168.4.3 filter-list 1 out
exit

講評

6チームから回答があり、1チームが基準点、1チームが満点となりました。
基準点に満たない解答にはBGPのピアを切断したり、AS番号を変更したりしてトラフィック量を減らす回答が見受けられました。
しかし、BGPピアの切断やAS番号の変更は行ってよいものではないため、0点の解答と判断しました。
BGPピアを切断しないこと、AS番号の変更をしてはいけないことを注意事項として問題に明記していればよかったと反省しています。

その中、 想定していた解答ではありませんでしたがas-path prepend を用いてトラフィックを削減した解答があり、BGPのピアを切断せずにトラフィックを削減していたことで満点としました。
BGPはインターネットで欠かせない技術であるため、問題を通してBGPへの理解を深めていただければ幸いです。

 /

問題文

スイッチの問題を解決した後、ドワーフに話しかけられた。

ドワーフ「いや~まさか本当にトラブルを解決するとはビックリしたぜ。ついでにもう一つ頼まれてくれないか?」

ドワーフ「実は魔法陣の構成を 892j から 1941 に変更して、同じ呪文を書き込んだんだがNAT-PTが動作しないんだ。頼む……この通りだ」

エイト「コンフィグを使いまわしたってこと? そんなことするから動かないのよ。悪いけど、あんたたちやってあげてくれない?」

起こっていたトラブル

NAT-PTが機能していないため、v4の宛先にpingが飛ばない。

トラブルの概要

Cisco Express Forwardingと呼ばれるスイッチング技術がCiscoの機器ではデフォルトで有効になっているのですが、
この技術がNAT-PTに対応していないことで、pingが飛ばない状況になっていました。

採点基準

  • NAT-PTを機能させること
  • IPv6アドレスのみを持つPCからIPv4のホストに対してpingが通ること

解法


no ip cef
no ipv6 cef

上記のコマンドでcefを無効化する。

講評

この問題を解放した時期の差はありますが、全てのチームが解放しているにもかかわらず、
8チームからしか解答が来ていない問題となっていました。
解答をしてくれたチームで見ると、8チーム中7チームが満点となっていました。
NAT-PTはIPv4/IPv6の共存技術の中でもあまり知られていない技術だと個人的に思っているので、
皆さんの調べる力を試す問題として出題しました。

最終的に7チームが解答未提出となり、チーム間での調べる力の差なのかなと感じました。

 /
カテゴリー

こんにちは!始まりの国 第二のトラブルの問題解説をします。

この問題はLinuxの機能であるiproute2を使うことでLinuxでもポリシールーティングのような機能を使うことができ、それが原因でGoogle public DNSに接続できないという問題でした。ウォーミングアップ問題の割に解答率が低くなってしまい、知らなきゃ解きにくい問題だったので少し申し訳ないことになってしまったと反省しています。

問題文

問題文は以下の通りです。

エイトが一行を案内していると、ギルドでの活躍が伝わったのか、エルフのお姉さんが話しかけてきた。

エルフ「サーバに呪文を書き込んだんだけど、DNSの魔法が動いてないっぽいのよ。ドワーフのおっさんから話は聞いたけど、君たちバリバリできるんだって? いい感じにしてくれない?」

エイト「ちょっとあんたたち呼ばれているわよ。……『呪文』が何かわからないって? 呪文は……そうねたしか設定ファイルとかコンフィグって意味だったと思うわ。はやく解決してきなさい」

また、補足事項として以下のような情報を与えました。

Google public DNSの8.8.8.8もしくは8.8.4.4で名前解決をできるようにしてください。

問題の再現

以下の内容を /etc/networking/if-up.d/static-route に記載して再起動を行うことで、 8.8.0.0/16 に接続できなくなります。

ip rule add table 100 prio 200
ip route add 8.8.0.0/16 via 127.0.0.1 table 100

設定された内容は以下のコマンドで確認することができます。実際に試してみるとよいかもしれません。

# ip rule show
# ip route show table 100

何故このようなトラブルが起きるかというと、Linuxのデフォルトのルーティングテーブルは ip rule show では優先度のpriorityが低く設定されています。それよりも高い優先度でヌルルーティングされてしまったため、パケットが送られないように見えているというわけです。また、 ip rule はあまり見るものではないので気づきにくかったかと思います。

採点基準

この問題の採点基準は以下の3点になっています。

  • ルーティングされていないことに気づく
  • 修正しつながることを確認する
  • ip rule が原因であることに気づく

また、どんな形でもGoogle public DNSにつながり名前解決できていることを確認できれば次に進むことができるようになっていました。

解答例

  • pingtraceroute を使い、DNSが引けない原因がL3疎通性にあることを確認する
    • その際、宛先が 8.8.8.8 のパケットに対して一切外のデバイスから返答がないことからヌルルーティングなどをされていると検討を付ける
  • ip route などの現在のルーティング情報や /etc/networking/ 配下などネットワーク系の設定をするファイルを探し原因を特定する
  • /etc/networking/if-up.d/static-routeをバックアップを取ったうえで削除し、 ip rule del table 100 とすることでGoogle public DNSにつながることを確認する

以上の点を作業経過とともに報告書形式で提出してもらえれば満点を与えました。

講評

冒頭でも書きましたが、iproute2を一切触ったことのない人にとっては非常に解きにくい良くない問題だったかなと反省しています。

ただし、原因について言及せずに /etc/networking/if-up.d/static-route を削除して再起動したら治りました、という回答が多く見られました。その際には

ip rule が原因であることに気づく

という採点基準をもとに減点をしています。大抵の場合はトラブルをどんな形でさえ解決すれば次の問題に進むことができます。しかし、次回以降参加する際にはとりあえず治ったからOKではなくトラブルの原因について言及すると満点を得ることができ、上位を狙うことができるかと思いますので参考にしていただきたいと思います。