ICTSC参戦総括(仮)

Dec 17, 2018 - 1 minutes
はじめに この記事は、信州大学 kstm Advent Calendar 2018 - Qiitaの17日目となります。 一昨日、ICTSC2018の二次予選が開催され、私はサークルの名前を背負ったチーム名kstmの一員として参加しました。 二次予選が通過できたかもわかりませんが、いずれにせよこれが最後のICTSCなので、個人的に行うここまでの参戦総括、 加えて、技術トレンドと出題の兼ね合いのようなポエムを綴りたいと思います。 ICTSC2018 予選の章までかなりポエムなので、write upみたいなものを見たい人はそこまで飛ばしてください。 ICTSC(ICTSCトラブルシューティングコンテスト)って何? ICTの多岐にわたるトラブルを最大5人チームで解決していくコンテストです。 守備範囲はインフラだけでなくサーバー、Webアプリ、セキュリティまで含まれます。 SECCONほどではないですが、ややIT雑技団なコンテストです。 公式の説明は下記URLをご参照ください。 ICTSC | ICT トラブルシューティングコンテスト ? 全国の専門学校生、高専生、大学生、大学院生を対象とした サーバー・ネットワークのトラブルシューティングや運用技術をチーム単位で競うコンテストであり、競技参加選手だけではなく、コンテストの企画、運営も学生が行う、学生の、学生による、学生のためのコンテストです。 ICTSC5 様子見で3人チームで突撃するところ、諸事情あって2人で突撃することになってしまい、コテンパンにされて帰った記憶があります。 トラブルシュートはとても時間がかかる作業ですし、5人を前提とされた分量、そして問題の質に圧倒されてしまいました。 サーバーはある程度触れるものの、スイッチやルータの経験値が圧倒的に足りない。 背景にある理論をわかっていようが、設定したことない人間がトラブルシュートできるわけがない。 本当に身をもって学んだ気がします。 今にして思えば、既存のサークル保有の機材も含め、顧問の先生や周辺の方々からの機材提供を受け、さらに経験を積んで行く良いきっかけになったと思っています。 ICTSC6 フルメンバーで初参加の回。チームをどう作るか、仲間をどう育てるかという点も考えて参戦したところ、2度目で入賞をせしめました。 サーバーとインフラの問題の配分が前回と特に変わらず、参加メンバーのスキルセットと出題形式に助けられて、広く浅くつまみ食いできたのも大きいです。 勝負は時の運、運も実力の内。人事を尽くして天命を待つ。といういうことです。これから一切受賞がありませんが、慢心とかそういうのではないです。 ICTSC7 ここで大きく出題形式が変わり、従来の「広く浅くつまみ食い」が不可能になったというのがあります。 確かに、トラブルシューティングは一番手元のトラブルが蓋をして、次のトラブルを隠していることがほとんどですので、より現実的になったというのはあります。 しかしながら、自腹で出場した代わりに、質の高い問題にその場で手を付け、体に入れた上で糧にして帰れるという利点が薄れてしまった気がします。 また、この回から計算機とネットワークの仮想化技術も出るようになりました。 当時から必須となりつつあるので、その出題傾向の変化は妥当だと思います。 加えて、前回出題されなかったIPv6問題も出題されるようになりました。 実際問題、NTTの光回線でもIPv6の運用が手軽になり、自宅でも簡単に運用できるようになっているので、対応できないと生き残れない状態になりつつあります。 多くの人がIPv6/IPoE(with DS-Lite)の参考にしたであろう下記の記事は、2016年4月。そして、ICTSC7は2017年3月なので、十分な余裕があると考えても良いでしょう。 てくろぐ: IIJmioひかりの混雑の理由とバイパス手段(IPoE・DS-Lite対応) ICTSC8 私は、インターンの関係で参加できず、残りのメンバーもチームとして成立させることが出来ず欠場となりましたが、 あとで確認した所、がっつりコードを読むアプリケーション問題が出てきたという実感があります。 全体の構成をみてポンという感じではなく、言語仕様などいろいろと絡んでいる味わい深い問題です。 インフラエンジニアだからといってコードが読み書きできないのならば、IT系エンジニアではない。 そういう風潮です。クラウドにおけるオートスケール、情報モデル化、スクリプトによる制御、当たり前です。 ICTSC9 ICTSC8で覚悟した以上に難しい傾向になって、対策しきれなかった感があります。 育成も兼ねて、2人の新人を入れて戦い、やや上位に入れたので、頑張れたとは思います。 あと、この回でトポロジー図(ネットワーク図)をちゃんと書くこと、モデリング言語的な意味での強力さを知りました。 ホワイトボードが用意されない大会で、図を引かずに脳内でvrfなどのデバッグを行っても、 慣れである程度はできるようになりますが、やはり漏れがあります。 散々時間を溶かした挙げ句、ネットワーク図を書いて辿ったところ、あっさり原因を見つけ、 2日目には一発設定という展開がありました。 VRFには気をつけよう! 一生忘れないでしょう。 ICTSC2018 予選 そして、卒業する後輩(以降、後輩Y)もいる中、新メンバーを2人(以降、後輩A、後輩N)迎え、4人で参加となった今回の大会。 一次予選では、高度化/高速化による低レイヤ回帰を印象づける問題が出てきました。 私はアセンブラをAVRマイコンで少しだけしか書かなかったので、とあるバイナリ問はセキュキャンに行った後輩Yに投げた記憶があります。 Read more ...

