/etc/sysconfig/osoba

linuxについての忘備録など

NIC2枚差し環境でのパケット転送でつまづく

環境:CentOS6.3 x86_64 minimal

 

NIC2枚差し環境でのルーティング設定ではまった。

結果、ルーティングではなくパケット転送の設定が必要だった。

 

ネットワークは以下の2つ。

192.168.1.0 / 24

192.168.2.0 / 24

 

クライアントは以下の3つ。

test1.example.local (eth0 : 192.168.1.1 / 24)

yasai.tomato.local (eth0 : 192.168.2.1 / 24)

gw.localdomain (eth0 : 192.168.1.254 / 24, eth1 : 192.168.2.254 / 24)

 

この状態で、test1 <-> gw、yasai <-> gwのpingはOK。

でtest1 <-> yasaiのpingを成功させたかったのだが、デフォルトだと失敗。

 

centos ルーティング」でググる

 

gwの/etc/sysconfig/network-scripts/route-eth* ファイルを新規作成し、

スタティックルーティングを記述しろ、という参考文献に複数当たる。

このため、以下のように設定する。

 

root @ gw # vi /etc/sysconfig/network-scripts/route-eth0

192.168.2.0/24 via 192.168.2.254 dev eth0

 

root @ gw # vi /etc/sysconfig/network-scripts/route-eth1

192.168.1.0/24 via 192.168.1.254 dev eth1

 

結果、

RTNETLINK answers: No such process

RTNETLINK answers: File exist

となる。

ゲートウェイIPやdevの記述のパターンを変えても同様であった。

 

結果、

1. route-eth{0,1}を削除

2. /etc/sysctl.confの下記記載部分を修正

net.ipv4.ip_forward=0


net.ipv4.ip_forward=1

3. network を restart

 

これでパケットが転送されるようになった。

 

※ルーティングは既にconnectedで行われる状態であったので、

あとはパケット転送の許可設定をすればよい状態だったのだと思われる。