派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【イベントレポート】エンジニアが生き残るためのテクノロジーの授業[第4回]「安定したネットワークを作る技術の基礎知識」

株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するイベントを、定期的に開催しています。

2018年7月18日のイベントでは「エンジニアが生き残るためのテクノロジーの授業」の第4回として「安定したネットワークを作る技術の基礎知識」を開催。

インターネットやLANなど、私たちの身の回りのネットワークが安定して通信できるのは何故か? その仕組みを支えるさまざまな技術の基礎について、増井さんならではの、分かりやすい語り口で解説しました。

f:id:itstaffing:20180910131752j:plain

■今回のイベントのポイント

・インターネットの合言葉「プロトコル」
・パケット交換のメリット
・データを正しく届けるための工夫
・メールの仕組みと暗号化
・IPv6の登場


【講 師】増井 敏克さん
▲【講 師】増井 敏克さん
増井技術士事務所代表。技術士(情報工学部門)。情報処理技術者試験にも多数合格。ビジネス数学検定1級。「ビジネス」×「数学」×「IT」を組み合わせ、コンピュータを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発、データ分析などを行う。著書に『おうちで学べるセキュリティのきほん』『プログラマ脳を鍛える数学パズル』『エンジニアが生き残るためのテクノロジーの授業』『もっとプログラマ脳を鍛える数学パズル』(以上、翔泳社)、『シゴトに役立つデータ分析・統計のトリセツ』『プログラミング言語図鑑』(以上、ソシム)がある。

インターネットの合言葉「プロトコル」

「外国人と日本人が、それぞれ英語と日本語でしゃべっても言葉が通じないし、みんながいっぺんにしゃべっても話が通じません。ネットワークもそれと同じです」(増井さん)

プロトコルがあると、いろいろなネットワークの構成に対応でき、たとえネットワークの構成や回線速度が違っても、互いに通信できます。

プロトコルを定めている主な組織に、次のようなものがあります。

f:id:itstaffing:20180910131717j:plain
▲無線LAN機器を購入するときに目にする「IEEE 802.11ac対応」などの表記は、IEEEが定めたプロトコルだったのですね

ネットワークは次のような役割別の階層構造になっています。増井さんによれば、OSI参照モデルの7階層よりも、TCP/IPの4層を押さえておいたほうが良いそうです。

f:id:itstaffing:20180910131720j:plain
▲プロトコルの階層と言われてもピンと来ませんが、私たちが手紙を出すときに、便箋に文章を書く、封筒に入れる、住所を書く、宛名を書く、郵便ポストに入れる、という手順と同様と考えると良いそうです

パケット交換のメリット

「パケット」という言葉を聞いたことがあるかもしれません。LANやインターネットでは、パケットを交換して通信を行います。このパケット交換の特徴は、従来の電話のような回線交換と比較するとわかります。

f:id:itstaffing:20180910131722j:plain
▲増井さんによれば「実は、意外といいかげん」で、パケットが相手に届かないこともあるそうです

このパケットを、どういう経路で相手に送るかを制御するのがルーティングです。

f:id:itstaffing:20180910131724j:plain
▲ルータは、受け取ったパケットを、どのネットワークに転送するかを制御している

増井さんは、よく「ルータとファイアウォールってどう違うんですか?」と聞かれるそうです。確かに、ファイアウォール付きのルータだと、その区別がつきにくいですね。

f:id:itstaffing:20180910131726j:plain
▲ルータはネットワークを分割して、ネットワーク間の通信を制御するもので、ファイアウォールはセキュリティ上の理由からアクセスの制限を行う目的のもの。それぞれ役割も動作も異なる

では、ルータとスイッチ、そしてハブはどのように違うのでしょうか。ルータはネットワーク層で働きますが、スイッチはL2(レイヤー2)スイッチならばデータリンク層で、L3スイッチならばルータと同様にネットワーク層で働きます。一方、スイッチ機能を持たないリピータハブは物理層で働きます。

ルータは、異なるネットワークやパケットの送信元、送信先を識別するためにIPアドレスを利用します。各コンピュータにどのようなIPアドレスが振られているかは、Windowsならばipconfigコマンドで、UNIX/Linux系OSならばifconfigコマンドで確認できます。

f:id:itstaffing:20180910131729j:plain
▲IPv4は8ビットの値を4つ並べたもので表されます。2進数は苦手です(涙)

ipconfigコマンドを実行すると、IPアドレスのほかに、サブネットマスクというものも表示されます。これは接続しているネットワークの範囲を示すものです。

