コンピュータがあり、すべてのトラフィックがデフォルトゲートウェイを通過するように強制したいと思います。ローカルネットワークからのトラフィックも同様です。
そのインターフェイスの自動生成されたパスを削除して機能させましたが、これはネットワークスクリプトを介してRHEL / Centosでこれを永久に実行する方法ですか?
デフォルトのルーティングテーブルは次のとおりです。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
しかし、ネットワークを再起動した後に行われることを望みます。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
答え1
少なくとも、ゲートウェイへのパスは直接でなければなりません。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.1 0.0.0.0 255.255.255.255 U 0 0 0 eth0
/24 = 255.255.255.0
最善の方法は、ローカルネットワークのネットマスクを変更/32 = 255.255.255.0
し、ネットワークアドレスを「192.168.1.1」に設定することです。これにより、すべてのトラフィックがゲートウェイを通過する必要があります。
答え2
ネットワークスクリプトを介して目的のパスを削除する方法はないようです。私はこれが非常に一般的なユースケースではないと思いますが、実際には同じネットワーク上のサーバーが互いに通信できるようにしたくありません。
しかし、ネットワークが初期化された後に実行されるスクリプトが見つかりました。
このスクリプトは、/etc/sysconfig/network-scripts/ifup-post
存在する場合は最後に呼び出されます。/sbin/ifup-local
だから、次の内容で一つを作りました。
#!/bin/bash
ip route delete 192.168.1.0/24
ネットワークを再起動した後、このローカルネットワークパスはありませんでした。
答え3
rhel / centosで変更を維持するには、/etc/sysconfig/static-routes
キーワードで始まる行any
とそれに続く引数を含むファイルを生成しますroute add
。
ファイル内の/etc/sysconfig/network-scripts/ifcfg-<interface>
1行を置き換えるか追加しますDEFROUTE="no"
。