デフォルトパスを追加できないのはなぜですか?

デフォルトパスを追加できないのはなぜですか?

IP 10.10.0.2のプライベートアドレス空間にCentOS 7システムがあります。認定IPを使用するゲートウェイを介してインターネットに接続したいと思います。同じスイッチに接続、私達はそれを50.50.50.50と呼びます。一点で働いていましたが、今は破損して修正できないようです。また、フォーマットを理解しやすくするために、net-toolsもインストールしました。

[root@node002 ~]# ip route show
10.0.0.0/8 dev ens785 proto kernel scope link src 10.10.0.2 metric 100 
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785

では、他のすべてのゲートウェイとして50.50.50.50のパスを追加するにはどうすればよいですか?

私はいくつか試しましたが、[root@node002 ~]# ip route add 0.0.0.0/0 dev ens785ルートテーブルに何も追加されません。エラーメッセージもありません。また、以下のようにホストにパスを追加しようとしましたがip route add 50.50.50.50 dev ens785、これによりルーティングテーブルに追加の行が追加されました。

[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785

また、このような他のバリエーションも試しましたが、[root@node002 ~]# ip route add 0.0.0.0/0 via 50.50.50.50実行直後に表示される内容なので、ホストへのパスが削除されました。

[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785

私も次のことを試しました。

[root@node002 ~]# ip route add default via 50.50.50.50/0
Error: ??? address is expected rather than "50.50.50.50/0".

そしてさらに:

[root@node002 ~]# ip route add default dev ens785
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785

他のすべてのコンピュータには、ターゲットとゲートウェイが0.0.0.0のデフォルトパスがあります。たとえば、私のデスクトップと同様に、これは意味があります。同じネットワーク上のトラフィックはゲートウェイなしでローカルネットワークに移動し、他の場所へのトラフィックはルーターを通過します。

root@desktop ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    100    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0

この問題をどのように壊したのか、それを修正する方法がわかりません。どんなアドバイスもありがとうございました!

編集する

まず、同じインターフェイスでゲートウェイシステムにプライベートアドレスを提供しました。今は10.1.1.1で、私は考えるサブネットマスクが 255.0.0.0 であることを示します。これは同じネットワークであることを意味します。このアドレスはpingできます。ただし、デフォルトとして追加することはできません。

[root@node002 ~]# ip route add default via 10.1.1.1
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785

一時的にノードにパブリックIPを追加してから、デフォルトゲートウェイを追加できます。

[root@node002 ~]# ip a add 50.50.50.51 dev ens785
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785
[root@node002 ~]# ip route add default via 10.1.1.1
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    100    0        0 ens785
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785
50.50.50.51     0.0.0.0         255.255.255.255 UH    100    0        0 ens785

その後、パブリックIPアドレスを削除できますが、それでもデフォルトのルートを維持できます。

[root@node002 ~]# ip a del 50.50.50.51/32 dev ens785
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    100    0        0 ens785
10.0.0.0        0.0.0.0         255.0.0.0       U     100    0        0 ens785
50.50.50.50     0.0.0.0         255.255.255.255 UH    0      0        0 ens785

もしそうなら、認定IPを削除し、ゲートウェイはそのままにすることができれば、なぜゲートウェイを追加するために認定IPを追加する必要がありますか?

編集2 単にパブリックIPを追加しない限り、ipコマンドを使用してデフォルトルートを追加することはできません。

状況をさらに混乱させるために、NetworkManagerをバイパスし、ifcfgファイルを使用して(DHCPの代わりに静的割り当てに置き換える)目標を達成することができました。

[root@node002 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens785 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
NM_CONTROLLED=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens785
DEVICE=ens785
ONBOOT=yes
MTU=9000
HWADDR=00:11:22:33:44:55
IPADDR=10.10.0.2
NETMASK=255.0.0.0
GATEWAY=10.1.1.1
DNS1=10.1.1.1
[root@node002 ~]# systemctl stop NetworkManager 
[root@node002 ~]# ifdown ens785 && ifup ens785
[root@node002 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use 
Iface
0.0.0.0         10.1.1.1        0.0.0.0         UG    0      0        0 ens785
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 ens785
169.254.0.0     0.0.0.0         255.255.0.0     U     1004   0        0 ens785

ベストアンサー1

まず、IPとしてデフォルトゲートウェイを追加することはできず、インターフェイスにゲートウェイと同じ範囲のIPがありません。たとえば、デフォルトゲートウェイを追加するには、50.50.50.50/24同じ範囲のIPが必要です50.50.50.100/24

インターフェイスが1つだけでプライベートIPアドレスがあり、インターネットにアクセスする必要がある場合は、ローカルIPからパブリックIPにNATを実行できるようにルーターが必要です。

スイッチのみがあるため、この問題を解決するには、プライベートIPとパブリックIP範囲のIPを使用して同じインターフェイスに子(エイリアス)インターフェイスを追加してから、デフォルト50.50.50.100/24ゲートウェイを追加するトリックを実行できます。ip route add default via 50.50.50.50

おすすめ記事