2023年6月5日月曜日

Oracle CloudでIPv6

しばらく前から利用を始めたOracle Cloud Always Free。
パブリックなIPv4アドレスは固定でわあり当てられており、
各種サービスの運用やsshでのメンテナンス等、
特に困ることはないものの、
今時はIPv6でのアクセスラインも確保しておかないと、
ということで、VPSに外部からアクセス可能な
固定のIPv6アドレスを設定してみました。
やり方は以下のとおりです。

まずはOracle Cloudにサインイン。
ここでは[Language(地球)]アイコンで
[日本語]が選択されていることを前提に説明します。
[サービス・リンク]-[固定]ペインで
[仮想クラウド・ネットワーク]リンクをクリックし、
使用中のVNCの名前をクリックします。
そしてページ左の[CIDR Blocks/Prefixes (1)]メニューをクリック。
ここでカッコ内の数字は含まれる要素の個数であり、
状況によって変化します。以下同様です。
[Add CIDR Block/IPv6 Prefix]ボタンをクリックし、
[IPv6 Prefixes]ペインの[Assign an Oracle allocated IPv6 /56 prefix.]を☑。
[Add CIDR Blocks/Prefixes]ボタンをクリックします。
これでIPv6のブロックが割り当てられました。

続いて[サブネット(1)]メニューをクリック。
使用中のサブネットの名前をクリックして
[IPv6 Prefixes (-)]メニューの[Add IPv6 Prefix]ボタンをクリックし、
[Assign an Oracle allocated IPv6 /64 prefix.]を☑。
現れたテキストボックスに"00"(任意の1バイトの値を16新表記で)を入力し、
[Add IPv6 Prefix]ボタンをクリックします。
これで使用するIPv6のブロックが指定できました。

今度はトップメニューの[サービス・リンク]-[固定]ペインで
[インスタンス]リンクをクリックします。
作成済みインスタンスのいずれかの名前をクリックし、
[アタッチされたVNIC]メニューをクリックして、
使用中のVNICの名前をクリックします。
次いで[IPv6アドレス]メニューをクリックし、
[IPv6アドレスの割当て]ボタンをクリックします。
[Prefix]を候補(多分1つしかない)の中から選択し、
[Manually assign IPv6 addresses from prefix]ラジオボタンを選んで、
現れたテキストボックスに":1:1"(任意の有効なIPv6アドレス)指定し、
[すでに別のVNICに割り当てられている場合に割当て解除]を☑して、
[割当て]ボタンをクリックします。
これを全ての作成済みインスタンスについて行ないます。
なお私は2台目のアドレスには":1:2"を指定しました。

あとはインスタンスを再起動して
$ ip addr
を実行し、想定通りのIPv6アドレスが
割り当てられていることを確認しておきます。

ただし、このままだとセキュリティ設定により
IPv6での通信ができないので、手動で穴を空ける必要があります。
取り敢えずsshでログインできるようにします。

トップページの[サービス・リンク]-[固定]ペインの
[仮想クラウド・ネットワーク]リンクをクリックし、
使用中のVNCの名前をクリックして、
[ルート表(1)]メニューをクリックし、
存在しているルート表の名前をクリックします。
[ルート・ルールの追加]ボタンをクリックし、
[プロトコルのバージョン]に[IPv6]を選択し、
[ターゲット・タイプ]に[インターネット・ゲートウェイ]を選択して、
[宛先CIDRブロック]には"::/0"を入力、
[****のターゲット・インターネット・ゲートウェイ]は
選択可能なものから選択し、
[ルート・ルールの追加]ボタンをクリックします。

同様にトップページの[サービス・リンク]-[固定]ペインの
[仮想クラウド・ネットワーク]リンクをクリックし、
使用中のVNCの名前をクリックして、
今度は[セキュリティ・リスト(1)]メニューをクリックして、
存在しているセキュリティ・リストの名前をクリックします。
[イングレス・ルールの追加]ボタンをクリックし、
[ソース・タイプ]に[CIDR]を選択、[ソースCIDR]に"::0/"を入力、
[IPプロトコル]に[TCP]を選択、[宛先ポート範囲]に"22"を入力し、
[イングレス・ルールの追加]ボタンをクリックします。
これはssh(TCPの22番ポート)で受信するパケットだけを
通過する設定なので、必要に応じて応用してください。
例えばIPv6のhttp/httpsサーバにもしたければ、
[宛先ポート範囲]を"22,80,443"に設定することになります。

今度は送信側設定のため[エグレス・ルール(1)]メニューをクリックします。
[エグレス・ルールの追加]ボタンをクリックし、
[宛先タイプ]に[CIDR]を選択、[宛先CIDR]に"::0/"を入力、
[IPプロトコル]に[TCP]を選択、あとは標準の"ALL"状態とし
[エグレス・ルールの追加]ボタンをクリックします。
この時点でIPv6でのsshログインが可能になっています。

最後に各インスタンスに割り当てたIPv6アドレスを
DNSサーバにAAAAレコードで登録し、
ホスト名でアクセスできるようにしておきます。
というか、IPv6アドレスは長くて覚えづらいので
登録しておくべきでしょう。
具体的な登録方法はドメインのレジストラや
DNSサーバのホスティングサービスに訊いてください。

0 件のコメント:

コメントを投稿