デフォルトゲートウェイに送るとは?
ネットワークのテキストなどに、同じネットワーク(サブネット)内ではない宛先に通信を行うときには、デフォルトゲートウェイに送るなどの説明がある。ネットマスクと宛先IPアドレスとから判断するものであるが、実際のデータ列に説明しているものをあまり見かけない。基本的なことではあるが、これについて私なりの説明をしてみたい。
ネットワーク例
ルータを介して2つのネットワーク(「Network 1”:192.168.1.x/24」および「Network 2”:192.168.2.x/24」)が存在する。デフォルトゲートウェイは、それぞれ「192.168.1.254」および「192.168.2.254」、ネットマスクはいずれも「255.255.255.0」である。
PC1とPC2とが「Network 1」に、PC3が「Network 2」に存在している。IPアドレスやMACアドレスは図を参照。
PC1から、PC2およびPC3への通信
PC1から、PC2およびPC3へ通信するときに、ネットマスクと宛先IPアドレスから同じサブネット内にあるかどうかの計算をする(IPアドレスとネットマスクとのANDをとる)。その結果として、最初の通信先(宛先)が決まる。下記表参照。
PC2への通信
ARP Broadcastにより、IPアドレス192.168.1.2を持つMACアドレスを取得する。
この結果として、PC1からPC2へのEthernetヘッダ+IPヘッダは下記のようになる。
PC3への通信
同一サブネット内にPC3は存在しないので、デフォルトゲートウェイ192.168.1.254を持つMACアドレスをARP Broadcastにより取得する。
この結果として、PC1からデフォルトゲートウェイ(Router)へのEthernetヘッダ+IPヘッダは下記のようになる。宛先MACアドレスはデフォルトゲートウェイ、宛先IPアドレスはPC3である。(送信元はいずれもPC1。)
上記データ列を受けたRouterは、PC3のMACアドレスを同じくARP Broadcastによる取得する。この結果として、RouterからPC3へのEthernetヘッダ+IPヘッダは下記のようになる。送信元MACアドレスはRouter(デフォルトゲートウェイ)、送信元IPアドレスはPC1である。(宛先はいずれもPC3。)
つまり
IPパケットは基本的に同じ(NATが関わる場合を除く)、Ethernetヘッダはサブネットを越えるたびに変わるのである。