GRE IPからVMへ(Proxmox) - フルパスを表示するTraceroute

GRE IPからVMへ(Proxmox) - フルパスを表示するTraceroute

88.198.49.xxx= Hetzner(仮想マシンが実行される場所)

141.94.176.xxx=OVH(下のブロックを含む)

164.132.xxx.0/28= Hetznerの仮想マシンのIPブロックとして使用

GREを設定するために、次のコマンドを実行しました。

OVH:

ip tunnel add gre1 mode gre remote 88.198.49.xxx local 141.94.176.xxx ttl 255
ip link set gre1 up
ip route add 164.132.xxx.0/28 dev gre1
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

ヘルツナー:

ip tunnel add gre1 mode gre remote 141.94.176.xxx local 88.198.49.xxx ttl 255
ip link set gre1 up
ip rule add from 164.132.xxx.0/28 table 666
ip route add default dev gre1 table 666
ip route add 164.132.xxx.0/28 dev vmbr0 table 666
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

/etc/network/インターフェース(ヘッツナー)

auto vmbr0
iface vmbr0 inet static
        address 164.132.xxx.1/28
        bridge-ports none
        bridge-stp off
        bridge-fd 0

164.132.xxx.1 ルートを追跡すると正常に動作しますが、Hetzner IP は表示されません。

  7     1 ms     1 ms     1 ms  10.95.34.50
  8     2 ms     2 ms     2 ms  10.73.1.135
  9     2 ms     2 ms     2 ms  10.72.66.67
 10     2 ms     2 ms     2 ms  10.164.42.155
 11     1 ms     1 ms     1 ms  xxxxxx [141.94.176.xxx]
 12    17 ms    17 ms    17 ms  xxxxxx [164.132.xxx.1]

ただし、164.132.xxx.2 を使用して VM を追跡すると、次の結果が表示されます。

  7     1 ms     1 ms     1 ms  10.95.34.32
  8     2 ms     2 ms     2 ms  10.73.1.45
  9     2 ms     2 ms     2 ms  10.72.66.67
 10     2 ms     2 ms     1 ms  10.164.42.163
 11     1 ms     1 ms     1 ms  xxxxxx [141.94.176.xxx]
 12    14 ms    14 ms    14 ms  xxxxxx [88.198.49.xxx]
 13    15 ms    15 ms    15 ms  xxxxxx [164.132.xxx.2]

88.198.49.xxxが表示されないようにどのように隠すことができますか? NATを介してこれを行うことができると思いますが、NATアドレスをVMアドレスとして使用したくありません。可能であれば、VMの構成を次のように維持したいと思います。

IP: 164.132.xxx.2/28
Gateway: 164.132.xxx.1

ベストアンサー1

IPアドレス88.198.49.xxxと164.132.xxx.1は、同じシステム、つまりHetznerルーターとして機能するハイパーバイザーを表します。

したがって、宛先がシステム自体の場合は、164.132.xxx.1で連絡したアドレスで応答します。 164.132.xxx.2のルーターとして機能すると、ICMPが生成されます。転送中にTTLが期限切れになりました。ルーティングテーブルで最も適切なアドレスを選択します。デフォルトでは、関連インターフェイス()でデフォルトのIPアドレスを選択しますgre1が、そのインターフェイスに設定されたIPアドレスがないため、いくつかのアルゴリズムに従って88.198.49.xxxを取得します(おそらくローカルトンネルエンドポイントアドレスであるためです。それは重要ではありません)。

src通常、この動作を変更するには、次のようにヒントを使用してパスを求めるメッセージを表示できます。録音された:

srcADDRESS

ルーティングプレフィックスを含む宛先に送信するときのデフォルトソースアドレス。

したがって、表666のデフォルトパスを次のように置き換えます。

ip route add default dev gre1 table 666

到着する:

ip route add default dev gre1 src 164.132.xxx.1 table 666

動作します...テーブル666を除いては使用されません。放射1パック。追加は次のip rule iif gre1 table 666目的には使用されません。放射ip rule add oif gre1 table 666起動時に使用されないインターフェイスにバインド

したがって、これにはメインルーティングテーブルのグローバル動作が必要ですが、OVHに属するIPアドレスが漏洩して検出された場合、Hetznerに問題を引き起こす可能性があります。悪い。

私が見つけることができる最も簡単な方法は、次のように表示することです。グレー1また、重いものを使用しないでください。つながる関数、グローバル使用fwmark_reflectシステム制御の切り替え:

fwmark_reflect - BOOLEAN

コントロールマークカーネル生成IPv4応答パケットTCP RST や ICMP エコー応答などのソケットには接続されません。設定されていない場合、これらのパケットのfwmarkは0です。設定されている場合は、応答するパケットのfwmarkがあります。

このイベントはルーティング決定フェーズで引き続き発生するため、ルーティングが発生する前にフラグを設定する必要があります。

したがって、上記の変更に加えて、src 164.132.xxx.1次のことを行う必要があります。

iptables -t mangle -A PREROUTING -i gre1 -j MARK --set-mark 666
ip rule add fwmark 666 lookup 666
sysctl -w net.ipv4.fwmark_reflect=1

ヘッツナーのIPアドレスは公開されなくなりました。

おすすめ記事