How to configure the network interfaces
Info Box
|
How to configure the network interfaces[edit | edit source]
For deploying an Embedded System, one of the most important configuration is the Network Interface configuration.
Once the Embedded Device is finally configured for stand-alone bootstrap, the network interface should be configured for reaching the device remotely via network connections like ssh, telnet, ftp, http, etc.
This Application Note briefly describes how it is possible to simply configure the network interfaces on SystemV (aka SysV) or systemd
Resources[edit | edit source]
For further details on network configuration, please refer - for example - to:
Examples[edit | edit source]
The following configuration assumptions are used in the paragraphs shown below:
- IP address range of the LAN network 192.168.1.0 - 192.168.1.255
- IP address of the gateway 192.168.1.254
- IP address of the device 192.168.1.100
SysV[edit | edit source]
The configuration files for SysV can be found in pre-defined directorys as written here
Basically, for network configuration, it should be enough to properly configure the /etc/network/interfaces
file.
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
Here below an example of configuration file:
Static IP address[edit | edit source]
The network interface is configured with a static IP address by creating the configuration entry in the /etc/network/interfaces file as the following:
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.254
Dynamic IP addres (DHCP)[edit | edit source]
The network interface is configured - using a proper DHCP server on the network - by creating the configuration entry in the /etc/network/interfaces file as the following:
allow-hotplug eth0 iface eth0 inet dhcp
When the Linux kernel detects the physical interface eth0, the iface causes ifup to use DHCP to configure the interface.
DNS[edit | edit source]
If the resolvconf
package is not installed, the DNS configuration can be done manually by editing the /etc/resolv.conf as the following:
nameserver 192.168.1.1
For example, it can be done on the command line echoing the string in this way:
root@axel-lite:~# echo "nameserver 192.168.1.1" > /etc/resolv.conf
loopback network interface[edit | edit source]
The following configuration entry in the /etc/network/interfaces file brings up the loopback network interface lo upon booting the system.
# The loopback interface auto lo iface lo inet loopback
This one always exists in the /etc/network/interfaces file.
systemd[edit | edit source]
The network configuration for systemd are basically found in the /etc/systemd/network/
directory.
The most simply way for configuring the network interface is to create/edit the file /etc/systemd/network/20-eth0.network as per the following paragraphs.
For more example and usage hints on systemd, please refer to our wiki page.
Static IP address[edit | edit source]
[Match] Name=eth0 # Prevent the interface loading if the kernel boots from nfs KernelCommandLine=!nfsroot [Network] Address=192.168.1.100 Gateway=192.168.1.254 DNS=192.168.1.1
Once modified, the networkd
service should be resarted:
systemctl restart systemd-networkd
Dynamic IP addres (DHCP)[edit | edit source]
The network interface is configured - using a proper DHCP server on the network - by using the DHCP key in the configuration file as the following:
[Match] Name=eth0 # Prevent the interface loading if the kernel boots from nfs KernelCommandLine=!nfsroot [Network] DHCP=yes
When systemd network starts, it tries to use a DHCP server present in the network to configure the interface.
DNS[edit | edit source]
The DNS key (in the configuration file) is used only if the systemd-resolved service is enabled and the /etc/resolv.conf has a symbolic link to /run/systemd/resolve/stub-resolv.conf
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Once modified, the resolved
service should be resarted:
systemctl restart systemd-resolved
loopback network interface[edit | edit source]
systemd contains native implementations of various tasks that need to be executed as part of the boot process.
For example, it sets the hostname or configures the loopback network device.
Apply configuration changes[edit | edit source]
After editing the above files, changes are applied after reboot or by restarting systemd-networkd.service
:
root@imx6qdlxelk:~# systemctl restart systemd-networkd.service