====== 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}}