問題ID: 14669 IPマスカレード?

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014-6-24 15:05
homicide360  常連   投稿数: 13
問題文は「IPマスカレードを利用したい。」で始まっていますが、正解は

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j SNAT 124.83.187.140

となっています。これはただのNATです。普通の意味でIPマスカレード(NAPT)といえば、送信元アドレスとポート番号の両方を変換することですから、この解答は明らかにおかしいでしょう。
また解説文(問題ID: 14663も)でも、送信元アドレスのみを変換することがIPマスカレードであるかのような不正確な説明がされています。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-24 16:24 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
これはただのNATです。普通の意味でIPマスカレード(NAPT)といえば、送信元アドレスとポート番号の両方を変換することですから、この解答は明らかにおかしいでしょう。
ちょっと手元で環境がすぐ作れないので、検証なしでの発言になります。そこはご容赦を。

Linux kernelでのNATではconntrack機能が動作するので、これだけの定義でポート変換も動作します。解説にもありますが、MASQUERADEターゲットはsource addressが固定でない場合のための処理が追加されたSNATのため、問題ID:14669のようにNAT後アドレスを固定とする場合はSNATターゲットを使用するのが一般的です。

古いですが参考までにこちらのFAQもご覧ください。
http://archive.linux.or.jp/JF/JFdocs/netfilter-faq-3.html#ss3.5
引用:
netfilter は、できる限りパケットに手を加えないように努めます。 ですので、我々のところにリブートしたてのマシンがあり、 SNAT ボックスの背後にいる誰かがローカル・ポート 1234 番でコネクションを開いた場合、netfilter ボックスは IP アドレスだけに手を加え、ポート番号はそのままにしておきます。

ですので
引用:
送信元アドレスのみを変換することがIPマスカレードであるかのような不正確な説明がされています。
上記FAQの通り、MASQUERADEでも送信元アドレスのみを変換する場合がある、という意味ではLinuxの世界では間違っていないのでは?と個人的には思います。
どのようにして実現しているのか、を理解するうえではポート番号が変換されるという点に触れないわけにはいきませんので、そこも記載があるとよい、というご提案には同意します
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-25 5:04
ゲスト    投稿数: 0
homicide360さん、arashi1977

ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.