セカンダリ・プライベートIPアドレスを使用するためのLinuxの構成

Linuxをセカンダリ・プライベートIPアドレスを使用するように構成します。

セカンダリ・プライベートIPをVNICに割り当てた後、それを使用するようにOSを構成する必要があります

基本コマンド(再起動後は維持されない)

インスタンスで、次のコマンドを実行します。ベア・メタル・インスタンスとVMインスタンスの両方について、Linuxのすべてのバリアントで動作します:
ip addr add <address>/<subnet_prefix_len> dev <phys_dev> label <phys_dev>:<addr_seq_num>
説明:
  • <address>: セカンダリ・プライベートIPアドレス。
  • <subnet_prefix_len>: サブネットの接頭辞の長さ。たとえば、サブネットが192.168.20.0/24の場合、サブネット接頭辞の長さは24です。
  • <phys_dev>: アドレスを追加するインタフェース(例: ens2f0)。
  • <addr_seq_num>: デバイス上のアドレス・スタックの連続した番号(例: 0)。
例:
ip addr add 192.168.20.50/24 dev ens2f0 label ens2f0:0

後でアドレスを削除する場合は、次を使用できます:

ip addr del 192.168.20.50/24 dev ens2f0:0 

VNICからもセカンダリIPを削除してください。これは、前述のコマンドを実行してOS構成からアドレスを削除する前または後に行うことができます。

ノート

セカンダリIPをセカンダリVNICに割り当て、セカンダリVNICにポリシーベースのルーティングを使用している場合は、ip rule add from <source address> lookup <table name>コマンドを使用して、セカンダリIPアドレスについて同じルート表を参照するようにインスタンスのルート・ルールを構成します。

構成ファイル(再起動後も維持される)

再起動後も構成を維持するには、構成ファイルに情報を追加します。

Oracle LinuxおよびCentOSの場合

Oracle Linux 7では、/etc/sysconfig/network-scripts/ifcfg-<phys_dev>:<addr_seq_num>という名前のifcfgファイルを作成します。前述の例を続行する場合、ファイル名は/etc/sysconfig/network-scripts/ifcfg-ens2f0:0になり、内容は次のようになります:

DEVICE="ens2f0:0"
BOOTPROTO=static
IPADDR=192.168.0.50
NETMASK=255.255.255.0
ONBOOT=yes

Oracle Linux 8またはOracle Linux 9では、推奨される方法は、nmcliを使用してNetworkManagerのインタフェースを構成することです。

ネットワーク・マネージャが再起動後に接続を上書きする場合、推奨される解決策はブート時にip addr add <address>/<subnet_prefix_len> dev <phys_dev> label <phys_dev>:<addr_seq_num>コマンドを実行することです。これは、cronジョブまたは/etc/rc.d/rc.localなどを使用して実行できます。または、dracutがNetworkManager接続プロファイルを上書きしないように、カーネル・コマンドライン・パラメータを変更できます。

ノート

セカンダリIPをセカンダリVNICに割り当て、セカンダリVNICにポリシーベースのルーティングを使用している場合は、ip rule add from <source address> lookup <table name>コマンドを使用して、セカンダリIPアドレスについて同じルート表を参照するようにインスタンスのルート・ルールを構成します。

Ubuntuの場合

/etc/netplan/<filename>.yamlに格納されているnetplan構成を作成または変更します。前述の例を続行するには、ファイル名が/etc/netplan/50-cloud-init.yamlである場合、次に示すように(すべてのアドレスの) DHCPを無効にして、それを手動構成に置き換えるように変更します:


network:
  ethernets:
    ens3: 
      dhcp4: no
    addresses: [192.168.64.223/24, 192.168.64.75/24]
    gateway4: 192.168.64.1
    nameservers:
      addresses: [169.254.169.254] 
    match:
      macaddress: 02:00:17:0e:66:7b
    set-name: ens3  
    version: 2

この例では、192.168.64.223はVNICに割り当てられたプライマリIPアドレスで、192.168.64.75はセカンダリIPアドレスです。macaddressはVNICを指し、これはコンソールまたはoci-utilsで確認できます。より複雑なnetplanの構成例は、netplanのリファレンス・ページを参照してください。アップストリームの例は、ネットワーク・インタフェースへのVLANのアタッチを参照してください。

ノート

セカンダリIPをセカンダリVNICに割り当て、セカンダリVNICにポリシーベースのルーティングを使用している場合は、ip rule add from <source address> lookup <table name>コマンドを使用して、セカンダリIPアドレスについて同じルート表を参照するようにインスタンスのルート・ルールを構成します。