IPルーティング:ホストへのパスがありません。

IPルーティング:ホストへのパスがありません。

簡単に言うと、2つのinetデバイスがあります:enp0s3enp0s9

enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:f3:bf:35 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 82336sec preferred_lft 82336sec
    inet6 fe80::67c3:35fd:6d5c:19f8/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:13:5d:97 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.240/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s9
       valid_lft 2998sec preferred_lft 2998sec
    inet6 fe80::9a68:d4d0:6bf7:485d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

アクセスする必要があるサービスの中には、10.49.0.0/16プロキシ(10.49.1.1:8080)を介してのみアクセスできます。enp0s3この範囲はinetデバイスを使用してアクセスできます。

次のように:

   ~ ping 10.49.99.166 -I enp0s3
PING 10.49.99.166 (10.49.99.166) from 10.0.2.15 enp0s3: 56(84) bytes of data.
64 bytes from 10.49.99.166: icmp_seq=1 ttl=250 time=15.3 ms
64 bytes from 10.49.99.166: icmp_seq=2 ttl=250 time=14.1 ms
64 bytes from 10.49.99.166: icmp_seq=3 ttl=250 time=11.8 ms
^C
--- 10.49.99.166 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 11.789/13.725/15.287/1.452 ms
   ~ ping 10.49.99.166 -I enp0s9
PING 10.49.99.166 (10.49.99.166) from 192.168.1.240 enp0s9: 56(84) bytes of data.
^C
--- 10.49.99.166 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6093ms
   ~

私が得たいのはinetデバイスに送信されたすべて10.49.0.0/16ですenp0s3

次のコマンドを使用してこのパスを追加してみました。

sudo ip route add 10.49.0.0/16 via 10.0.2.15 dev enp0s3

だから、

   ~ ip route show
default via 192.168.1.1 dev enp0s9 proto dhcp src 192.168.1.240 metric 100
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 20101
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 101
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-34c76a82552a proto kernel scope link src 172.18.0.1 linkdown
192.168.1.0/24 dev enp0s9 proto kernel scope link src 192.168.1.240 metric 100

その後、ルールをテストしました。

   ~ ip route get 10.49.99.166
10.49.99.166 dev enp0s3 src 10.0.2.15 uid 1000
    cache

ただし、目的のサービスにアクセスしようとすると、常にアクセスできないというメッセージが表示されます。

   ~ oc login --token=... --server=https://domain:6443
error: dial tcp 10.49.99.166:6443: connect: no route to host - verify you have provided the correct host and port and that the server is currently running.

   ~ telnet api.ocpdes.t-systems.es 6443
Trying 10.49.99.166...
telnet: Unable to connect to remote host: No route to host

どんなアイデアがありますか?

答え1

sudo ip path 10.0.2.15 dev enp0s3経由で10.49.0.0/16を追加

10.0.2.15はenp0s3に関連付けられたIPアドレスのようです。パケットを転送できるルーターアドレスを10.0.2.0/24に提供する必要があります。おそらく10.0.2.2でしょう。ただし、ネットワークを管理している人に連絡してください。

NB 単にパスを変更/追加するだけでは、プロキシの背後にあるサービスにアクセスできません。

注:現在2つのデフォルトパスが設定されています。指標が違うので大丈夫です。しかし、これは後で問題を引き起こす可能性があります。

関連情報