Назад | Перейти на главную страницу

Использование dhcp и статического IP-адреса на одном nic в Linux с помощью systemd-networkd

У меня есть портативное устройство, которому иногда требуется подключение к Интернету (для обновления), но в основном оно будет использоваться напрямую с ноутбуком через кабель Ethernet. Я хочу, чтобы мои пользователи получали преимущества Plug and Play от DHCP IP при подключении к маршрутизатору, но при этом могли подключаться к устройству, когда сервер DHCP не задействован.

Я в основном хочу это сделать, но с помощью systemd-networkd: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth0:0 iface eth0:0 inet static address 192.168.0.130 netmask 255.255.255.0

Как мне добиться этого с помощью systemd-networkd и есть ли лучший способ добиться того же результата?

Вы можете включить DHCP на сетевом интерфейсе, а также установить дополнительные адреса IPv4 / IPv6.

Это пример конфигурации: /etc/systemd/network/eth0.network

[Match]
Name=eth0

[Network]
DHCP=yes

[Address]
Address=192.168.0.130/24

Это приводит к:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8d:c0:32 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.130/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 86357sec preferred_lft 86357sec
    inet6 fe80::a00:27ff:fe8d:c04d/64 scope link 
       valid_lft forever preferred_lft forever

192.168.0.130 статический IPv4, 10.0.2.15 IPv4 от DHCP.

Вы можете настроить dhclient.conf следующим образом:

timeout 10;

lease {
interface "eth0";
fixed-address 10.0.0.10;
option subnet-mask 255.255.255.0;
}

interface "ep0" {
prepend domain-name-servers 10.0.0.1;
}

Это настроит ваш DHCP-сервер на тайм-аут через 10 секунд после того, как он не получит IP-адрес от DHCP-сервера, и предоставит адрес 10.0.0.10 в сети / 24. Вы также можете установить DNS-серверы в конфигурации. Вот ссылка на страницу руководства, откуда я получил эту конфигурацию

http://www.freebsd.org/cgi/man.cgi?query=dhclient.conf&sektion=5&n=1