とあるサーバを設置したときのこと、eth0を内部LAN(Internal)に、eth1をグローバル(External)に接続した上に、通常通信は内部LAN側のGWを使用したいときのメモ。
通常、デフォルトゲートウェイはシステム全体で1個なので、route add default gw LAN1-GWみたいにすると、eth1から来た通信の応答もeth0経由のLAN1-GWから出て行こうとして通信が成立しなくなる。
この場合、正しいインタフェイス、経路から出て行くためにはiproute2を利用する。 CentOSではiproute-2系パッケージである。
ip route2ではポリシールート制御が可能なので、
/etc/sysconfig/network-scripts/route-eth1
0/0 via GlobalGW dev eth1 table 100
/etc/sysconfig/network-scripts/rule-eth1
from GlobalIP table 100 prio 100
iif eth1 table 100 prio 200
GlobalGWは157.7.x.yみたいな、グローバル側のゲートウェイIP、GlobalIPも同様でeth1自体のIPを設定する。
0/0 via GlobalGW dev eth1 table 100
この場合は、route-eth1の設定により0/0(デフォルト)のゲートウェイにGlobalGWを設定しeth1から出て行く。 この経路の識別子としてtable 100を設定。
from GlobalIP table 100 prio 100
GlobalIPから送信するパケットはtable 100を適用する。
iif eth1 table 100 prio 200
eth1から入ってきたパケットをtable 100で処理させる。
これによって、通常の通信は、既存のデフォルトゲートウェイで処理され、eth1で入ってきたパケットの応答のみグローバルで直接応答する。
(710)