banner
Alexeisie

AlexEisie

啊?
github

Oracle甲骨文のインスタンスには、複数のパブリックIPが割り当てられています。

目標は、単一のインスタンスに複数のパブリック IP アドレスを追加することです
実験環境:
ARM(A1)インスタンス
ubuntu 22.04(Debian ベース)

はじめに:異なるインスタンスタイプの VNIC 割り当て上限とパブリック IP の数に制限があるようです。
誤った操作はマシンの接続断につながる可能性があるため、コマンド入力時には正確かつ完全なパラメータを確認してください。

1.OCI での VNIC の追加#

はい、1 つの VNIC に複数の IPv4 VCN アドレスを追加できますが、パブリック IP は 1 つしかバインドできません。したがって、新しい VNIC(ネットワークカード)を追加する必要があります。
なぜ新しい VNC を作成しないのですか?新しい VNC を追加する制限はありませんが、パブリックゲートウェイには制限があるため、新しい VNIC は引き続き同じ VCN を使用する必要があります。

Compute/Instances/Instance details/Attached VNICs

1.1 新しい VNIC の作成
Create VNIC をクリックします
VCN:主 VNIC と同じ VCN を選択します
サブネット:主 VNIC と同じサブネットを選択します
特別な要件がない場合は、VNIC を作成します

1.2VNIC の設定
新しい VNIC をクリックし、IPv4 アドレスを選択し、新しい IPv4 アドレスを登録します
新しい IPv4 アドレスにパブリック IP アドレスをバインドします。一時的な IP(Ephemeral public IP)または予約済み IP(Reserved public IP)を使用できます

これで OCI の操作は終了です。次のステップで使用するために、新しい VNIC の MAC アドレスと IPv4 プライベートアドレスを覚えておいてください。

2. インスタンスのネットワークカードの設定#

2.1 ネットワークカードの確認
OCI で VNIC を追加すると、正常な場合はインスタンスに自動的に新しいネットワークインターフェースが追加されます。
ネットワークインターフェースを確認するには、ifconfigコマンドを使用します。
A1 インスタンスの場合、主 VNIC は enp0s3 に対応し、新しい VNIC は enp1s0 に対応するはずです。実際の場合は MAC アドレスで区別してください。

2.2 ネットワークインターフェースに IPv4 アドレスを追加する
筆者の実験では、ネットワークインターフェースは自動的に新しい IPv4 アドレスを追加しませんでした。dhclient を使用してもうまくいかなかったため、手動で追加することにしました。すでに新しいネットワークインターフェースに正しい IPv4 アドレスが表示されている場合は、この手順を無視してください。
ip addr add <プライベートアドレス> dev <ネットワークインターフェース名>
例:ip addr add 10.0.0.10/24 dev enp1s0
再度、ネットワークインターフェースを確認すると、新しい IPv4 アドレスが表示されるはずです。
内部ネットワークのブロードキャストと ARP 伝播を容易にするために、ブロードキャストアドレスを変更する必要があります。ネットワーク 10.0.0.0/24 の場合、ブロードキャストアドレスは 10.0.0.255 になります。
ifconfig enp1s0 <プライベートアドレス> netmask 255.255.255.0 broadcast <ブロードキャストアドレス>
例:ifconfig enp1s0 10.0.0.10 netmask 255.255.255.0 broadcast 10.0.0.255

2.3 ネットワークインターフェースにデフォルトゲートウェイを追加する
新しい VNIC と主 VNIC は同じ VCN にあるため、同じゲートウェイを使用する必要があります。まず、ゲートウェイアドレスを取得する必要があります。主 VNIC のゲートウェイ設定を確認するために、ルーティングテーブルを使用します。
route -n

_Kernel IP routing table
Destination  Gateway      Genmask         Flags Metric Ref    Use Iface
(略)
0.0.0.0      10.0.0.1     0.0.0.0         UG    100    0        0 enp0s3
(略)

これにより、enp0s3 ネットワークカードに対して、0.0.0.0/0 の宛先アドレスはすべてゲートウェイ 10.0.0.1 にルーティングされることがわかります。

このゲートウェイへのアクセスを新しいネットワークカードでテストできます。
ping 10.0.0.1 -I enp1s0

次に、新しいネットワークカードにデフォルトゲートウェイを設定します。
route add default gw <ゲートウェイアドレス> <ネットワークインターフェース名>
例:route add default gw 10.0.0.1 enp1s0

再度、ルーティングテーブルを確認すると、enp1s0 に新しいルート情報が表示されるはずです。

Kernel IP routing table
Destination  Gateway      Genmask         Flags Metric Ref    Use Iface
0.0.0.0      10.0.0.1     0.0.0.0         UG    0      0        0 enp1s0
0.0.0.0      10.0.0.1     0.0.0.0         UG    100    0        0 e
(略)

これでパブリック IP アドレスの追加が完了しました。

3.(オプション)ネットワークの接続テスト#

インスタンスが新しいアドレスで外部ネットワークにアクセスする
ping google.com -4 -I enp1s0
外部ネットワークがインスタンスの新しいアドレスにアクセスする
'ping <新しいパブリックアドレス>'

4.(オプション)ネットワークインターフェースの MTU と優先度の変更#

メインネットワークカードの MTU は 9000 ですが、ネットワーク層のパケット送信頻度を下げる必要がある場合は、同じ MTU に変更できます。
ifconfig enp1s0 mtu 9000

ネットワークインターフェースの出口優先度を変更する場合は、ルートホップ数を変更してルートの優先度を設定できます。
ifmetric enp1s0 0

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。