手っ取り早くNATルータが欲しくなった時にNICが複数あるLinuxマシンがあればラッキーだ.
CentOS7でやったことがなかったのでメモっておく.
nmcliをちゃんと使うべきなんだろうけど, 設定ファイルを直接触った.
1. ネットワークの設定
NICそれぞれに対して設定する.
特にNATとか関係なく普通に設定.
内側のネットワークにはGATEWAYを設定しない.
内側(/etc/sysconfig/network-script/ifcfg-eth0)
TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth0 UUID=[なんかはいってる] DEVICE=eth0 ONBOOT=yes IPADDR=[内側のNATのIP] PREFIX=24 # [内側ネットワークのマスク]
外側(/etc/sysconfig/network-script/ifcfg-eth1)
TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth1 UUID=[なんかはいってる] DEVICE=eth1 ONBOOT=yes IPADDR=[外側ネットワークのNATのIP] GATEWAY=[外側のゲートウェイのIP] PREFIX=24 # [外側ネットワークのマスク]
2. ネットワークエラーにzoneを設定
firewalldにはzoneという概念があるそうで, デフォルトでうまく機能していたので今回はそれを使った.
内側(/etc/sysconfig/network-script/ifcfg-eth0)
... # 一番下に追記した ZONE=trusted
外側(/etc/sysconfig/network-script/ifcfg-eth1)
... # 一番下に追記した ZONE=external
3. アダプタを再起動
# ifdown eth0 # ifdown eth1 # ifup eth0 # ifup eth1
4. 一応firewall-cmdで確認
# firewall-cmd --list-all-zones
trustedだとなんでも許すので, 必要に応じてinternal使うんだろうな.