送信元がPrivate IP Addressのパケットはネットワークアドレス変換しないとウェブの藻屑になって消滅する

ネットワークアドレス変換(NAT)について調べていて、以下のページを読んでた。

NAT - ネットワークエンジニアを目指して

そしたらこういう記述があった

インターネット上にプライベートIPアドレスをもつパケットがやってくるとすぐに破棄されてしまう

へー、と思ったんだけどよく考えたら当たり前か、と納得したので納得したメモを残しておく。 インターネット通信においてパケットはrouterを通じてclientからserverに届けられる。

client -> router -> router -> server

で、パケットには送信先のglobal ip addressが書いてあってrouterがそのglobal ip addressがどっち方向にいるかを知っているから、routerを通じてserverにパケットが届く。で、clientからのリクエストがserverに届いたら、serverからclientにレスポンスパケットが返る。これは同様にrouterを通じてclientに返される。

client <- router <- router <- server

この時、clientのip addressがprivate ip addressだとrouterがそのip addressがどっち方向にいるのか分からない。で、どっち方向にいるのか分からない時、routerはデフォルト経路と呼ばれる経路にパケットを投げる。要はそのip addressがどっち方向にいるのか分からないが、とりあえず隣のrouterに投げる。自分は知らなくても隣のrouterが知ってるかもしれないから。

global ip addressならそのロジックでいつかは届くだろうが、private ip addressだと誰もその宛先を知らないのでrouterは全部デフォルト経路に投げ続けてパケットはたらい回しにされることになる。このままだとこのパケットは永遠にさまよい続けるように思えるが、IPパケットにはTTL(Time To Live)というたらい回しの回数制限が記録されていて、回数制限を超えるとrouterはそのパケットを破棄する。

というわけで、最初の話に戻ると

インターネット上にプライベートIPアドレスをもつパケットがやってくるとすぐに破棄されてしまう

ということになる。

なので、こうならないためにネットワークアドレス変換という技術があるわけだ。

間違ってたら誰か指摘して下しあ