| 1 | <?xml version="1.0" encoding="ISO-8859-1"?>
 | 
|---|
| 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 | 
|---|
| 3 |   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 | 
|---|
| 4 |   <!ENTITY % general-entities SYSTEM "../../general.ent">
 | 
|---|
| 5 |   %general-entities;
 | 
|---|
| 6 | ]>
 | 
|---|
| 7 | 
 | 
|---|
| 8 | <sect1 id="ch-systemd-network">
 | 
|---|
| 9 |   <?dbhtml filename="systemd-network.html"?>
 | 
|---|
| 10 | 
 | 
|---|
| 11 |   <title>Networking Configuration with Systemd-networkd</title>
 | 
|---|
| 12 | 
 | 
|---|
| 13 |   <sect2 role="interface-config">
 | 
|---|
| 14 |     <title>Network Interface Configuration</title>
 | 
|---|
| 15 | 
 | 
|---|
| 16 |     <note><para>Udev may assign random Network Card Interface names
 | 
|---|
| 17 |     for some network cards such as enp2s1. If you are not sure what
 | 
|---|
| 18 |     your Network Card Interface name is, you can always run
 | 
|---|
| 19 |     <command>ip l</command> after you have booted your system. It is important
 | 
|---|
| 20 |     that the <envar>Name</envar> variable in
 | 
|---|
| 21 |     <filename>/etc/systemd/network</filename> contain the correct Network Card
 | 
|---|
| 22 |     Interface name (e.g. <envar>Name=enp2s1</envar> or
 | 
|---|
| 23 |     <envar>Name=eth0</envar>) or systemd will fail to bring
 | 
|---|
| 24 |     up your network interface.</para></note>
 | 
|---|
| 25 | 
 | 
|---|
| 26 |     <sect3 role="static">
 | 
|---|
| 27 |       <title>Static Network Interface Configuration</title>
 | 
|---|
| 28 | 
 | 
|---|
| 29 |       <para><command>systemd-networkd</command> uses
 | 
|---|
| 30 |       <filename>/etc/system/network</filename> for configuration files. Refer
 | 
|---|
| 31 |       to systemd.network(5) and systemd.netdev(5). Configure a network
 | 
|---|
| 32 |       interface with a config file. Adjust Name= as required:</para>
 | 
|---|
| 33 | 
 | 
|---|
| 34 |   <screen role="nodump"><userinput>cd /etc/systemd/network &&
 | 
|---|
| 35 | cat > static.network << "EOF"
 | 
|---|
| 36 | [Match]
 | 
|---|
| 37 | Name=enp2s0
 | 
|---|
| 38 | 
 | 
|---|
| 39 | [Network]
 | 
|---|
| 40 | Address=192.168.1.1/24
 | 
|---|
| 41 | Gateway=192.168.1.2
 | 
|---|
| 42 | EOF</userinput></screen>
 | 
|---|
| 43 | 
 | 
|---|
| 44 |       <para os="var-ob">The values of these variables must be changed in every
 | 
|---|
| 45 |       file to match the proper setup.</para>
 | 
|---|
| 46 | 
 | 
|---|
| 47 |       <para os="var-i">The <envar>Name</envar> variable defines the interface
 | 
|---|
| 48 |       name, for example, eth0. It is required for all network device
 | 
|---|
| 49 |       configuration files.</para>
 | 
|---|
| 50 | 
 | 
|---|
| 51 |       <para>The <envar>Gateway</envar> variable should contain the default
 | 
|---|
| 52 |       gateway IP address, if one is present. If not, then comment out the
 | 
|---|
| 53 |       variable entirely.</para>
 | 
|---|
| 54 | 
 | 
|---|
| 55 |       <para>For more information see the <command>systemd.netdev</command> man page.</para>
 | 
|---|
| 56 | 
 | 
|---|
| 57 |     </sect3>
 | 
|---|
| 58 | 
 | 
|---|
| 59 |     <sect3 role="dhcp">
 | 
|---|
| 60 |       <title>Connecting to a network with DHCP</title>
 | 
|---|
| 61 | 
 | 
|---|
| 62 |     <para><command>systemd-networkd</command> uses
 | 
|---|
| 63 |     <filename>/etc/systemd/network</filename> for configuration files. Refer
 | 
|---|
| 64 |     to <filename>systemd.network(5)</filename> and
 | 
|---|
| 65 |     <filename>systemd.netdev(5)</filename>. Configure a network interface
 | 
|---|
| 66 |     with a config file. Adjust Name= as required:</para>
 | 
|---|
| 67 | 
 | 
|---|
| 68 | <screen role="nodump"><userinput>cd /etc/systemd/network &&
 | 
|---|
| 69 | cat > dhcp.network << "EOF"
 | 
|---|
| 70 | [Match]
 | 
|---|
| 71 | Name=enp2s0
 | 
|---|
| 72 | 
 | 
|---|
| 73 | [Network]
 | 
|---|
| 74 | DHCP=yes
 | 
|---|
| 75 | EOF</userinput></screen>
 | 
|---|
| 76 | 
 | 
|---|
| 77 |     <para><command>systemd-networkd</command> will automatically configure
 | 
|---|
| 78 |     <filename>/run/systemd/network/resolv.conf</filename> when using DHCP.
 | 
|---|
| 79 |     If you did not manually create <filename>/etc/resolv.conf</filename>,
 | 
|---|
| 80 |     create a symlink:</para>
 | 
|---|
| 81 | 
 | 
|---|
| 82 | <screen role="nodump"><userinput>ln -sv /run/systemd/network/resolv.conf /etc</userinput></screen>
 | 
|---|
| 83 | 
 | 
|---|
| 84 |     </sect3>
 | 
|---|
| 85 | 
 | 
|---|
| 86 |   </sect2>
 | 
|---|
| 87 | 
 | 
|---|
| 88 |   <sect2 role="timesyncd">
 | 
|---|
| 89 |     <title>Using Timesyncd</title>
 | 
|---|
| 90 | 
 | 
|---|
| 91 |     <para>Systemd includes a simple NTP client daemon,
 | 
|---|
| 92 |     <command>systemd-timesyncd</command>, though it is disabled by
 | 
|---|
| 93 |     default. If you want to enable it, you will first need to add a required
 | 
|---|
| 94 |     user and group:</para>
 | 
|---|
| 95 | 
 | 
|---|
| 96 | <screen role="nodump"><userinput>groupadd -g &gid-systemd-timesync; systemd-timesync
 | 
|---|
| 97 | useradd -g systemd-timesync -u &uid-systemd-timesync; -d /dev/null -s /bin/false systemd-timesync</userinput></screen>
 | 
|---|
| 98 | 
 | 
|---|
| 99 |     <para>Then, actually enable <command>systemd-timesyncd</command> so that
 | 
|---|
| 100 |     it will run on system boot:</para>
 | 
|---|
| 101 | 
 | 
|---|
| 102 | <screen role="nodump"><userinput>systemctl enable systemd-timesyncd</userinput></screen>
 | 
|---|
| 103 | 
 | 
|---|
| 104 |     <para>You can configure <command>systemd-timesyncd</command> by editing
 | 
|---|
| 105 |     <filename>/etc/systemd/timesyncd.conf</filename>.</para>
 | 
|---|
| 106 | 
 | 
|---|
| 107 |   <para>Continue to <xref linkend="chapter-bootable"/>.</para>
 | 
|---|
| 108 | 
 | 
|---|
| 109 |   </sect2>
 | 
|---|
| 110 | 
 | 
|---|
| 111 | </sect1>
 | 
|---|