f:id:itstaffing:20180910131732j:plain
▲でも、2進数のAND計算でネットワークアドレスがわかるんですね。苦手を克服しなきゃ!

このIPアドレスは人間にはわかりにくいので、ドメイン名という名前による管理が行われています。「〇〇.co.jp」とか「△△.com」とかいうのがドメイン名です。ドメイン名とIPアドレスの対応管理や利用時のアドレス変換には、DNS(Domain Name System)が利用されます。

f:id:itstaffing:20180910131734j:plain
▲今までバラバラに聞きかじっていたネットワーク用語がつながりました!

ところで、1台のPCがいろいろなアプリケーションで同時に通信が行えるのはなぜでしょうか。それは、アプリケーションごとに通信ポートを分けているからだそうです。

f:id:itstaffing:20180910131736j:plain
▲ウェルノウンポートの代表的なものは、最低限覚えておくと良いそうです

そのほかにも、より高度で柔軟性に富んだVLANやネットワークの仮想化についても説明してくださいました。

データを正しく届けるための工夫

ネットワークがつながった後は、データを正しく届けるための知識についてです。

TCP/IPのうち、TCPというプロトコルでは、スリーウェイハンドシェークという手続きが行われます。

f:id:itstaffing:20180910131739j:plain
▲SYN/ACKが返ってきても無視してSYNを送信し続けると、接続先のコンピュータは通信不能に陥ります。これが典型的なSYN flood攻撃の手口だとか

TCPには、パケットが届かなかったときのための再送制御や輻輳制御、フロー制御といった、通信の信頼性を高めるためのさまざまな通信規格が定められています。

一方で、信頼よりも速度を求める通信もあります。たとえば音声通話やテレビ会議、名前解決などです。こうした用途にはUDPというプロトコルが使われます。UDPもIPと組み合わせてUDP/IPとして通信に利用されています。

また、IPやEthernetなど、TCPやUDPの下位レイヤーでも、通信に関するチェックが行われています。

たとえばEthernetでは、MACアドレスを基に通信を行います。このMACアドレスを利用して、アクセスに制限をかけるMACアドレスフィルタリングという仕組みもあるそうです。

ここまでに登場した下位3レイヤーでの通信状況を確認するためのコマンドも示してくれました。

f:id:itstaffing:20180910131742j:plain
▲この4つのコマンドは覚えておいて絶対に損はないそうです!!

メールの仕組みと暗号化

アプリケーション層の例としてメールプロトコルについて紹介してくれました。

メールのプロトコルとして長らく使われてきたSMTP(Simple Mail Transfer Protocol)は、シンプルで便利な反面、セキュリティ面で不安があるそうです。たとえばSMTPのみでメールサーバを構築していると、いわゆるスパムメールが簡単に送られてしまいます。これを防止するためにOP25Bという仕組みも導入されているそうです。

f:id:itstaffing:20180910131744j:plain
▲OP25Bを設定することで、どこかのメールサーバに勝手に接続してスパムメールを送るといったことができなくなる

また、メールの送信経路上で盗聴される危険性もあります。そこで現在では、メールの通信経路そのものを暗号化するSMTP over SSLとPOP over SSLというプロトコルが普及しています。

IPv6の登場

先ほど紹介したIPアドレスはバージョン4に相当するものだそうで、IPv4と呼ばれています。しかしIPv4は古い規格で、ネットワークに接続する機器がこれほど増えることを想定していませんでした。IPv4で記述できるアドレスは43億個まで。もう何年も前から、アドレスの不足が叫ばれているのだそうです。

そこで登場したのがIPのバージョン6に相当するIPv6です。

f:id:itstaffing:20180910131747j:plain
▲IPv6は桁数も増えたので当面アドレス不足になることはないそうです

IPv6が登場した当初は、IPv4と互換性がなかったため、IPv6の機器をIPv4ネットワークに接続することができませんでした。しかし、現在はIPv4 over IPv6といったトンネリング技術や、1つの機器にIPv4とIPv6の両方のアドレスを割り当てるデュアルスタックなどの技術で、両者を混在して運用できるようになっているそうです。

f:id:itstaffing:20180910131750j:plain
▲あらためてインターネットやLANってよくできているな、と思いました

今回のイベントでは、ネットワークに関する知識を網羅することができ、全体像を把握することができました。普段何気なく利用しているネットワークの裏側を垣間見た思いです。基礎知識として、復習しておきましょう。