- PR -

Linuxサーバを使用したルーティングについて

1
投稿者投稿内容
かずちゃん
会議室デビュー日: 2006/04/17
投稿数: 5
投稿日時: 2006-04-17 18:14
お世話になります。

3台のLinuxPCでルーティングの勉強をしようとしたのですが、
上手く通信経路が設定されないのでこちらでご相談させていただくことにしました。
よろしくお願いします。

現在、一つのハブに3台のPCが繋がっていて
それぞれIPを下記のように割り振っています。
━━━━━━━━━
PC_A
10.28.130.224

DELL_PC
10.28.130.225
192.168.0.2

PC_B
192.168.0.5
━━━━━━━━━

DELL_PCのFORWARDは全てACCEPTになっています。
PC_AからPC_Bへの通信は、DELL_PCを通して行いたいのですが
2、3回通信を行うとPC_AからPC_Bへ直接通信をしてしまいます。
動的に通信経路が切り替わらないようにさせたいのですが、
どなたか考えられる原因などがありましたらご教授ください。

以下は、PC_Aのルーティングテーブルと通信経路になります。

[PC_A]
# netstat -eenr
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
192.168.0.5 10.28.130.225 255.255.255.255 UGH 1 0 0 eth0 0 0 0
10.28.130.192 0.0.0.0 255.255.255.192 U 0 0 0 eth0 0 0 0
192.168.0.0 10.28.130.225 255.255.255.0 UG 1 0 0 eth0 0 0 0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0 0 0
0.0.0.0 10.28.130.193 0.0.0.0 UG 0 0 0 eth0 0 0 0


# traceroute PC_B
traceroute to PC_B (192.168.0.5), 30 hops max, 38 byte packets
1 10.28.130.225 (10.28.130.225) 0.134 ms 0.100 ms 0.093 ms
2 PC_B (192.168.0.5) 0.176 ms 0.092 ms 0.088 ms

# traceroute 192.168.0.5
traceroute to 192.168.0.5 (192.168.0.5), 30 hops max, 38 byte packets
1 PC_B (192.168.0.5) 0.147 ms 0.095 ms 0.090 ms

以上です。
宜しくお願いします。
ttk
会議室デビュー日: 2006/04/14
投稿数: 1
投稿日時: 2006-04-17 20:44
おそらくICMP Redirectが悪さ?をしています。

# echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
(eth0だけでなく必要なI/Fは全て。allも必要かも。)
で望み通りの動きになるかと思います。
再起動後も有効にしたければ/etc/sysctl.confあたりで。

PC_Aで
$ netstat -nrC
を実行するとルーティングキャッシュが見れます。
ルーティングキャッシュをクリアしたい場合は
# echo 1 > /proc/sys/net/ipv4/route/flush
で。
かずちゃん
会議室デビュー日: 2006/04/17
投稿数: 5
投稿日時: 2006-04-18 10:15
ttkさん、ありがとうございます。

DELL_PCにてICMP Redirect機能を切り、PC_Aのルーティングキャッシュをクリアしたら
希望通りの動作をしてくれました。

ICMP Redirectからルーティングテーブルの書き換えが行われると、
別セグメントへも直接繋がるんですね…(憶測ですが)

大変勉強になりました。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)