はじめに
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