====== CentOS - Nat ======
===== SNAT =====
/etc/sysctl.conf を編集してパケット中継機能を有効にします。\\
net.ipy4.ip_forwardを1に変更
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
↓
net.ipv4.ip_forward = 1
すぐ有効にするには
echo 1 > /proc/sys/net/ipv4/ip_forward
下記の状態で、eth1側から192.168.100.0/24からのアクセスだけIPマスカレードする。
|eth0|グローバル側|10.10.10.76|
|eth1|ローカル側|192.168.100.76|
iptables -P FORWARD DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.100.0/24 -j ACCEPT
==== SNAT IP指定 ====
Global IPが複数ある場合など、ソースIPを指定する事ができる。
内部(192.168.100.0/24)から外部へ出て行く時のソースIPは10.10.10.76
例えば外部Webサイトへアクセスした場合、アクセス元は10.10.10.76になる。
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 10.10.10.76
==== MASQUERADEターゲット ====
MASQUERADE ターゲットは、基本的には SNAT ターゲットと同じだ。ただし、 --to-source オプションは必要でない。
なぜかといえば、 MASQUERADE ターゲットは、ダイヤルアップ接続、DHCP など、目的のネットワークへの接続に動的な IPアドレスを使用する接続で機能するようにできているからだ。
固定的な IP 接続なら、代わりに SNAT ターゲットを使用すべきだ。
IP が固定の場合でも、SNAT の代わりに MASQUERADE ターゲットを使うこともできなくはない。
あまりお勧めでないのは、余計なオーバーヘッドがあることと、運用しているうちに矛盾を生じ、
既存のスクリプトを駄目にして "使用不能" にしてしまう可能性があるからだ。
[[http://www.asahi-net.or.jp/~aa4t-nngk/ipttut/output/masqueradetarget.html|MASQUERADEターゲット について]]
===== DNAT =====
10.10.10.76の80番ポートへのアクセスを、192.168.100.76の80番 へ転送
iptables -t nat -A PREROUTING -p tcp --dst 10.10.10.76 --dport 80 -j DNAT --to-destination 192.168.100.76:80
{{tag>nat}}