手っ取り早く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使うんだろうな.