問題ID: 14669 IPマスカレード?
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID: 14669 IPマスカレード?
msg# 1
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マスカレードであるかのような不正確な説明がされています。
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マスカレードであるかのような不正確な説明がされています。
Re: 問題ID: 14669 IPマスカレード?
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
引用:ちょっと手元で環境がすぐ作れないので、検証なしでの発言になります。そこはご容赦を。
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
引用:
ですので
引用:上記FAQの通り、MASQUERADEでも送信元アドレスのみを変換する場合がある、という意味ではLinuxの世界では間違っていないのでは?と個人的には思います。
どのようにして実現しているのか、を理解するうえではポート番号が変換されるという点に触れないわけにはいきませんので、そこも記載があるとよい、というご提案には同意します
これはただの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マスカレードであるかのような不正確な説明がされています。
どのようにして実現しているのか、を理解するうえではポート番号が変換されるという点に触れないわけにはいきませんので、そこも記載があるとよい、というご提案には同意します
Re: 問題ID: 14669 IPマスカレード?
msg# 1.2
ゲスト
投稿数: 0
homicide360さん、arashi1977
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。