From Fedora Project Wiki
Line 144: Line 144:


Simply reboot the system and it will come up with <code>eth0</code> as a port on <code>br0</code>.
Simply reboot the system and it will come up with <code>eth0</code> as a port on <code>br0</code>.
==Status & Diagnostics==
All of the output from systemd-networkd will appear in your system journal.  Any errors when setting up interfaces or configuring routes will be printed there.  The <code>networkctl</code> command allows you to check your network devices at a glance.  Here's an example of a fairly complicated network setup:
<pre lang="html">
# networkctl
IDX LINK            TYPE              OPERATIONAL SETUP   
  1 lo              loopback          carrier    unmanaged
  2 enp3s0          ether              off        unmanaged
  3 enp1s0f0        ether              degraded    configured
  4 enp1s0f1        ether              degraded    configured
  5 br1              ether              routable    configured
  6 br0              ether              routable    configured
  7 gre0            ipgre              off        unmanaged
  8 gretap0          ether              off        unmanaged
  9 gre-colocation  ipgre              routable    configured
12 vlan100          ether              routable    configured
13 tun1            none              routable    unmanaged
14 tun0            none              routable    unmanaged
15 vlan200          ether              routable    configured
</pre>
You'll find two physical network cards (<code>enp1s0f0</code> and <code>enp1s0f1</code>) each attached to a bridge (<code>br0</code> and <code>br1</code>, respectively).  The physical network adapters show up as 'degraded' because they don't have network addresses directly assigned -- that assignment is done on the bridge.


===Further Reading===
===Further Reading===

Revision as of 02:35, 29 September 2015

This is a placeholder page for the discussion of what the Cloud image (Base at first, Atomic to follow) requires from a networking stack on it's images.


- configure DHCP, renew dhcp leases - configure with cloud-init - configure with traditional RH-ecosystem ifcfg-eth0 file (log warnings for unsupported options)


Questions!

- Q: any need to support more than one interface? - Q: if single interface, should we standardize on "eth0"" - Q: dns configuration? - Q: support static IP (via cloud-init?)


Several use cases in EC2 involve instances with multiple network interfaces and occasionally multiple addresses on a single interface. I do not believe all of those need to be configured automatically, but it ought to remain possible for a user/script/etc to make network configuration changes that persist across reboots.

Stop (medium size).png
Work in progress
mhayden is doing some rambling on systemd-networkd here since maxamillion asked so nicely.

systemd-networkd use cases

Here are some sample use cases for systemd-networkd and example configurations.

Simple DHCP on a single interface

For an interface eth0, a single .network file is needed:

# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=yes 

Static address on a single interface

For an interface eth0, a single .network file is needed:

# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
Address=192.168.0.50/24
Address=2001:db8:dead:beef::/64

# These are optional but worth mentioning
DNS=8.8.8.8
DNS=8.8.4.4
NTP=pool.ntp.org

You can also split up the addresses into separate blocks:

# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DNS=8.8.8.8
DNS=8.8.4.4
NTP=pool.ntp.org

[Address]
Address=192.168.0.50/24

[Address]
Address=2001:db8:dead:beef::/64

Or add static routes:

# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DNS=8.8.8.8
DNS=8.8.4.4
NTP=pool.ntp.org

[Address]
Address=192.168.0.50/24

[Address]
Address=2001:db8:dead:beef::/64

[Route]
Destination=10.0.10.0/24
Gateway=192.168.50.1

[Route]
Destination=10.0.20.0/24
Gateway=192.168.50.1

Do DHCP on all network devices

You can use wildcards almost anywhere in the [Match] block. For example, this will cause systemd-networkd to do DHCP on all interfaces:

[Match]
Name=eth*

[Network]
DHCP=yes

Bridging

Let's consider an example where we have eth0 and we want to add it to a bridge. This could be handy for servers where you want to build containers or virtual machines and attach them to the network bridge.

Start by setting up our bridge interface, br0:

# cat /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge

Now that we have a bridge device, let's configure the network for the bridge:

# cat /etc/systemd/network/br0.network
[Match]
Name=br0

[Network]
IPForward=yes
DHCP=yes

The IPForward=yes will take care of the sysctl forwarding setting for us (net.ipv4.conf.br0.forwarding = 1) automatically when the interface comes up.

Now, let's take the ethernet adapter and add it to the bridge:

# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
Bridge=br0

Simply reboot the system and it will come up with eth0 as a port on br0.

Status & Diagnostics

All of the output from systemd-networkd will appear in your system journal. Any errors when setting up interfaces or configuring routes will be printed there. The networkctl command allows you to check your network devices at a glance. Here's an example of a fairly complicated network setup:

# networkctl
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 enp3s0           ether              off         unmanaged 
  3 enp1s0f0         ether              degraded    configured
  4 enp1s0f1         ether              degraded    configured
  5 br1              ether              routable    configured
  6 br0              ether              routable    configured
  7 gre0             ipgre              off         unmanaged 
  8 gretap0          ether              off         unmanaged 
  9 gre-colocation   ipgre              routable    configured
 12 vlan100          ether              routable    configured
 13 tun1             none               routable    unmanaged 
 14 tun0             none               routable    unmanaged 
 15 vlan200          ether              routable    configured

You'll find two physical network cards (enp1s0f0 and enp1s0f1) each attached to a bridge (br0 and br1, respectively). The physical network adapters show up as 'degraded' because they don't have network addresses directly assigned -- that assignment is done on the bridge.

Further Reading

Gholms (talk) 05:49, 27 August 2015 (UTC)