ネットプランとそれを正しく準備する方法

Ubuntu は素晴らしいオペレーティング システムです。私は長い間 Ubuntu サーバーを使っていなかったので、デスクトップを安定バージョンからアップグレードする意味がありませんでした。 そしてつい最近まで、私は Ubuntu サーバー 18.04 の最新リリースに対処する必要がありましたが、時代遅れでネットワークをセットアップできないことに気づいたとき、驚きは際限がありませんでした。ネットワーク インターフェイスをセットアップするための古き良きシステムのせいで、 /etc/network ファイル /interfaces の編集は無駄になってしまいました。 そして、それに代わるものは何でしょうか? 一見するとまったく理解できない恐ろしい何かが「Netplan」と出会います。

正直、最初は何が起こっているのか、「便利なのになんでこんなものが必要なのか」と理解できなかったのですが、少し練習してみると、これには独特の魅力があることに気づきました。 Netplan とは何なのかを続けましょう。これは Ubuntu のネットワーク設定用の新しいユーティリティです。少なくとも「他のディストリビューションではこのようなものは見たことがありません。」 Netplan の大きな違いは、構成が言語で記述されていることです。 ヤムルそうです、YAML は正しいと聞きました。開発者は時代に遅れないようにすることにしました (そして、彼らがどれほど賞賛しても、私は依然としてそれがひどい言語だと思います)。 この言語の主な欠点は、スペースに非常に敏感であることです。例を使用して構成を見てみましょう。

構成ファイルはパス /etc/netplan/filename.yaml に沿って配置され、各ブロックの間に + 2 個のスペースが必要です。

1) 標準ヘッダーは次のようになります。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

今行ったことを見てみましょう:

  • network: - これは構成ブロックの始まりです。
  • renderer: networkd - ここでは、使用するネットワークマネージャーを示します。これは、networkd または NetworkManager のいずれかです。
  • version: 2 - 私の理解では、ここは YAML バージョンです。
  • ethernets: - このブロックは、イーサネット プロトコルを構成することを示します。
  • enps0f0: — どのネットワーク アダプターを構成するかを示します。
  • dhcp4:no - DHCP v4、6 v6 dhcp6 をそれぞれ無効にします

2) IP アドレスを割り当ててみましょう。

    enp3s0f0:
      dhcp4:no
      macaddress: bb:11:13:ab:ff:32
      addresses: [10.10.10.2/24, 10.10.10.3/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: 8.8.8.8

ここでは、poppy、ipv4、ゲートウェイ、DNS サーバーを設定します。 複数の IP アドレスが必要な場合は、後に必須のスペースを入れてカンマで区切って記述することに注意してください。

3) 必要な場合はどうしますか ボンディング?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • Bonds: - ボンディングを構成することを説明するブロック。
  • Bond0: - 任意のインターフェース名。
  • インターフェイス: - ボンディングで収集された一連のインターフェイス。「前述したように、複数のパラメーターがある場合は、それらを角括弧で囲みます。」
  • パラメータ: — パラメータ設定ブロックを説明します。
  • mode: — ボンディングが機能するモードを指定します。
  • mii-monitor-interval: — 監視間隔を 1 秒に設定します。

Bond という名前のブロック内で、アドレス、ゲートウェイ 4、ルートなどのパラメーターを構成することもできます。

ネットワークに冗長性を追加しました。あとはインストールするだけです。 VLAN セットアップは完了したと見なされます。

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true

  • vlans: — vlan 構成ブロックを宣言します。
  • vlan10: — VLAN インターフェースの任意の名前。
  • id: — VLAN のタグ。
  • link: — VLAN にアクセスできるインターフェイス。
  • Routes: — ルート記述ブロックを宣言します。
  • — to: — ルートが必要な宛先のアドレス/サブネットを設定します。
  • via: — サブネットにアクセスする際に経由するゲートウェイを指定します。
  • on-link: — リンクが確立されたときにルートを常に登録する必要があることを示します。

スペースの配置方法に注意してください。これは YAML では非常に重要です。

そこで、ネットワーク インターフェイスを記述し、ボンディングを作成し、さらに VLAN を追加しました。 設定を適用しましょう。netplan apply コマンドは設定にエラーがないかチェックし、成功した場合は適用します。次に、システムが再起動されると、設定は自動的に生成されます。

これまでのコード ブロックをすべて収集すると、次のものが得られます。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: no
    ensp3s0f1:
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  vlan20:
    id: 20
    link: bond0
    dhcp4: no
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

これでネットワークは運用の準備が整い、すべてが最初に思ったほど怖くないことが判明し、コードは非常に美しく読みやすいことがわかりました。 PC netplan に感謝します。リンクに優れたマニュアルがあります。 https://netplan.io/.

出所: habr.com

コメントを追加します