CS 6250: Computer Networks Exam 2

OMSCS Computer Networks の期末テスト対策

OMSCS 2024 Fall (秋学期) に履修している Computer Networks に関して、中間テストと同様に期末テストに向けてここまでの授業の内容を手短にまとめた。

Overall

ネットワークの基礎に関して、実装の課題を交えながら深く学べることを期待して 2024 Fall (秋学期) に CS 6250 を受講した。 以下の記事のように、中間テストの範囲に関してざっとまとめたところ、自分の理解が深まりテストの結果が良かったため、期末テストでも同様にまとめる。 期末テストでは Week7 - 12 までの内容が対象のためここまでを手短に整理した。

CS 6250: Computer Networks

CS 6250 Computer Networks Exam 1

Week7

Week7, 8 は ソフトウェア定義ネットワーキング(SDN)についての内容であった。 コンピューターネットワークは、ネットワーク上の機器の多様性、装置の独自技術などにより管理が困難であるが、SDNは 2 つのプレーン (コントロール プレーンとデータ プレーン) に分割することで、ネットワークの管理を簡素化し、イノベーションを加速させることを目的としている。 SDN の歴史に関しても触れられており、アクティブネットワーク、コントロールプレーンとデータプレーンの分離、OpenFlow APIとネットワークオペレーティングシステムの 3 つのフェーズを経て現在に至る。 従来と主に異なる点は、SDN アプローチでは、すべてのルーターが使用するフォワーディングテーブルを計算して配布するリモートコントローラーが存在し、ルータから物理的に分離されている。

SDN を構成する要素としては、データプレーンである Switch などの SDN-controlled network elements、コントロールプレーンに該当する SDN コントローラー、ネットワーク制御アプリケーションが存在する。 その中でも、SDN コントローラーにおいては、コントローラーとネットワーク要素間の通信を担う Communication layer、ネットワーク状態の情報を格納する Network-wide state-management layer、コントローラとアプリケーション間の通信を担う Interface to the network-control application layer と 3 層で構成されている。 Communication layer に関しては、Southbound API があり、Interface to the network-control application layer に関しては Northbound API がある。

Week8

ソフトウェア定義ネットワーキング(SDN)について詳しく説明している。 従来コンピューターネットワークは以下の 3 層に分かれ、マネジメントプレーンでネットワークポリシーが定義されている場合、コントロールプレーンはポリシーを適用し、データプレーンはそれに応じてデータを転送してポリシーを実行する。

  • Management plane : SNMP ベースのツールなど、制御機能を監視および構成するために使用されるサービス
  • Control plane :プロトコルを使用してデータプレーン要素の転送テーブルを設定することにより、使用するパスを決定する機能とプロセス
  • Data plane :パケットまたはフレームの形式でデータを転送する機能とプロセス

SDN においては、Network Application, Programming Language, Language-based Virtualization が Management plane に相当し、Northbound Interface, Network Operation System, Network Hypervisor が Control plan である。 Southbound Interface, Network Infrastructure が Data plane に該当する。 OpenFlow は SDN の最も広く受け入れられている Southbound API である。

SDN コントローラーには中央集権型と分散型のコントローラーがあり、それぞれのアーキテクチャには特有の利点と課題が存在するが、ONOS(Open Networking Operating System)は、分散型SDN制御プラットフォームである。 ONOSの分散アーキテクチャは、スケールアウトパフォーマンスとフォールトトレランスを提供する。

P4(Programming Protocol-independent Packet Processors)は、SDN 制御プロトコルと連携して動作するスイッチを構成するためのデータプレーンに対する高水準プログラミング言語である。 ベンダーに依存しない一般的な OpenFlow インターフェースは、コントロールプレーンで異なるベンダーのデバイスを管理できるよう、ヘッダーフィールドに基づいてパケットを照合するが、ルールテーブルの複数のステージが含まれるようになり、ヘッダーフィールドの数が増えため、効率的にパケットを解析する手段として登場した。

Week9

week 9 ではセキュリティに関する内容であった。 2 者間で通信チャネルを確立する場合、通信が安全になるように考慮すべき重要な特性は、機密性、完全性、認証、可用性である。

ラウンドロビン DNS(RRDNS) は大規模な Web サイトで、受信要求の負荷を 1 つの物理的な場所にある複数のサーバーに分散するために使用され、DNS 要求に対しては、DNS A レコードのリストで応答し、ラウンドロビン方式で循環する。 この考えを利用したのが、Fast-Flux Service Networks(FFSN) である。 その名前が示すように、DNS応答の「急速な」変化に基づいており、TTLはRRDNSやCDNよりも低くなっている。FFSNと他のメソッドとの主な違いの1つは、TTLの有効期限が切れた後、侵害されたマシンのより大きなセットから異なるAレコードのセットが返されることである。

インターネットの不正ネットワークを監視するシステムである FIRE – Finding Rogue nEtworks はデータ プレーンの監視に基づくアプローチである。 データプレーン監視では、ネットワークにブラックリストに登録された IP が十分に存在している場合にのみ、悪意のあるものとしてフラグが立てられる。 一方、コントロール プレーンからの情報(ルーティング動作など)のみを使用して悪意のあるネットワークを特定する補完的なアプローチは ASwatch である。このアプローチは、悪質な悪用を受ける可能性のあるネットワークではなく、サイバーアクターによって運営されている可能性が高い、または「防弾」と呼ばれる悪意のあるネットワークを検出することを目的としている。

BGPハイジャック攻撃に関しては、BGP においてより具体的であるなどの優先度の高いアドバタイズを悪意を持って実施することで、攻撃者の意図したルーティングを行う方法である。 対策はプレフィックスのデアグリゲーション、Multiple Origin AS(MOAS)による緩和策が考えられる。

