頭文字D / 藤原文太風:ポートマッピング
ポートマッピング(Port Mapping)の概要
【拓海】
なー、親父。
【文太】
あんー?
【拓海】
前に言ってた「ポートマッピング」ってのだけどさぁ。NATも、ある程度理解が進んだから、自分でもいろいろ調べてみたんだけど、きちんとした理解には至ってなくて、聞いても大丈夫かな?
【文太】
あー。。。いいぜ。
ポートマッピングというのは、外部ネットワーク上の特定のポート番号を、内部ネットワーク上のIPアドレスとポート番号に転送することを言う。つまりは、外部のポート番号と内部のポート+IPアドレスのマッピングだ。
これは、主にルーターやファイアウォールで使用する。目的は、インターネットから自宅や企業内ネットワークにある特定のサービス(例: サーバー、アプリケーション)へのアクセスを可能にするためだ。
具体的には、自宅のネットワークにあるウェブサーバー(内部IP:192.168.1.10、ポート80)にインターネット経由でアクセスするために、ルーターでポート80を開放して、外部からのリクエストを192.168.1.10に転送するってことなんだよ。
内部ネットワーク
- サーバーのIPアドレス:192.168.1.10
- 使用ポート:80(ウェブサーバー)
外部ネットワーク(インターネット)
- 公開するポート:80(外部からのHTTPアクセスを受けるため)
ポートマッピングを設定すると、外部からのHTTPリクエスト(ポート80)を、内部の192.168.1.10:80に転送するように設定される。
こいつは 静的ポートマッピング って呼ばれ方をする。特定のポート番号に対応するIPアドレスに対してトラフィックを転送するんだ。
ポートマッピングの設定方法は、使用するルーターやファイアウォールの機種によって異なるが、一般的な手順はあまり変わらない。家庭用のWi-Fiルーターだって、その設定が出来るようになっているんだ。
【拓海】
静的ポートマッピングってことは、動的なポートマッピングもあるのか?
【文太】
察しがいいじゃねえか。それはPATってやつだ。これは、複数の端末が同じグローバルIPを共有し、異なるポート番号で通信を行う技術だ。まぁ、詳しい話はおいおいだな。ひとまず、ポートマッピングについてだ。
ポートマッピングの設定手順(一般家庭用のルーター)
ルータにログイン
【文太】
拓海、コマンドプロンプトでipconfig 打って、デフォルト ゲートウェイを調べてみろ。多分、「192.168.0.1」とか「192.168.1.1」だ。そこにブラウザからアクセスしてみな。
【拓海】
「192.168.1.1」がデフォルト ゲートウェイだ。アドレスバーにルーターのIPアドレス「例: http://192.168.1.1」を入力してアクセスするぜ。
…
おー!見たこのないぞ、こんな画面
【文太】
初めて見ると、なんかわくわくするよな。感動するのも分かるぜ。俺もそうだった。こういうのって最初は新しい世界の扉を開けた感じがして面白いんだよな。小さな発見が勉強を継続させてくれるんだ。今の気持ち忘れんな、拓海。
じゃあ、さっそく設定に入るぞ。まずはログインだ。ルーターに初期設定のユーザー名とパスワードがあるはずだ。プロバイダから貸与された機器の場合は、説明書や付属資料に記載されているはずだから、それを見てログインしてみろ。
【拓海】
あ、これか。ログインしたよ。
ポートマッピング(ポートフォワーディング)の設定
【文太】
次はポートマッピング(ポートフォワーディング)のセクションを探すんだ。これは、ポートマッピング(ポートフォワーディング)の設定ができるセクションだ。
だいたい「Advanced(高度な設定)」「NAT設定」や「Firewall(ファイアウォール)」の近くにある。「Advanced」 → 「Port Forwarding」や「Virtual Server」みたいに追いかけて探してくれ。
出てきたら次のように設定する。
- 新しいルールを追加。
- サービス名: 任意で名前を付ける(例: “Web Server” や “Game Server”)。
- プロトコル: 通常は、TCPまたはUDP、または両方を選択する。サービスによってプロトコルが決まっているから、確認して設定するんだ。
- 外部ポート: インターネットからアクセスされるポート番号を指定する(例: 80番ポート、443番ポート)。
- 内部IPアドレス: ポートを転送したい機器の内部IPアドレスを指定する。例えば、サーバーやPCのIPアドレスだ(例: 192.168.1.100)。
- 内部ポート: 通常、外部ポートと同じ番号を設定するが、内部サービスで異なるポートを使用する場合は、異なる番号を指定できるぞ。
入力が完了したら設定を保存だ。だいたい「保存」か「適用」のボタンがあるから、それをクリックして保存する。ルーターによっては、再起動しないと設定が反映されないから注意してくれ。
【拓海】
結構、すんなり出来たけど、親父がいないとまだ難しいや。
【文太】
最初はそんなもんだ。それでいいんだよ。
確認とテスト
【文太】
それじゃ、設定の確認だ。ポートマッピング(ポートフォワーディング)が正常に設定されたかを確認するには、実際に外部からそのポートが開放されているかテストするんだ。外部からアクセスするか、次の方法を使って確認する。
- オンラインツールを使用して、指定したポートが開放されているか確認(例: CanYouSeeMe.org)。
- ルーターのログを確認して、ポート転送が正常に機能しているかどうかを確認。
Webサーバーのポートマッピングを例にして話をするぜぇ。
例えば、自宅にWebサーバーを立てた場合、設定は次の通りだ。
- 外部ポート: 80(HTTP)
- 内部ポート: 80(HTTP)
- 内部IPアドレス: 192.168.1.10(WebサーバーのIPアドレス)
- プロトコル: TCP
これで、インターネットからhttp://<外部IPアドレス>にアクセスすれば、内部のWebサーバー(192.168.1.10)にアクセスできるようになる。
こうやって、ポートマッピングを設定すれば、外部から内部ネットワークにある特定のサービスにアクセスできるようなるんだ。
ポートマッピングの設定手順(Ciscoルーター)
【文太】
次は、Ciscoルーターを使ったポートマッピング(ポートフォワーディング)設定だ。Ciscoルーターじゃ、NAT(Network Address Translation)機能を使う。具体的には、ip nat inside source static コマンドを使って、内部IPアドレスと特定のポート番号を外部IPアドレスのポートにマッピングさせるんだ。
前提条件
- 内部ネットワークのIPアドレス(例: 192.168.1.10)
- 外部IPアドレスがルーターに割り当てられている
- 開放したいポート番号(例: 80番ポートをWebサーバー用)
Ciscoルーターにログイン
まずは、いつも通り、Ciscoルーターのコンソールにアクセスしてくれ。TelnetまたはSSHを使用してリモートアクセスするか、直接コンソールケーブルを使用してアクセスだ。
Router> enable
グローバルコンフィギュレーションモードに入る
ルーターにログインしたら、グローバルコンフィギュレーションモードに入る。
Router# configure terminal
Router(config)#
インターフェースの確認
インターフェース(内部と外部のネットワーク)を確認し、それぞれに適切な設定を行う。
Router(config)# show ip interface brief
NATの設定
例として、GigabitEthernet0/0 がインターネット接続用(外部インターフェース)、GigabitEthernet0/1 が内部ネットワーク用(内部インターフェース)として、内部と外部のインターフェースにip nat inside と ip nat outside を設定するんだ。
【拓海】
GigabitEthernet0/0 が outside、GigabitEthernet0/1 が inside だね。
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# ip nat inside
Router(config-if)# no shutdown
Router(config-if)# exit
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 203.0.113.1 255.255.255.0
Router(config-if)# ip nat outside
Router(config-if)# no shutdown
Router(config-if)# exit
ポートフォワーディングの設定
次は、ポートフォワーディングの設定だ。
特定のポートを内部のサーバーに転送するための設定を行います。以下のコマンドで、外部ポート80番(HTTP)を内部IPアドレス(例: 192.168.1.10)のポート80番に転送します。
Router(config)# ip nat inside source static tcp 192.168.1.10 80 interface GigabitEthernet0/0 80
設定は追加することも可能です。(22番ポートを追加で解放)
Router(config)# ip nat inside source static tcp 192.168.1.10 80 interface GigabitEthernet0/0 80
Router(config)# ip nat inside source static tcp 192.168.1.10 22 interface GigabitEthernet0/0 22
設定を保存
設定が完了したら、変更を保存だ。
Router(config)# end
Router# write memory
動作確認
設定が正しく行われたか確認するため、show ip nat translations コマンドを実行します。このコマンドは、現在ルーターが行っているNAT変換を表示します。
Router# show ip nat translations
また、外部からポート80番にアクセスして、内部サーバーに正しく転送されているか確認します。
ポートマッピングのトラブルシューティング
NAT変換が行われていない場合:show ip nat translations で変換情報が表示されない場合、設定ミスやインターフェース設定の誤りが考えられる。そういったときは、まず、インターフェースが正しく設定されているか確認するんだ。
アクセスできない:外部からアクセスできない場合は、ルーターのファイアウォールや内部サーバーの設定(例: サーバー側のファイアウォール)に問題があるかもしれないことを忘れるな。
パフォーマンス:複数のポートをマッピングする場合には、ルーターに負荷がかかっている可能性がある。必要なポートのみを開放して、監視を行うことが重要だ。
Ciscoルーターでポートマッピング(ポートフォワーディング)の設定を行う手順は以上だ。
今日はここまでだ。下にITスクール情報を置いておく。俺は現役の時は夢の中でも秋名の山を走ってた。知識ってのは一日やそこらじゃ身にならね。負けんなよ。