某有名VoIPネットワークの話

Dec 8, 2018 - 2 minutes
挨拶 最近冷え込みますね.私は,11月25日を最後にバイクを寝かせてしまいました. しかし,ここ最近まで市街地の道は全くドライな状態で, つい先日行った,実家への帰省もバイクで走りたいような路面でした. どうやら今年は暖冬のようです.でも寒いです. 今日の天気予報は雨まじりの雪になっています. そんなことはどうでもよくって,私はこの記事を 信州大学 kstm Advent Calendar 2018,8日目の記事として書きました. 信州大学 kstm Advent Calendar 2018 - Qiita 免責事項 責任が伴う箇所やミッションクリティカルな箇所での利用は想定していませんので,いろいろと設定漏れがあったりするかもしれません. この設定を実運用に用いられた場合の保証は一切致しませんので,その点ご注意ください. また,同様の環境での安定稼働ならば,Asterisk FreeSWITCH対応 ひかり電話ゲートウェイiGW-N01などもあり,そちらのほうが安定しています. 背景 こんな寒い日が続くならば,玄関から一歩も出ずに,暖房をかけるかあるいはコタツに潜り込むなどして, 一日中端末に向かって,進捗を生み出すなり,ゲームするなり,SNSに入り浸る等して,過ごすのが良さそうです. しかし,現実は非情であって,家から出なければならない用事は山ほどあります. 人間は社会性を持たなければならないのです. 家を出ると,当然ながら,自宅警備が疎かになって多大なデメリットを背負うことになるます.具体的には以下のように. 宅配便を受け取れない 自作PCに代表される自宅インフラが使えない 固定電話に出られない いずれも,技術によって対処が可能な時代になってきました. 1は宅配ボックス等によって 2はVPCやVPN等によって. 3に関しては,今回紹介するもので対処しようという話です. 具体的には,asterisk とVPNの合わせ技を使うことで,スマートフォン等をつかって, どこでもお家の電話に出られるようにしようという話です. VPNに関しては,SoftEtherを使っているので,接続性に関してはあまり問題はありません. SoftEtherがTCP/443を塞いで邪魔だとかいう人は下記のページが参考になると思います. nginxをTSL-SNI対応TCPプロキシとして使う inconshreveable/slt: A TLS reverse proxy with SNI multiplexing in Go asteriskってなんぞや asterisk 公式によると Asterisk is a free and open source framework for building communications applications and is sponsored by Digium. Read more ...

nginxをTSL-SNI対応TCPプロキシとして使う

Oct 10, 2018 - 2 minutes
以下の作業を実施. SoftetherとTLS-SNIなバーチャルホストを同居させる設定を行った. もっと丁寧な記事だったが,RAID1の/var/www/が私のミスで消し飛んだ上にこの記事はバックアップされていなかったのでこのようなものになった. 何卒ご了承いただきたい. # apt install libpcre3-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libgd-dev libgeoip-dev nginx #必要ライブラリのインストール # nginx -V #configureオプションを確認 # apt purge nginx && apt autoremove #用済み % ./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-QTAlz1/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module #--with_streamの=dynamicを削除, --with-stream_ssl_preread_moduleを追加 % make # make install # ln -s /usr/share/nginx/sbin/nginx /usr/sbin/nginx #デフォルトの場所にシンボリックリンクを置く # cat > /lib/systemd/system/nginx. Read more ...