#14: Investigate systemd-networkd
------------------------------+--------------------------------
Reporter: mattdm | Owner: janeznemanic
Type: task | Status: new
Priority: normal | Milestone: Fedora 21 (Alpha)
Component: Cloud Base Image | Resolution:
Keywords: |
------------------------------+--------------------------------
Comment (by janeznemanic):
Report on my work.
First I had to learn a little bit about systemd. What is all about, how
does it work etc. Then I focused on networking subsystem in Fedora and
tried to understand how it works. After setting my little lab environment
I started with hands on approach.
My test environment:
- host system: 32 bit Fedora 20
- hypervisor: VirtualBox
- guest system: 32 bit Fedora 20
- systemd release: rawhide
My experiment and current findings
I disabled Gnome's NetworkManager, NetworkManager-dispatcher and
NetworkManager-wait-online and dropped network configuration file into
/usr/lib/systemd/network. The content of this file is:
[Match]
Name=p*
[Network]
DHCP=yes
Systemd names network interface p2p1 on my guest Fedora. So that's why I
used Name=p*. That's the most simple and basic network configuration with
systemd-networkd. I think that DHCP is also default configuration in
desktop Fedora 20. I restarted systemd-networkd service and I could ping
www.google.com and do DNS look up with dig. Ping and dig work as you would
expect on my guest and on my host system.
I did some research on scripts in /etc/sysconfig/network-scripts. All
those scripts depend on ifcfg-* files in the same directory. But systemd-
networkd doesn't use ifcfg-* files. I removed ifcfg-* files and systemd-
netword worked fine. I was also able to ping google. But if I tried to use
for example ifup or ifdown script then that script failed. Because it
couldn't source ifcfg-*. I think so, I might be wrong. Since ifup and
ifdown are links to /usr/sbin/{ifup,ifdown} it might be possible to remove
/usr/sbin/{ifup,ifdown}. But I haven't tested that so I'm not sure. I
think we also don't need to use /etc/rc.d/init.d/network. I removed that
file and networking worked fine with systemd-networkd.
So to sum up. If systemd-networkd service is used it is possible in my
opinion to remove scripts in /etc/sysconfig/network-scripts and
/etc/rc.d/init.d/network script. Besides that it is possible to remove
NetworkManager.
'''Thoughts? Suggestions? Ideas?'''
One more thing that's been bothering me for a few days now. How does
systemd name network interfaces when Fedora is run on top of different
hypervisors? If xen or kvm is used how does systemd name network
interfaces?
--
Ticket URL: <
https://fedorahosted.org/cloud/ticket/14#comment:3>
cloud <
https://fedorahosted.org/cloud>
Fedora Cloud Working Group Ticketing System