web-dev-qa-db-ja.com

ネットプランを使用して静的セカンダリIPをDHCPインターフェイスに追加する方法

私のサーバーには次の内容のファイル/etc/netplan/50-cloud-init.yamlがあります。

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: fa:**:**:**:**:**
            set-name: ens3

これにより、次のインターフェース構成が得られます。

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global dynamic ens3
       ...

ここまでは順調ですね。しかし、今、このインターフェイスに追加のセカンダリ静的IPとして10.0.0.250を追加する必要があります。それを行う最良の方法は何ですか?新しいファイル/etc/netplan/60-service-ip.yamlを作成しました:

network:
    version: 2
    ethernets:
        ens3:
            addresses:
              - 10.0.0.5/24
              - 10.0.0.250/24

これは機能するようですが、動的IPを静的IPとして再定義します。

5
Torsten Bronger

Ask Ubuntuで回答

コピー:

ソリューションは非常にシンプルで、静的IPアドレスを設定してDHCPを有効にするだけです。基本的には、設定にdhcp4: yesを追加するだけです。

この構成では、プライマリ静的IPアドレスとセカンダリDHCP割り当てIPアドレスが与えられました。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      dhcp6: no
      addresses: 
        - 10.1.2.15/24
      gateway4: 10.1.2.1
      nameservers:
        search:
          - example.com
        addresses: [10.1.2.10]

Ip address show enp0s3の結果は私に与えました:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    inet 10.1.2.15/24 brd 10.0.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 10.1.2.96/24 brd 10.0.1.255 scope global secondary dynamic enp0s3
       valid_lft 3224sec preferred_lft 3224sec
    inet6 fe80::a00:27ff:fe20:2c40/64 scope link 
       valid_lft forever preferred_lft forever

アドレス10.1.2.96は、セカンダリダイナミックキーワードによって示される、セカンダリDHCP割り当てアドレスです。

3
Lenniey

これは実際にははるかに簡単です。次のようにdhcp4: trueを静的構成に追加するだけです(必要がない場合はv6を無効にします)。

network:
    version: 2
    ethernets:
        ens3:
            dhcp4: yes
            dhcp6: no
            addresses:
              - 10.0.0.250/24
3
Broco

AzureでDHCPアドレスをセカンダリとして、静的アドレスをプライマリとして持っているという同じ問題がありました。 Azure仮想ネットワークはゲートウェイとネームサーバーの情報を提供するため、dhcpアドレスをプライマリとして残すことは重要です。

私はこの回避策を見つけました:

network:
    version: 2
    ethernets:
        eth0:
          dhcp4: true
          addresses:
              - 10.0.2.6/24 (IP acquired by DHCP)
              - 10.0.2.21/24
          match:
              macaddress: 00:0d:3a:4f:45:f0
          set-name: eth0

具体的には、Azureでは、Azureリソース側に静的IPアドレスを割り当てます。通常、これはdhcpによってゲストOSに取得されます。したがって、ゲストOSは動的IPとして扱いますが、Azureからは常に同じ静的IPを取得します。
上記では、セカンダリIPの前にdhcp IPを配置することを強制しました。
私の場合、期待どおりに機能しました。

2
Insan