dip Engineer Blog

Engineer Blog
ディップ株式会社のエンジニアによる技術ブログです。
弊社はバイトル・はたらこねっとなど様々なサービスを運営しています。

pixiv × PR TIMES × dip LTチャレンジでLT登壇しました!

はじめに

こんにちは! 24新卒として4月にディップに入社し、バイトルを中心とした商用サービスのインフラを担当しているシステム基盤課の大賀と申します。

2024年5月28日にピクシブ株式会社株式会社PR TIMES・ディップの共催で24新卒を中心に3社のエンジニアが集まり、LT、交流を行うイベントに参加してきました。 ディップからは3名の新卒社員がLTに登壇し、技術やキャリアプランについての発表を行いました! 私はネットワーク初学者に向けて「インターネットのDeepな仕組み」というテーマで登壇しましたが、
5分の発表時間で話しきれなかった事も多く、その内容も含め発表内容を共有します!

登壇風景

1.Webサービスの使われ方:インターネットってそもそも何?

普段、私たちはスマホやPCで検索したり動画を観たり求人を探してみたりと様々なWebサービスを利用しています。システムの観点でWebサービスがどのような仕組みで利用できようになっているのかというと、例えば弊社のWebサービスのバイトルをPCのブラウザで見る場合、ブラウザに入力されたURL(https://www.baitoru.com)がDNS(Domain Name System)によってドメイン名(baitoru.com)からバイトルで運用されているサーバーのIPアドレスに変換され、ブラウザとバイトルのサーバーが双方向に通信できるようになることで実現されています。 ただし、それにはインターネットに接続することが必須条件である訳ですが、そもそも「インターネット」というモノは存在せず、様々な規模のネットワークが複雑に繋がり合って、任意のサーバへ自由に接続できる状態、ネットワークのネットワークがインターネットの実体です。

3.任意のサーバと通信できる仕組み

任意のサーバと通信できる仕組み

ここからは具体的にネットワークの疎通性を確保するための流れと技術を生のデータの流れを追って説明します。 通信するデータは自分の端末と同じネットワーク内ではフレーム、その外ではパケットと呼びます。 まず、ユーザが接続している有線/無線LANは決められたデフォルトゲートウェイという位置付けのルータという機器にフレームが流れます。 デフォルトゲートウェイのルータは受け取ったフレームをパケットの形式で予め登録されている経路情報(この宛先の通信に通信するにはこのルータへ転送するといった内容)を基に宛先のサーバが所属しているネットワークのルータへ連続的に橋渡しをします。これをルーティングといいます。 最終的にサーバへ届いた通信をサーバが内容に沿って処理し、今度はその応答を返すために逆方向に通信し、ユーザの端末はサーバからの情報を取得できます。

4.世界中のパケットの流れと担当事業者

パケットフロー

かなり端折って説明してしまいましたが、インターネットへの通信はこのように構成されています。 ただし、この方式でただ通信するにも、世界中には数えきれない程のネットワークと端末が存在しているため、非常に管理、運用も難しく、効率も悪いです。 このため、世界中のネットワーク事業者はその担当領域ごとに、図のような流れで大規模なネットワークを抱え、効率的かつ正しく管理されたネットワークの繋がりでインターネットを構成しています。 (図内の用語の具体的な内容の説明は割愛させていただきます)

5.ネットワーク技術とプロトコル

ここで、非常に複雑で難しいネットワーク技術の中でも、ベースとなる非常に重要な技術であるルーティングとルーティングプロトコルについてご紹介します。 上述した内容にある経路情報は、ルータの中に存在するルーティングテーブルというデータベースに保存され、その情報を基にパケットをルーティングします。 ルーティングテーブルは以下のような形式になっています。

ルーティングテーブル

例えば、192.168.100.0/24が宛先の通信は10.0.0.254のIPアドレスへルーティングする、といった内容が優先度順に並んでいます。 通信事業者がこの経路情報をルータへ登録して初めて自分の外のネットワークへパケットが流れています。このように経路情報を手入力ベースで登録してルーティングを行うことをスタティックルーティングといいます。 ただし、世界中の機器と通信するのに必要な経路情報は110万経路ほど存在しており、手ではとても登録できません。 そこで重要な技術がダイナミックルーティングです。 ダイナミックルーティングでは、機器への圧倒的に少ない設定量で必要な経路情報を機器間で自動で交換し、ルーティングを行うことができるようにできる技術です。 ルーティングプロトコルといい、ダイナミックルーティングを行うためにいくつか存在している仕組みがありますが、よく使われるOSPFとBGPについて簡単にご説明します。

・OSPF

OSPF

OSPFはIGPという種類のプロトコルで、主にISP(プロバイダー)や規模の大きいネットワークを保有している企業の内部で管理している複数のルータ(ネットワーク)同士のルーティングを構成するために利用されます。 相互に接続されているルータの接続口に対して接続先のルータと経路情報を交換したい旨の設定を登録すると、隣のルータとの接続状態を交換し、その後お互いが持つ経路情報を交換します。定期的に疎通性(双方向に通信できるか)を判断して経路を交換するため、接続状態に基づき経路が自動で更新されていきます。

・BGP

BGP

BGPはEGPという種類のプロトコルで、主にISP同士やデータセンター↔︎ISPなどの大規模なネットワーク同士で利用されます。 基本的に大規模なネットワークを保有する組織はAS番号といい、IANAからブロックを割り当てられ(日本では)JPNICから世界で唯一のネットワーク組織ごとの番号を割り当てられています。BGPはそのAS間で通信するために重要な技術です。 ネットワークの終端(あるいは他のネットワークとの接続点)に存在するBGPで経路情報を交換するルータはTCPという双方向で通信を行うプロトコルで交換先のBGPルータと経路情報を交換し、定期的に経路の更新を行い宛先に継続的に通信できることを保証しています。

このような技術がベースとなり、インターネットで当たり前にサービスを利用することが可能となっています。 以上が私が登壇し、発表した内容でした。

会場の雰囲気

今回はピクシブ様の東京オフィスでのオフライン開催でした! 会場ではお食事、お菓子をご提供いただき、ゆるめな雰囲気で楽しみながら参加させていただきました! 他の2社の方々も新卒入社前から取り組まれていたことや技術的な内容、ITから離れた内容まで非常に興味深く、発表のやり方も参考となった充実した時間でした! LTチャレンジ終了後は交流会へと移行し、貴重な他社の同期との交流機会もいただけました。

まとめ

私自身、さまざまなLT会に参加しLTを聴く場面はあったものの、自身でLTを行った経験は今回が初めてで、多くの面で気づきがありました! 短い時間でどれだけの内容をどのように説明できるかを工夫していくのは案外難しく、今後の業務や情報発信に強く活かせる学びを得られることができたと感じています。 弊社では第4回となる本イベントも含め、様々なイベント参加、交流、アウトプットの機会があり、今後もオープンな場でのコミュニケーションを積極的に行っていきたいと思うきっかけとなりました。

お読みいただきありがとうございました!