kuroの覚え書き

96の個人的覚え書き

IPマスカレード

ずいぶん昔、まだ世の中にネットワークルータというハードウェアがほとんどなく、あったとしてもマニアックな超高級品であった時代、Linux-boxをルータとして使うIP-Masqueradeを組んだ・・・というのがLinuxとの最初の出会いであったなあ・・・(遠い目

時代はうつり、今や無線LANルーターがほとんどの家庭にあって、無線帯域を奪い合うような事態になっているわけだが。
さて、サーバを2台にしたことで外に出ているサーバは1台だけにして、もう1台は内側にサブネットを作って入れてしまう、という形になったので、懐かしのIP-Masqueradeの出番と相成った。今どき1000円もしないルータで設定もしないでそのまま使えてしまう機能なわけだが、Linuxでやるとなると、それなりの設定手順を踏まねばならない。

Centos7の場合、基本firewall-cmdでゴニョゴニョすることになる。
現状、

$ sudo firewall-cmd --get-active-zone
public
  interfaces: ens1f0 enp4s0f0

こんな感じに2つのインターフェースはzone=publicで対等な感じになっている。
これを、まずは内向き、外向きに分けてやる。

$ sudo nmcli c mod ens1f0 connection.zone external
$ sudo nmcli c mod enp4s0f0 connection.zone internal
$ sudo firewall-cmd --get-active-zone
internal
  interfaces: enp4s0f0
external
  interfaces: ens1f0

そして、zone=externalに対して

$ sudo firewall-cmd --zone=external --add-masquerade --permanent
$ sudo firewall-cmd --reload
 sudo firewall-cmd --zone=external --query-masquerade
yes
$ sudo cat /proc/sys/net/ipv4/ip_forward
1

なお、ここまでの各種設定でfirewall-cmdでポートを開いて来ていたが、すべてzone=publicで設定していたので、すべての設定をzone=externalかzone=internalかに振り分けてやっておかないと、色々なサービスが動かない、という目に遭う。

これでいいはずなんだけど、なんだかまだ内から外に出ていけない。何かがおかしい。

あと、internalはすべてオープンということでzone=trustedという設定にする例もアチラコチラで見られるのだが。


解決。
DHCPのデフォルトルーティングの設定が間違っていた。