CentOSをNATルーターにする方法

CentOS6.5で

  • ルーター化する
  • NAT(マスカレード)機能を持たせる

という要求に応えてみた。

ルータ化

以下コマンドを実行する。永続的な設定にはならない。これは再起動したらもとに戻る。

echo 1 > /proc/sys/net/ipv4/ip_forward

永続的な設定にするには以下コマンドを実行すれば良い。

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

スタティックルートの追加

一時的に経路情報を追加するならコマンド一発でOK

書式:
 ip route add <network address/prefix> via <next-hot> dev <interface-name>
例:
 ip route add 192.168.10.0/24 via 192.168.1.254 dev eth1

永続的に経路情報を追加するには「/etc/sysconfig/network-scripts/route-<interface-name>」をviエディタ等で編集して、経路情報を追記。

書式:
 <target-address> via <gateway-address> dev <interface>
例:
 192.168.10.0/24 via 192.168.1.254 dev eth1

NAT機能(アドレス変換)

ソースnat(IPマスカレード)についてはiptablesコマンドで対応する。

書式:
 iptables -t nat -A POSTROUTING -o [outgoing i/f] -s [internal_ip] -j MASQUERADE
説明:
 outgoing i/f : 出力側インターフェース(eth1など)
 internal_ip : 送信元IPアドレス。「/24」などネットワーク指定が一般的。ホストアドレスも可。
 POSTROUTING : ルーティング後にnatを実行。
 MASQUERADE : IPマスカレード(ソースポート番号変換)を実施。

Leave a Comment