質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

3回答

3561閲覧

[ネットワーク]NATの仕組みに関して

sabx

総合スコア200

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2018/08/14 10:59

聞きたいこと

現在のプロジェクトでNATを使用する予定なのですが、NATの仕組みがいまいち理解できていないためか、意義がわからない状態です。

プロジェクトのサーバー構成などは下記です。

  • LB-Web-DB構成
  • LBのみにグローバルIPが付与

ただ、現状だと「WebとDBサーバーにSSHできない!」という問題が発生し、それに対する解決策としてNATが選択されました。

そこで下の2つの疑問が湧き上がりました。

  • NATと踏み台サーバーとの違いとは?
NATはグローバルIPを持ち、プライベートIPアドレスとの変換を担ってくれるものだと認識しているのですが、 グローバルIPとプライベートIPを持っている踏み台サーバーが存在すればNATは必要ないのではないでしょうか?
  • NATからWeb, DBへのアクセスの仕方
まだNATを導入していないのでイメージがわかないのですが、NATが1つしか所持していないグローバルIPから Web, DBなどの複数サーバーに分岐するまでの処理が想像つかないです。 それこそ踏み台サーバーのように、一度ターミナルでSSHし、そこからさらにSSH...って流れだと想像できるのですが、、、

ご存知の方は、ご回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

NATと踏み台サーバーとの違いとは?

おそらくNATといっているものはNAPT(Network Address Port Translation)のことだと思いました。この場合、グローバルIPとportは一意になります。

例としてWEBとDBでWAN側からアクセスすることを想定した場合下記のようなイメージになるかと思います。
グローバルIP: 10.0.0.xxx
WEB用のSSH設定:(WAN)10.0.0.xxx:10022 -> (local)(WEB)192.168.1.5:22
DB用のSSH設定:(WAN)10.0.0.xxx:10023 -> (loacl)(DB)192.168.1.6:22
※ :の後ろはポート番号
※ ポート番号/IPなどは例なので変更して頂ければと思います

例:NAPT

踏み台の場合はおそらく外部公開するものが一つで済むところがポイントになるのではないかと思います。
グローバルIP: 10.0.0.xxx
踏み台サーバ:WEB用のSSH設定:(WAN)10.0.0.xxx:20022 -> (local)(踏み台)192.168.1.7:22

他にも踏み台のメリットとしては経路を特定できるので、ログインログなどを取得することで少しセキュアに出来ると思います。

投稿2018/08/14 11:26

編集2018/08/15 02:07
kuni-n

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sabx

2018/08/15 01:12

回答ありがとうございます! NAPTの間違いですね…すいません。 また、追加で質問になるのですが、NAPTはソフトウェアの一種ですよね…?(何処かの会社の製品名などではなく…) もし自分自身のPCから、NAPTがインストール・稼働しているサーバー(仮にNAPTサーバー)を経由して、グローバルIPが割り振られていないWebサーバーにSSHするとなった場合って、どのような経路になるのでしょうか…? (例)ローカルPC→NAPTサーバー→Webサーバー SSHする際は、接続先のNAPTのグローバルIPを指定すると思うのですが、グルーバルIPだけで、どこのWebサーバーに接続するかを判別できるものでしょうか。。。
kuni-n

2018/08/15 02:06 編集

> NAPTの間違いですね…すいません。 一般的にNATと言われた場合は(厳密には違うのですが)NAPTを指すことが多いので質問するとき以外は特段問題ないと思います。 > また、追加で質問になるのですが、NAPTはソフトウェアの一種ですよね…?(何処かの会社の製品名などではなく…) NAT/NAPTは技術名になります。製品名、ソフトウェア名ではないです。 > (例)ローカルPC→NAPTサーバー→WebサーバーSSHする際は、接続先のNAPTのグローバルIPを指定すると思うのですが、グルーバルIPだけで、どこのWebサーバーに接続するかを判別できるものでしょうか。。。 まず、NAT(Network Address Translation)は基本的にはグローバルIP1つに対して、プライベートIPが1つになります。例えば、WEB/DBサーバの2つあってもどちらか一つにしか紐づけられないイメージです。 NAPT(Network Address Port Translation)はポート番号も利用することで、1つのグローバルIPに対して複数のプライベートIPを紐付けることが出来る仕組みになります。 グローバルIPとポート番号を指定してSSHすることで、想定しているWEBにアクセスできると思います。 ※図は回答の方につけておきます > NAPTはソフトウェアの一種ですよね…? 一番多いのはルータに搭載されている機能を使うことが多いと思います。その他、linuxを使用されていればiptablesやvyatta(VyOS)などでソフトウェアでやることも可能です。
sabx

