はじめに
systemd-networkdは、systemd version 210から含まれているネットワーク設定のデーモンです。
この記事では、systemd.netdev(5)からbonding, VLAN, bridgeの設定をまとめました。
netdevファイルの基本
仮想ネットワークデバイスは、systemd-networkdでは.netdevファイルから作成されます。
標準的な.netdevファイルは以下のようになります。
[NetDev]
Name=名前
Kind=種類
[Kindに応じたセクション]
気をつけることは、**[Netdev]ではなく[NetDev]だということです。**間違えるとうまく動きません。
bonding
bondingは、複数のネットワークインターフェースを束ねるための仕組みです。
bondingをするためにbond0というインターフェースを作成する.netdevファイルは以下のようになります。
[NetDev]
Name=bond0
Kind=bonding
[Bond]
Mode=balance-xor
TransmitHashPolicy=layer2+3
Kindにbondingを設定し、動作モード等の設定は[Bond]で行います。
Modeには動作モードを設定します。
(参考: Linux Bonding mode=0の恐怖 http://ja.community.dell.com/techcenter/b/weblog/archive/2014/05/16/linux-bonding-mode-0)
TransmitHashPolicyは送信ハッシュポリシーの設定で、xmit_hash_policyに相当するオプションです。
どのインターフェースを束ねるかの設定は、対応した.networkファイルで行います。
この例では、eth0をbond0に参加させています。
[Match]
Name=eth0
[Network]
Bond=bond0
VLAN
VLANは、LANセグメントを分割して仮想的なLANを作るための仕組みです。
vlan101(VLAN番号:101)を作成する.netdevファイルは以下のようになります。
[NetDev]
Name=vlan101
Kind=vlan
[VLAN]
Id=101
Kindにvlanを設定し、VLAN IDの設定は[VLAN]で行います。
IdにVLAN IDを設定します。これも大文字・小文字の違いには気をつけてください。
どのインターフェースからVLANを作成するかの設定は、対応した.networkファイルで行います。
この例では、vlan101はeth0から作成されます。
[Match]
Name=eth0
[Network]
VLAN=vlan101
bridge
ブリッジは、複数のネットワークセグメントを接続するための仕組みです。
br0という名前のブリッジを作成するための.netdevファイルは以下のようになります。
[NetDev]
Name=br0
Kind=bridge
Kindにbridgeを設定するだけです。
残念ながらbrctlコマンドなどで設定できる、STPなどは設定できないようです。
どのインターフェースをブリッジに参加させるかの設定は、対応した.networkファイルで行います。
この例では、eth0をbr0に参加させています。
[Kind]
Name=eth0
[Network]
Bridge=br0
参考
Arch Wikiのsystemd-networkdの項目
https://wiki.archlinuxjp.org/index.php/systemd-networkd
man systemd.netdev(5)
http://www.freedesktop.org/software/systemd/man/systemd.netdev.html