ISPからサーバーにルーティングされた2つのサブネットがあります。ゲートウェイIPは1つしかありません。ゲートウェイは私のIPアドレスと同じVLANにあります。たとえば、netowrk1は1.0.0.0/24、ネットワーク2は2.0.0.0/24です。どちらもISPによってeth0にルーティングされます。ゲートウェイは1.0.0.1です。私のホストIPは2.0.0.1/24(eth0)なので、デフォルトのゲートウェイを手動で構成できます。
ip route add default dev eth0
ip route add default via 1.0.0.1
その後、インターネット接続は正しく機能します。/etc/sysconfig/network-scripts/ifcfg-eth0でどのように設定しますか?
GATEWAY = 1.0.0.1に設定しようとしましたが、うまくいきません。/etc/sysconfig/networkでGATEWAYおよびGATEWAYDEVを設定しようとしましたが、これは上記のリストの最初のコマンドが実行することのみを実行します。
私はなんとか自分で答えを見つけることができました。
#cat /etc/sysconfig/network-scripts/route-eth0
1.0.0.0/24 dev eth0
default via 1.0.0.1 dev eth0
Rc.localの行よりも少し見栄えがします少なくとも、RHELのネットワーク構成方法の場合はルーティングに関連しています
サニティチェックに合格するものではないため、このようなサポートは実際には見つかりません。
だから、少し考えてみてください。コンピュータは、ローカルサブネット外の他のマシンに到達するために、ゲートウェイアドレスを知っている必要があります。したがって、サブネット10.0.1.0/24があり、マシンが10.0.1.12の場合、ゲートウェイを使用せずに10.0.1.0-10.0.1.255の任意のマシンに到達できます。
ゲートウェイは通常、マシンのサブネット内にある必要があります。そうでない場合、マシンはゲートウェイに到達する方法がありません(あなたがしているように、いくつかのルーティングトリックなしで)。上記の例に戻ると、ゲートウェイのIPが10.0.2.10の場合、マシンはそれに到達する方法がありません(サブネットの外部にトラフィックを送信するには、サブネットの外部にあるゲートウェイに到達する必要があります)。 。
あなたは絶対に確信しています正しいサブネットマスクを持っていますか?別の例として、ゲートウェイが10.0.2.0の10.0.1.0/16にIPがある場合、これは完全に有効です。 10.0.1.0/24と10.0.2.0のゲートウェイがある場合、これはそうではありません。 ISPが間違ったネットマスク情報を提供していると思います。
Initscriptsで同じ結果を達成することはできません。/etc/sysconfig/network-scripts/network-functionsの関連部分は次のとおりです。
if [ "$GATEWAY" = "0.0.0.0" ]; then
/sbin/ip route add default dev ${GATEWAYDEV}
else
/sbin/ip route add default via ${GATEWAY}
fi
つまり、リストした2つのコマンドの1つだけが実行され、両方は実行されません。
より良い解決策は、1.0.0.0/24から別のIPを取得し、それを2.0.0.1ではなくサーバーのeth0に与えることです。次に、従来の設定ですべてを1.0.0.0/24以上にルーティングし、プロキシARPやiptablesなどの完全に正当なもので2.0.0.0/24を使用します。
それができない場合は、2つを貼り付けてくださいip route
コマンドを/etc/rc.localに追加します。
先週同じ問題に出くわした。 ip route add...
を使用して手動でルートを設定し、それを永続化するには、ip r l > /etc/sysconfig/network-scripts/route-em1
(後で少し編集します)と出来上がり