狠狠撸

狠狠撸Share a Scribd company logo
パケットさんを追え
プライベートネットワーク内で、宛先にどのようにパケットを
送るか、次の二つのケースで考えます。
● Case1: 同一セグメント内のファイルサーバにアクセスする場合
● Case2: セグメントを超えた先にあるファイルサーバにアクセスする場合
L2SW L2SW
L3SW
192.168.10 / 24 192.168.20 / 24
192.168.10.38 192.168.10.220 192.168.20.220
Case 1:
パソコンから、
このファイルサーバに
アクセスしたいな
Case 2:
パソコンから、
こっちの
ファイルサーバに
アクセスしたいな
192.168.10.254 192.168.20.254
Case 1: 同一セグメント内のファイルサーバへのアクセス
L2SW
192.168.10.38 192.168.10.220
サブネットマスク 255.255.255.0
ネットワークアドレス 192.168.10.0
ブロードキャストアドレス 192.168.10.255
ノードに割り当て可能な
アドレス
192.168.10.1 ~
192.168.10.254
192.168.10 / 24
ということは???
パソコンと、ファイルサーバは、同じセグメント内にいる!
ファイルサーバの MAC アドレスが分からない???
ARP (Address Resolution Protocol) を使おう
L2SW
192.168.10.38 192.168.10.220
(1) パソコンから 「ARP 要求」をブロードキャスト。
    同一セグメント内の全ノードにパケットが届く。
(2) ARP 要求パケットの「宛先 IP アドレス」を確認。
    自分宛でなければ、破棄する。
    ファイルサーバが自分宛だと気付いて
    パソコンに「ARP 応答」を返す(ユニキャストで)。
(3) これでパソコンは、ファイルサーバの
    MAC アドレスが分かった。
    しばらくはパソコンの 「ARP テーブル」 に
IP アドレス、MAC アドレスを保持しておく。
パケットを組み立てよう!
ペイロード(データ本体)
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
イーサネット
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
宛先ポート番号: 80 (WebDAV を使用)
送信元ポート番号: 57300 を使おう。
宛先 IP アドレス: 192.168.10.220 (ファイルサーバ)
送信元 IP アドレス: 192.168.10.38 (パソコン)
宛先 MAC アドレス: XX:XX:XX:XX:XX:XX (ファイルサーバ)
送信元 MAC アドレス: AA:AA:AA:AA:AA:AA (パソコン)
Case 2: セグメントを超えた先のファイルサーバへのアクセス
L3SW
192.168.10.38
192.168.10.254
192.168.20.220
192.168.10 / 24 192.168.20 / 24 セグメントを超えるには???
L3SW 経由での通信が必要。
異なるネットワークセグメントに
パケットをルーティングして送り届けてくれるのが、
L3 のネットワーク機器。
パソコンからパケットを飛ばそう。
そもそも、どこ宛に飛ばすの?
L3SW
192.168.10.38
(1) 宛先は「192.168.20.220」にしたい。
だが、異なるセグメントのアドレスである。
(2) パソコンのルーティングテーブル を見てみると、
    デフォルトゲートウェイ だけ設定されてた。
ここにパケットを飛ばせば、その機器が適切な場所に
    パケットを運んでくれるだろう。
(3) デフォルトゲートウェイには L3SW が設定されている。
もちろん、同一セグメント内 (192.168.10 / 24) にいる。
L3SW の MAC アドレスを Get しよう。
192.168.10.254
パケットを組み立てよう!
(パソコン → L3SW)
ペイロード(データ本体)
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
イーサネット
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
宛先ポート番号: 80 (WebDAV を使用)
送信元ポート番号: 57300 を使おう。
宛先 IP アドレス: 192.168.20.220 (ファイルサーバ)
送信元 IP アドレス: 192.168.10.38 (パソコン)
宛先 MAC アドレス: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (L3SW)
送信元 MAC アドレス: AA:AA:AA:AA:AA:AA (パソコン)
L3SW からファイルサーバまで
L3SW
192.168.20.220
(1) 宛先は「192.168.20.220」にしたい。
(2) L3SW のルーティングテーブル を見てみると、
    192.168.20 / 24 のセグメント宛の通信を
どのインタフェースから送るか書かれてる。
192.168.20.254
(3) ネクストホップ(パケットの次の送り先)は
他の L3 機器ではなく、
自インタフェースのセグメントだと分かる。
192.168.20.220 が ARP テーブルにない場合は、
ARP でファイルサーバ の MAC アドレスを Get する。
パケットを組み立てよう!
(L3SW → ファイルサーバ)
ペイロード(データ本体)
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
イーサネット
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
IP
ヘッダ
ペイロード(データ本体)
TCP
ヘッダ
宛先ポート番号: 80 (WebDAV を使用)
送信元ポート番号: 57300 を使おう。
(L3SW では L4 より上の情報は書き換えない)
宛先 IP アドレス: 192.168.20.220 (ファイルサーバ)
送信元 IP アドレス: 192.168.10.38 (パソコン)
宛先 MAC アドレス: YY:YY:YY:YY:YY:YY (ファイルサーバ)
送信元 MAC アドレス: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (L3SW)

More Related Content

パケットさんを追え