DDoS 攻撃に関しては、サービス停止となるような大量のアクセスをターゲットに行う攻撃であり、リフレクションや増幅によって行われる。 DDoS 攻撃の対策としては、標的となる DDoS の宛先へのすべての攻撃トラフィックが null ロケーションにドロップされる BGP blackholing などがある

Week10

DNS censorship は、ネットワークがインターネットインフラストラクチャの制御と検閲を実施して、好ましくないと見なす資料を抑制する大規模なネットワークトラフィックフィルタリングである。 DNSインジェクションは、検閲手法の1つであり、偽の DNS Aレコードレスポンスが返送される。

DNS censorship に利用される方法としては、

  • パケットドロップ : 特定のIPアドレスのセットに送信されるすべてのネットワークトラフィックが破棄される。
  • DNS poisoning : DNSがホスト名をIPアドレスに解決するためのクエリを受信した場合に応答が返されない、ユーザーリクエストをリダイレクトまたは誤解させるために誤った応答が送信されるなどの実装。
  • content inspection : プロキシベースと侵入検知システム(IDS)ベースの content inspection があり、プロキシ or IDS でネットワークトラフィックを検査するものである。
  • blocking with resets : TCP リセット (RST) を送信し、好ましくない内容の要求を含む個々の接続をブロックする。
  • immediate reset of connections : コンテンツの検査に加えて、ソースからのトラフィックを短時間すぐに停止するブロッキングルールがあり、特定の期間、ファイアウォールから RST パケットを受け取り続ける。

Augur は、TCP/IP を使用してホスト間のフィルタリングを検出するシステムである。 グローバルカウンタを定義し、生成されるパケットごとに増加し、そのホストによって生成されたパケットの総数を追跡する。これにより、ホスト間にフィルタリングが存在しているかどうかを検知する。

Week11

Week 11 では、マルチメディアアプリケーションに関する内容についてであった。マルチメディアアプリケーションは、様々な種類が存在するが、それぞれの種類に応じて要件が異なる。 保存されたビデオのストリーミングでは、データを受信してから数秒以内に再生を開始し、最初にファイル全体がダウンロードされるのを待つのではなく、再生を開始する。また、インタラクティブであるため、ユーザーはビデオ内で一時停止、早送り、スキップ、または戻ることができ、数秒以内に応答を確認できる。 ライブ オーディオとビデオのストリーミングは、保存されたビデオのストリーミングと似ているが、通常、多くの同時ユーザーがおり、地理的に大きく異なる場所にいる場合もある。遅延の影響を受けやすいが、会話型音声およびビデオアプリケーションほどではなく、一般的に、10秒の遅延は問題ない。 IPを介した会話型の音声とビデオは、VoIPは「Voice over IP」の略で、従来の回線交換電話ネットワークではなく、インターネットを経由する電話サービスのようなものである。 これらの通話や会議はリアルタイムでユーザーが対話するため、遅延に非常に敏感である。150ミリ秒未満の短い遅延はあまり目立たないが、400ミリ秒を超えるなどの長い遅延は、人々が誤ってお互いに話し合うことになるため、不満を抱く可能性がある。

VoIP に関しては、音声をデジタル形式にエンコードする方法、セッション確立など担うシグナリングプロトコル、QoS(Quality of Service)メトリクスなどによって実現される。 VoIPプロトコルには、パケット損失に対処するために、冗長データを付与する FEC(Forward Error Correction)、オーディオのチャンクをミックスするインターリーブ、失われたパケットを単に前のパケットを繰り返すエラー隠蔽などがある。

ビデオストリーミングの仕組みにおいては、コンテンツ プロバイダーは、事前に定義されたビットレートのセットから選択された複数のビットレートでビデオをエンコードする。 具体的には、ビデオは通常同じ長さのセグメントに分割され、これらの各セグメントは複数のビットレートでエンコードされた上でサーバーに保存される。

Week12

Week 12 は Contents Delivery Network(CDN)の概要に関してであった。 単一のデータセンターを使用する従来の方法には、地理的な距離、急激に需要の拡大するコンテンツの増加、単一障害点のリスクなどの問題が存在していた。 一方、CDNは複数の地理的に分散したサーバーを使用して、ユーザーに最適なサーバーからコンテンツを提供する。

コンテンツ配信の課題としては、ネットワーク間の接続において混雑が発生しやすい。 BGP などのプロトコルは現代のインターネットの需要に対応しておらず、非効率なルーティングプロトコルとなっている。 その他には、停電や自然災害、DDoS攻撃などによるネットワークの信頼性の低下、TCPなどのプロトコルはオーバーヘッドが大きく非効率な通信プロトコル、需要に応じたリソースの拡張が困難、アプリケーションの制限と採用の遅さにより、新しいプロトコルの採用が遅いことが課題として挙げられる。

CDN の運用に際して、ユーザーのリクエストを最適なサーバーに振り分けるために、DNS が重要な役割を果たす。クラスター選択を選択した後、サーバーを選択する必要があるが、地理的に最も近いクラスターを選ぶ方法や、リアルタイムのネットワークパフォーマンスに基づいて選ぶ方法がある。 コンテンツベースのハッシュを使用して、同じコンテンツのリクエストを同じサーバーにマッピングする方法も存在する。

異なるクラスタに属する複数のサーバーに同じ IP アドレスを割り当てることを IP Any cast と言う。 IP any cast 主な目標は、AS 間ルーティングに使用されるルーティングプロトコルである BGP によって決定される「最も近い」サーバーにクライアントをルーティングすることである。

Licensed under CC BY-NC-SA 4.0
Hugo で構築されています。
テーマ StackJimmy によって設計されています。