簡単に言うと、2つのinetデバイスがあります:enp0s3
とenp0s9
。
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つのデフォルトパスが設定されています。指標が違うので大丈夫です。しかし、これは後で問題を引き起こす可能性があります。