2018/08/15 03:20

コメントありがとうございます! NATとNAPTの違い、理解できました。。。また、NAPTに関して、ソフトウェアでなく概念である旨もご教授いただきありがとうございます。。。 iptablesを使用してNATを実現することが可能なのですね…昔Linuxの試験で勉強しましたが、最近は仕事でもクラウドサーバーで提供されているiptablesを簡易的にしたようなもの(AWSでいうセキュリティーグループ)などを使用することが多く、自分の知識の浅さを痛感しました。。。 ポートが22番でなくてもSSHできる…!/etc/sshd/sshd_config(間違っていたらすいません)でSSH接続ポートを22番から他のポートに変更した経験(セキュリティー的な観点で)はありましたが、NAPT(iptables等)でも実現可能なのですね… 本当にたくさんのことを勉強させていただきました。大変ありがとうございました。
guest

0

どこで NAT(もしくは踏み台設置)するのかで、詳細は変わるので概念だけ回答します。

まず、いずれも同じ仕組みに見えている理由は結果が以下であるからだと思います。
・クライアントからサーバへのアクセスをアドレスを変更することで実現する

で、両者の仕組みの差ですが、簡単に言うと「アドレスを変更するための仕組み」の差です。
#NATの場合
NAT は、ネットワークのレイヤ(第3/4層)で実施されます。アプリケーションの挙動としてみた時、端末はサーバと直接接続されています。対象のレイヤがネットワークのレイヤなので、主にルータ等のネットワーク機器で実施されます。

#踏み台サーバの場合
踏み台サーバは、アプリケーションのレイヤ(第5層以上)で実現されます。アプリケーションの挙動としては、一度「踏み台サーバで通信が完結し、踏み台サーバから改めてサーバに接続する」といった挙動になります。すべての通信は、一旦踏み台に集まるので、ログ採取に適しています。

#どちらの技術が一般的か?
どちらとも言えません。要件次第です。
レイヤがバッティングしないため、双方を同時採用することも一般的です。

#接続方法に関して
・端末側のアドレスを変更し、サーバ側の FW やロードバランサにそのアドレスを例外的処理をさせる。
・サーバメンテナンス用のバックドアを作成し、そちらにアクセスさせる。
と言った方法があり、こちらも双方を組み合わせることがあります。

#余談
大変興味深く質問を読ませてもらいました。
レイヤーを意識しない状況だと、NATと踏み台サーバが同じ仕組みに見えるんですね。
確かに、質問の切り口だと同じ仕組みに見えます。面白い質問でした。

投稿2018/08/15 02:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/15 02:27

似た仕組みに、通常の Firewall とアプリケーション型の Firewall があります。 前者が NAT 後者が踏み台です。 そのあたりの記事を読むと理解しやすいと思います。
sabx

2018/08/15 14:41

回答、コメントありがとうございます! コメントの通常のFirewallとアプリケーション型のFirewall…とても興味あります。 通常のFirewallはptables, firewalldなど、アプリケーション型のFirewallはいわゆるWAFですかね?
guest

0

NATと踏み台サーバーとの違いとは?

NAT (NAPT) は機能であって、踏み台サーバーで実現してもいいですし、LB で実現してもいいです。

NATからWeb, DBへのアクセスの仕方

kuni-n さんの回答のとおり、グローバルIPアドレスを持つ機器(踏み台サーバーや LB)でポート番号によってWeb, DB を区別します。
「Destination NAT」とか「ポートフォワード」で調べてみてください。

投稿2018/08/14 14:50

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sabx

2018/08/15 01:25

回答ありがとうございます!(Destination NAT、ポートフォワードに関してご教授していただきましてありがとうございます) もし自分自身のローカルPCから、NAPTサーバー(グローバルIP: x.x.x.x)経由でWebサーバー(グローバルIPなし。NAPTからはポート番号10000番で受付)にSSHする場合、 ローカルPCで宛先IPアドレスをx.x.x.xに、ポートを22番から10000番に変更 することでNAPTサーバー経由でWebサーバーにSSHできるのでしょうか…?
TaichiYanagiya

2018/08/15 09:46

グローバルIP の TCP 10000番で待ち受けて、Webサーバーの TCP 10000番(sshd)に転送するよう設定したのであれば、ご認識のとおり、SSHクライアントで、グローバルIP の TCP 10000番に接続すればいいです。 待ち受けポートと転送先ポートを一致させる必要はありませんので、グローバルIP:9999 -> Webサーバー:22 などとすることも可能です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問