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、ルートなどのパラメーターを構成することもできます。
ネットワークに冗長性を追加しました。あとはインストールするだけです。 セットアップは完了したと見なされます。
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 に感謝します。リンクに優れたマニュアルがあります。 .
出所: habr.com
