web-dev-qa-db-ja.com

静的ルートを追加できません:SIOADDRT:ネットワークに到達できません

私はこれを理解しようと数日間壁に頭をぶつけてきました:私のifconfigは:

eth0      Link encap:Ethernet  HWaddr 00:50:56:BB:XX:XX
          inet addr:192.168.36.132  Bcast:192.168.37.255  Mask:255.255.254.0

eth1      Link encap:Ethernet  HWaddr 00:50:56:BB:XX:XX
          inet addr:116.xx.xx.xx    Bcast:116.xx.xx.xx    Mask:255.255.255.192

Eth0から出て行くように静的ルートを追加しようとすると、次のエラーが発生します。

servername-test:/ # route add -net 10.248.12.0 netmask 255.255.255.240 gw 192.168.36.254 dev eth0 
SIOCADDRT: Network is unreachable

私のデフォルトゲートウェイは:

servername-test:~ # netstat -anr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
116.xx.xx.xx    0.0.0.0         255.255.255.192 U         0 0          0 eth1
192.168.238.0   192.168.36.254  255.255.255.0   UG        0 0          0 eth0
192.168.239.0   192.168.36.254  255.255.255.0   UG        0 0          0 eth0
192.168.36.0    192.168.36.254  255.255.254.0   UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         116.xx.xx.xx    0.0.0.0         UG        0 0          0 eth1

ip route list出力

116.66.240.64/26 dev eth1 proto kernel scope link src 116.xx.xx.xx 
192.168.238.0/24 via 192.168.36.254 dev eth0 
192.168.239.0/24 via 192.168.36.254 dev eth0 
192.168.36.0/23 via 192.168.36.254 dev eth0
169.254.0.0/16 dev eth0 scope link 
127.0.0.0/8 dev lo scope link 
default via 116.xx.xx.xx dev eth1
16
AnonPoster

192.168.36.0/23リンクローカルを宣言していません。アドレスが割り当てられているにもかかわらず、リンクローカルルートがルートに表示されていないようです。

192.168.36.0    192.168.36.254  255.255.254.0   UG        0 0          0 eth0
192.168.36.0/23 via 192.168.36.254 dev eth0

代わりに、宣言された192.168.36.0/23をゲートウェイ192.168.36.254に渡す必要があります。ゲートウェイ192.168.36.254は、技術的にはルーティングテーブルの残りの部分によれば、ネイバーではないようです(カーネルは_ [SOMECODE]に到達する方法を認識していません) _)。

192.168.36.0/23にはゲートウェイが割り当てられていないはずです。IPアドレス192.168.36.132/23によると、これはおそらくリンクローカル範囲(ARPを介して直接応答する近隣)であることを意図しているためです。

あなたshould代わりに次のようなエントリがあります:

192.168.36.0    0.0.0.0  255.255.254.0   U        0 0          0 eth0
192.168.36.0/23 dev eth0 scope link

修正するには、192.168.36.0/23のゲートウェイ宣言を削除し、次のようなエントリに置き換える必要があります。

ip route add 192.168.36.0/23 dev eth0
16
Matthew Ife

もしそうなら、コマンドラインを忘れて、イーサネットファイルのエントリを直接追加し、「サービスネットワーク再起動」してください。うまくいきました!最初にイライラさせられたので、私はコンピューターをばかげたと感じます-次に、同じルートがファイルに強制的に追加しながら完全に機能します。

0