プレフィックスの下にある異なるアドレスから IPv6 パケットを送信するにはどうすればよいでしょうか?

プレフィックスの下にある異なるアドレスから IPv6 パケットを送信するにはどうすればよいでしょうか?

/64 ipv6 プレフィックスを持つ VPS 上のすべてのアドレスを活用する方法を考えています。しかし、メッセージを送信しようとすると、メッセージは常にインターフェースに割り当てられたアドレスから送信され、特定の IP から送信する方法がわかりません。

関連するインターフェースの ifconfig 出力は次のとおりです。

ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 51.x.y.z  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::i:j:k:1c0  prefixlen 64  scopeid 0x20<link>
        inet6 2607:a:b:c::55  prefixlen 64  scopeid 0x0<global>
        ether fa:16:l:m:n:o  txqueuelen 1000  (Ethernet)

CLI 経由で IPv6 を確認すると、次の内容が明確に表示されます。

# curl icanhazip.com
2607:a:b:c::55

私の理解が正しければ、2607:a:b:c:1::55 も私の範囲内の IP です。その IP 経由でメッセージを送信するにはどうすればよいでしょうか? 予想される結果は次のとおりです。

# curl icanhazip.com
2607:a:b:c:1::55

ありがとう!

答え1

1 回限りのジョブまたは短期間に別の IPv6 アドレスを使用する場合は、次のipコマンドを使用して IP アドレスを追加 (または変更) するだけです。

ip addr add 2607:a:b:c:1::55 dev eth0 valid_lft 120 preferred_lft 120

この例では、有効期間が 2 分だけの IP アドレスを eth0 インターフェイスに追加します。

また、Curlに特定のインターフェース/送信IPアドレスを使用するように指示することもできます。--interfacevalid_lftオプション。 &ディレクティブも確認してくださいpreferred_lft

関連情報