<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nosada</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nosada"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Nosada"/>
	<updated>2026-04-21T09:39:53Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Systemd-networkd&amp;diff=3061</id>
		<title>Systemd-networkd</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Systemd-networkd&amp;diff=3061"/>
		<updated>2015-06-14T14:00:33Z</updated>

		<summary type="html">&lt;p&gt;Nosada: /* ノートを和訳した */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:ネットワーク]]&lt;br /&gt;
[[Category:仮想化]]&lt;br /&gt;
[[en:systemd-networkd]]&lt;br /&gt;
[[fr:systemd-networkd]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|systemd}}&lt;br /&gt;
{{Related|systemd-nspawn}}&lt;br /&gt;
{{Related|ネットワークブリッジ}}&lt;br /&gt;
{{Related|ネットワーク設定}}&lt;br /&gt;
{{Related|netctl}}&lt;br /&gt;
{{Related|ワイヤレス設定}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
バージョン 210 から、systemd は [[udev]] と networkd による基本的なネットワーク設定のサポートを含むようになりました。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-networkd&#039;&#039; はネットワーク設定を管理するシステムデーモンです。ネットワークデバイスが立ち上がるとそれを検出して設定を行い、仮想ネットワークデバイスを作成することもできます。このサービスは [[netctl]] などの通常のネットワーク管理ツールと一緒に動かすことが可能で、仮想化する場合、設定によってはツールを置き換えることもできます。特に [[systemd-nspawn]] で管理するコンテナのための基本的な、もしくは複雑なネットワーク設定 (固定 IP、ブリッジ、vlan など) を設定する場合にこのサービスはとても役に立ちます。&lt;br /&gt;
&lt;br /&gt;
== 基本的な使い方 ==&lt;br /&gt;
{{Pkg|systemd}} パッケージは Arch ではデフォルトでインストールされており、有線ネットワークに接続するために必要なファイルは全て揃っています。後で述べているように、[[wpa_supplicant]] など他のサービスを使うことで無線アダプタを設定することもできます。&lt;br /&gt;
&lt;br /&gt;
=== 必要なサービスと設定 ===&lt;br /&gt;
&lt;br /&gt;
systemd-networkd を使用するには、以下の2つのサービスを[[起動]]して、システムのブート時に実行されるように[[有効化]]する必要があります:&lt;br /&gt;
&lt;br /&gt;
* {{ic|systemd-networkd.service}}&lt;br /&gt;
* {{ic|systemd-resolved.service}}&lt;br /&gt;
&lt;br /&gt;
[[resolv.conf]] の互換性のために、既存のファイルを削除または名前変更して以下のシンボリックリンクを作成してください:&lt;br /&gt;
&lt;br /&gt;
 # ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
{{ic|man systemd-resolved}} を参照。&lt;br /&gt;
&lt;br /&gt;
=== 設定ファイルの例 ===&lt;br /&gt;
このセクションにおける設定はすべて {{ic|/etc/systemd/network}} の中に {{ic|foo.network}} として保存します。利用できるオプションや処理の順番については、[[#設定ファイル]] や {{ic|systemd.network}} の man ページを見て下さい。&lt;br /&gt;
&lt;br /&gt;
まずシステムのデバイス名を知る必要があります。昔は、{{ic|eth0}} がシステム上の1番目の NIC に付けられていましたが、udev は別の名前を使用するようになっています。{{ic|networkctl list}} を使ってシステム上のデバイスを確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|以下の例では、&#039;&#039;&#039;enp1s0&#039;&#039;&#039; が有線アダプタ、&#039;&#039;&#039;wlp0s20u3u1&#039;&#039;&#039; が無線アダプタです。環境によって名前は変わります。}}&lt;br /&gt;
&lt;br /&gt;
==== 有線アダプタで DHCP を使用 ====&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;wired&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=enp1s0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 有線アダプタで固定 IP を使用 ====&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;wired&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=enp1s0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DNS=10.1.10.1&lt;br /&gt;
&lt;br /&gt;
[Address]&lt;br /&gt;
Address=10.1.10.9/24&lt;br /&gt;
&lt;br /&gt;
[Route]&lt;br /&gt;
Gateway=10.1.10.1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 無線アダプタ ====&lt;br /&gt;
先に触れた通り、[[wpa_supplicant]] など別のサービスで無線アダプタを設定してから適当なサービスを有効にしてください。以下の例では、{{ic|wpa_supplicant@wlp0s20u3u1.service}} としています。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;wireless&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=wlp0s20u3u1&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== 同一マシンで有線アダプタと無線アダプタ両方を使用 ====&lt;br /&gt;
&lt;br /&gt;
以下の設定では、Metric ディレクティブを使用して、有線と無線両方の接続で DHCP IP を有効にしており、カーネルがオンザフライでどちらを使うか決定します。有線接続が切断されると、即座に無線に切り替わります。接続が途切れることはありません。&lt;br /&gt;
&lt;br /&gt;
システム上の無線・有線どちらのデバイスも有効な接続がある場合、カーネルのルートメトリック (&#039;&#039;ip&#039;&#039; で設定するのと同一) がパケットを送るのにどちらのルートを使用するか決定します。均衡状態を破るために、カーネルはメトリックを使います。メトリックの良い所は、どちらかが使えなくなったときに、自動的にもう片方が有効になることです。&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;&#039;Metric&#039;&#039;&#039; オプションは &#039;&#039;&#039;RouteMetric&#039;&#039;&#039; オプションがスタティックルーティングを行うよう設定されていない時にその設定を行うためのものです。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;wired&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=enp1s0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
&lt;br /&gt;
[DHCP]&lt;br /&gt;
RouteMetric=10&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;wireless&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=wlp0s20u3u1&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
&lt;br /&gt;
[DHCP]&lt;br /&gt;
RouteMetric=20&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
設定ファイルは {{ic|/usr/lib/systemd/network}} から、そして一時的な実行時のネットワークディレクトリ {{ic|/run/systemd/network}} とローカルのネットワーク管理ディレクトリ {{ic|/etc/systemd/network}} から読み込まれます。{{ic|/etc/systemd/network}} 内のファイルが一番優先されます。&lt;br /&gt;
&lt;br /&gt;
3つのタイプの設定ファイルが存在します。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;.network&#039;&#039;&#039; ファイル。&#039;&#039;マッチする&#039;&#039;デバイスにネットワーク設定を適用します。&lt;br /&gt;
* &#039;&#039;&#039;.netdev&#039;&#039;&#039; ファイル。&#039;&#039;マッチする&#039;&#039;環境に&#039;&#039;仮想ネットワークデバイス&#039;&#039;を作成します。&lt;br /&gt;
* &#039;&#039;&#039;.link&#039;&#039;&#039; ファイル。ネットワークデバイスが作られた時、[[udev|udev]] は最初に&#039;&#039;マッチする&#039;&#039; &#039;&#039;&#039;.link&#039;&#039;&#039; ファイルを探します。&lt;br /&gt;
&lt;br /&gt;
これらの設定ファイルは同じルールに従っています:&lt;br /&gt;
&lt;br /&gt;
* {{ic|[Match]}} セクションの&#039;&#039;&#039;全ての&#039;&#039;&#039;条件がマッチすれば、プロファイルが有効になります。&lt;br /&gt;
* 空の {{ic|[Match]}} セクションはどんな場合でもそのセクションを適用することを示します (いわば {{ic|*}} ジョーカーのようなものです)。&lt;br /&gt;
* それぞれのエントリは {{ic|1=NAME=VALUE}} 構文によるキーです。&lt;br /&gt;
* 全ての設定ファイルは辞書順でまとめてソートされ処理されます。ファイルがどのディレクトリにあるかは関係ありません。&lt;br /&gt;
* 同じ名前のファイルは互いを置き換えます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* {{ic|/usr/lib/systemd/network}} にあるシステムによって提供されたファイルを上書きする (アップグレードしても変わらないようにする) には、{{ic|/etc/systemd/network}} に同じ名前のファイルを配置して {{ic|/dev/null}} にシンボリックリンクを張って下さい。&lt;br /&gt;
* {{ic|VALUE}} には {{ic|*}} ジョーカーを使うことができます (例: {{ic|en*}} は全ての Ethernet デバイスにマッチします)。&lt;br /&gt;
* [https://mailman.archlinux.org/pipermail/arch-general/2014-March/035381.html Arch-general スレッド]によれば、特定のコンテナのネットワーク設定は &#039;&#039;&#039;networkd&#039;&#039;&#039; 設定ファイルを使って&#039;&#039;コンテナの中で&#039;&#039;設定するのがベストプラクティスです。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== network ファイル ===&lt;br /&gt;
&lt;br /&gt;
このファイルはネットワーク設定の変数の設定、特にサーバーとコンテナの設定のために存在します。&lt;br /&gt;
&lt;br /&gt;
以下は基本的な構造の &#039;&#039;MyProfile&#039;&#039;.network ファイルになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyProfile&#039;&#039;.network|&lt;br /&gt;
[Match]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Address]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Route]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== [Match] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=Name=}} デバイスの名前 (例: Br0, enp4s0)&lt;br /&gt;
* {{ic|1=Host=}} マシンのホストネーム&lt;br /&gt;
* {{ic|1=Virtualization=}} システムが仮想化環境で起動されているかどうかをチェックします。{{ic|1=Virtualization=no}} キーはホストマシンでのみ適用され、逆に {{ic|1=Virtualization=yes}} はコンテナや VM で適用されます。&lt;br /&gt;
&lt;br /&gt;
==== [Network] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=DHCP=}} は [[Wikipedia:ja:Dynamic Host Configuration Protocol|DHCPv4]] や DHCPv6 サポートを有効にします。{{ic|yes}}, {{ic|no}}, {{ic|ipv4}}, {{ic|ipv6}} が設定できます。&lt;br /&gt;
* {{ic|1=DNS=}} は [[Wikipedia:ja:Domain Name System|DNS]] サーバーのアドレスです。このオプションは複数個指定することができます。&lt;br /&gt;
* {{ic|1=Bridge=}} はリンクに追加するブリッジの名前です。&lt;br /&gt;
&lt;br /&gt;
==== [Address] セクション ====&lt;br /&gt;
{{ic|[Address]}} セクションでよく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=Address=}} は固定の &#039;&#039;&#039;IPv4&#039;&#039;&#039; または &#039;&#039;&#039;IPv6&#039;&#039;&#039; アドレスとそのプレフィックス長で、{{ic|/}} を使って区切ります (例: {{ic|192.168.1.90/24}})。このオプションは&#039;&#039;&#039;必須&#039;&#039;&#039;です。&lt;br /&gt;
&lt;br /&gt;
==== [Route] セクション ====&lt;br /&gt;
{{ic|[Route]}} セクションでよく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=Gateway=}} はマシンのゲートウェイのアドレスです。このオプションは&#039;&#039;&#039;必須&#039;&#039;&#039;です。&lt;br /&gt;
完全なキーのリストについては、{{ic|systemd.network(5)}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|1=Address=}} が Address キーだけを含み {{ic|1=Gateway=}} セクションが Gateway キーだけを含む場合、略式表記として {{ic|[Network]}} セクションに {{ic|1=Address=}} と {{ic|1=Gateway=}} キーを記述することができます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== netdev ファイル ===&lt;br /&gt;
&lt;br /&gt;
このファイルは仮想ネットワークデバイスを作成します。&lt;br /&gt;
&lt;br /&gt;
以下は基本的な構造の &#039;&#039;Mydevice&#039;&#039;.netdev ファイルになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyDevice&#039;&#039;.netdev|&lt;br /&gt;
[Match]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Netdev]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== [Match] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは {{ic|1=Host=}} と {{ic|1=Virtualization=}} です。&lt;br /&gt;
&lt;br /&gt;
==== [Netdev] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
* {{ic|1=Name=}} は netdev を作成するときに使うインターフェイスの名前です。このオプションは&#039;&#039;&#039;必須&#039;&#039;&#039;です。&lt;br /&gt;
* {{ic|1=Kind=}} は netdev の種類になります。現在 &#039;&#039;bridge&#039;&#039;, &#039;&#039;bond&#039;&#039;, &#039;&#039;vlan&#039;&#039;, &#039;&#039;macvlan&#039;&#039; がサポートされています。このオプションは&#039;&#039;&#039;必須&#039;&#039;&#039;です。&lt;br /&gt;
&lt;br /&gt;
完全なキーのリストについては、{{ic|systemd.netdev(5)}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== link ファイル ===&lt;br /&gt;
&lt;br /&gt;
このファイルはカスタム udev ルールの代わりとなりデバイスが現れた時に [[udev|udev]] によって適用されます。&lt;br /&gt;
&lt;br /&gt;
以下は基本的な構造の &#039;&#039;Mydevice&#039;&#039;.link ファイルになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyDevice&#039;&#039;.link|&lt;br /&gt;
[Match]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Link]&lt;br /&gt;
&#039;&#039;a vertical list of keys&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|[Link]}} セクションでデバイスの設定を指定した場合、{{ic|[Match]}} セクションは指定した link ファイルが指定したデバイスに適用できるかどうかを決めます。&lt;br /&gt;
&lt;br /&gt;
==== [Match] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは {{ic|1=MACAddress=}}, {{ic|1=Host=}}, {{ic|1=Virtualization=}} です。&lt;br /&gt;
&lt;br /&gt;
{{ic|1=Type=}} はデバイスのタイプです (例: vlan)&lt;br /&gt;
&lt;br /&gt;
==== [Link] セクション ====&lt;br /&gt;
&lt;br /&gt;
よく使われるキーは:&lt;br /&gt;
&lt;br /&gt;
{{ic|1=MACAddressPolicy=}} は永続的な MAC アドレスをハードウェアに設定する &#039;&#039;persistent&#039;&#039; (ほとんどのハードウェアはこちらにするべきです) またはデバイスが現れた時にランダムな MAC アドレスを与える &#039;&#039;random&#039;&#039; を指定します。&lt;br /&gt;
&lt;br /&gt;
{{ic|1=MACAddressPolicy=}} を指定しなかった場合は {{ic|1=MACAddress=}} を使います。&lt;br /&gt;
&lt;br /&gt;
{{Note|ほとんどの場合システムの {{ic|/usr/lib/systemd/network/99-default.link}} で基本的に問題ありません。}}&lt;br /&gt;
&lt;br /&gt;
== コンテナでの使用方法 ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|systemd}} 210 以上でサービスが利用可能です。ホストやコンテナで {{ic|systemd-networkd.service}} を[[systemd#systemctl の基本的な使い方|有効化・起動]]することができます。&lt;br /&gt;
&lt;br /&gt;
デバッグするときのために {{Pkg|bridge-utils}}, {{Pkg|net-tools}}, {{Pkg|iproute2}} パッケージを[[pacman|インストール]]することが強く推奨されます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-nspawn&#039;&#039; を使用する場合、ネットワーク設定によっては、{{ic|systemd-nspawn@.service}} を編集して {{ic|ExecStart}} 行にブートオプションを追加する必要があります。オプションの完全なリストは {{ic|man 1 systemd-nspawn}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
DHCP による自動 DNS 設定を利用したい場合は、{{ic|systemd-resolved}} を有効にして {{ic|/run/systemd/resolve/resolv.conf}} から {{ic|/etc/resolv.conf}} にシンボリックリンクを張る必要があります。詳しくは {{ic|systemd-resolved.service(8)}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Tip|コンテナネットワークの設定を始める前に:&lt;br /&gt;
* [[netctl|netctl]] サービスを全て無効にしてください。無効にすることで &#039;&#039;&#039;systemd-networkd&#039;&#039;&#039; との危険な衝突を回避することができ設定のテストが楽になります。さらに、有効な [[netctl|netctl]] プロファイルが残ったまま終了する可能性が少なくなります。{{ic|$ netctl list}} コマンドは全てのプロファイルのリストを表示し、有効になっているプロファイルには星印が付きます。&lt;br /&gt;
* {{ic|systemd-nspawn@.service}} を無効にしてコンテナを起動するときは {{ic|# systemd-nspawn -bD /path_to/your_container/}} コマンドとオプションを使ってください。ログオフやシャットダウンをするには、コンテナの中で {{ic|# systemctl poweroff}} を実行してください。ネットワーク設定が要求を満たすようになったら、{{ic|systemd-nspawn@.service}} を[[systemd#systemctl の基本的な使い方|有効化・起動]]してください。&lt;br /&gt;
* {{ic|dhcpcd.service}} が有効になっている場合は無効にしてください。このサービスは&#039;&#039;&#039;全ての&#039;&#039;&#039;インターフェイスに dhcpcd を使わせます。&lt;br /&gt;
* コンテナで [[netctl|netctl]] プロファイルや、{{ic|systemd-networkd.service}} が有効になっていないことを確認してください。&lt;br /&gt;
* トラフィックをブロックするような [[iptables|iptables]] ルールが設定されていないことを確認してください。&lt;br /&gt;
* コンテナ上で&#039;&#039;プライベートネットワーク&#039;&#039;を設定する場合は&#039;&#039;パケットフォワーディング&#039;&#039;を[[Internet sharing|有効]]にしてください。&lt;br /&gt;
* 設定ファイルを作った後、networkd デーモンが動作している場合はリロードを行なって下さい: {{ic|# systemctl restart systemd-networkd}}。&lt;br /&gt;
* デーモンが起動したら systemd の {{ic|networkctl}} コマンドでネットワークインターフェイスの状態が表示されます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|下で説明している設定について&lt;br /&gt;
* {{ic|$ ip a}} コマンドの出力を、関連するインターフェイスにだけ絞っています。&lt;br /&gt;
* &#039;&#039;ホスト&#039;&#039;は起動しているメインの OS であり、&#039;&#039;コンテナ&#039;&#039;は仮想マシンのゲストのことです。&lt;br /&gt;
* インターフェイスの名前や IP アドレスは全てあくまでただの例です。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 基本的な DHCP ネットワーク ===&lt;br /&gt;
&lt;br /&gt;
以下はホストとコンテナで DHCP IP を有効にします。この場合、両方のシステムが同じインターフェイスを共有し、同じ IP を共有します。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyDhcp&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=en*&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
そして、コンテナで {{ic|systemd-networkd}} を[[systemd#systemctl の基本的な使い方|起動・有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
もちろん {{ic|en*}} を {{ic|$ ip link}} コマンドの出力でわかる Ethernet デバイスのフルネームに置き換えることは可能です。&lt;br /&gt;
&lt;br /&gt;
* ホストとコンテナで:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip a|&lt;br /&gt;
2: enp7s0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 14:da:e9:b5:7a:88 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.72/24 brd 192.168.1.255 scope global enp7s0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::16da:e9ff:feb5:7a88/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
デフォルトのホストネームは DHCP サーバーから取得され一時的なホストネームとして使用されます。&lt;br /&gt;
&lt;br /&gt;
変更するには {{ic|[DHCPv4]}} セクションに {{ic|1=UseHostname=false}} を追加してください:&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyDhcp&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[DHCPv4]&lt;br /&gt;
UseHostname=false&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/resolv.conf}} で DNS を設定するかわりに DHCP に設定してもらいたい場合、{{ic|systemd-resolved}} を有効にして {{ic|/run/systemd/resolve/resolv.conf}} から {{ic|/etc/resolv.conf}} にシンボリックリンクを作成してください:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl enable systemd-resolved&lt;br /&gt;
 $ ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
詳しくは {{ic|systemd-resolved.service(8)}} を参照。&lt;br /&gt;
&lt;br /&gt;
=== 2つの別々な IP で DHCP を使う ===&lt;br /&gt;
&lt;br /&gt;
==== ブリッジインターフェイス ====&lt;br /&gt;
&lt;br /&gt;
仮想ブリッジインターフェイスを作成する:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyBridge&#039;&#039;.netdev|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[NetDev]&lt;br /&gt;
Name=br0&lt;br /&gt;
Kind=bridge&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
* ホストとコンテナで:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip a|&lt;br /&gt;
3: br0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default &lt;br /&gt;
    link/ether ae:bd:35:ea:0c:c9 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インターフェイス br0 が表示されていますが DOWN になっているので注意してください。&lt;br /&gt;
&lt;br /&gt;
==== イーサネットをブリッジに関連付ける ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/systemd/network/&#039;&#039;MyDhcp&#039;&#039;.network}} を編集して DHCP を削除します。ブリッジはどの IP にもバインドされないインターフェイスが必要なので、このデバイスを br0 にバインドするキーを追加してください。名前を適切なものに変更しましょう。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyEth&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=en*&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
Bridge=br0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== ブリッジネットワーク ====&lt;br /&gt;
&lt;br /&gt;
ブリッジのネットワークプロファイルを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyBridge&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=br0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== コンテナを起動するオプションを追加する ====&lt;br /&gt;
&lt;br /&gt;
ホストとコンテナに別々の IP を割り当てたいので、ホストからコンテナのネットワークを&#039;&#039;切断&#039;&#039;する必要があります。切断するには、コンテナの起動コマンドに {{ic|1=--network-bridge=br0}} オプションを追加します。&lt;br /&gt;
&lt;br /&gt;
 # systemd-nspawn --network-bridge&amp;amp;#61;br0 -bD /path_to/my_container&lt;br /&gt;
&lt;br /&gt;
==== 結果 ====&lt;br /&gt;
&lt;br /&gt;
* ホスト側&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip a|&lt;br /&gt;
3: br0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc noqueue state UP group default &lt;br /&gt;
    link/ether 14:da:e9:b5:7a:88 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.87/24 brd 192.168.1.255 scope global br0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::16da:e9ff:feb5:7a88/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
6: vb-&#039;&#039;MyContainer&#039;&#039;: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000&lt;br /&gt;
    link/ether d2:7c:97:97:37:25 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet6 fe80::d07c:97ff:fe97:3725/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* コンテナ側&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip a|&lt;br /&gt;
2: host0: &amp;lt;BROADCAST,MULTICAST,ALLMULTI,AUTOMEDIA,NOTRAILERS,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 5e:96:85:83:a8:5d brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.73/24 brd 192.168.1.255 scope global host0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::5c96:85ff:fe83:a85d/64 scope link &lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 注意 ====&lt;br /&gt;
&lt;br /&gt;
* ホストの br0 と、コンテナの host0 にそれぞれ IP アドレスが割り当てられました。&lt;br /&gt;
* 2つの新しいインターフェイスが作成されます: ホストの {{ic|vb-&#039;&#039;MyContainer&#039;&#039;}} とコンテナの {{ic|host0}} です。これは {{ic|1=--network-bridge=br0}} オプションによるものです。このオプションには {{ic|--network-veth}} という別のオプションも含まれており、ホストとコンテナの間に&#039;&#039;仮想イーサネットリンク&#039;&#039;が作成されます。&lt;br /&gt;
* {{ic|host0}} の DHCP アドレスはシステムの {{ic|/usr/lib/systemd/network/80-container-host0.network}} ファイルから由来します。&lt;br /&gt;
* ホスト側&lt;br /&gt;
&lt;br /&gt;
{{hc|$ brctl show|&lt;br /&gt;
bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
br0		8000.14dae9b57a88	no		enp7s0&lt;br /&gt;
							vb-&#039;&#039;MyContainer&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記のコマンドの出力で2つのインターフェイスがバインドされたブリッジが確認できます。&lt;br /&gt;
&lt;br /&gt;
* ホスト側&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip route|&lt;br /&gt;
default via 192.168.1.254 dev br0 &lt;br /&gt;
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.87&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* コンテナ側&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ip route|&lt;br /&gt;
default via 192.168.1.254 dev host0 &lt;br /&gt;
192.168.1.0/24 dev host0  proto kernel  scope link  src 192.168.1.73&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記のコマンドの出力で IP アドレスとゲートウェイが 192.168.1.254 の {{ic|br0}} と {{ic|host0}} インターフェイスが有効になったのが確認できます。ゲートウェイのアドレスは &#039;&#039;systemd-networkd&#039;&#039; によって自動的に取得されます。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cat /run/systemd/resolve/resolv.conf|&lt;br /&gt;
nameserver 192.168.1.254&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 固定 IP ネットワーク ===&lt;br /&gt;
&lt;br /&gt;
ウェブサービス (例: FTP, http, SSH) を動かしている場合、デバイスごとに固定 IP を設定するのが役に立つかもしれません。システムの {{ic|/usr/lib/systemd/network/99-default.link}} ファイルに {{ic|1=MACAddressPolicy=persistent}} オプションがあれば (デフォルトの設定)、各デバイスは再起動しても同じ MAC アドレスを維持します。つまり、ゲートウェイのサービスを簡単に適切なデバイスに設定することができます。&lt;br /&gt;
まず、システムの {{ic|/usr/lib/systemd/network/80-container-host0.network}} ファイルを除去します。永続的にするために (例: アップグレードしても変わらないように)、ホストとコンテナ&#039;&#039;&#039;両方で&#039;&#039;&#039;以下を行なって下さい。これによって {{ic|/etc/systemd/network}} の同じ名前のファイルが {{ic|/usr/lib/systemd/network}} のファイルよりも優先されるため {{ic|/usr/lib/systemd/network/80-container-host0.network}} ファイルがマスクされます。&lt;br /&gt;
&lt;br /&gt;
 # ln -sf /dev/null /etc/systemd/network/80-container-host0.network&lt;br /&gt;
&lt;br /&gt;
次に、コンテナで {{ic|systemd-networkd}} を[[systemd#systemctl の基本的な使い方|有効化・起動]]してください。&lt;br /&gt;
&lt;br /&gt;
必要な設定ファイル:&lt;br /&gt;
&lt;br /&gt;
* ホスト側&lt;br /&gt;
&lt;br /&gt;
 /etc/systemd/network/&#039;&#039;MyBridge&#039;&#039;.netdev&lt;br /&gt;
 /etc/systemd/network/&#039;&#039;MyEth&#039;&#039;.network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;MyBridge&#039;&#039;.network の修正&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyBridge&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=br0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DNS=192.168.1.254&lt;br /&gt;
Address=192.168.1.87/24&lt;br /&gt;
Gateway=192.168.1.254&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
* コンテナ側&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/network/&#039;&#039;MyVeth&#039;&#039;.network|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
Name=host0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
DNS=192.168.1.254&lt;br /&gt;
Address=192.168.1.94/24&lt;br /&gt;
Gateway=192.168.1.254&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Et voila!&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html systemd.networkd man ページ]&lt;br /&gt;
* [https://plus.google.com/u/0/+TomGundersen/posts systemd-networkd のメイン開発者、Tom Gundersen の G+ ホームページ]&lt;br /&gt;
* [https://coreos.com/blog/intro-to-systemd-networkd/ Core OS のブログにおける Tom Gundersen の投稿]&lt;/div&gt;</summary>
		<author><name>Nosada</name></author>
	</entry>
</feed>