Настройка сети с помощью systemd-networkd
Обратите внимание
Начиная с systemd версии 238 появились схемы именования сетевых интерфейсов (net naming schemes). Это значит, что при использовании предсказуемых имён сетевых интерфейсов (predictable network interface names) сетевые интерфейсы могут называться по-разному в зависимости от загруженной версии systemd.
К счастью, если вы используете systemd-networkd, для идентификации сетевых карт можно опираться на MAC-адреса, а не на имена интерфейсов.
В нашем Installimage и при автоматических установках мы обычно стараемся придерживаться стандартного для дистрибутива способа настройки сети. Но поскольку такие реализации, как ifupdown и network-scripts, требуют указания имён интерфейсов, в настоящее время для настройки систем CentOS и Debian с предсказуемыми именами сетевых интерфейсов мы также используем systemd-networkd.
Синтаксис файла конфигурации .network
Информацию о файлах .network, используемых systemd-networkd, можно найти здесь: https://www.freedesktop.org/software/systemd/man/systemd.network.html.
Основные IP-адреса
Выделенные root-серверы
Основной IP выделенного root-сервера обычно берётся из более крупной подсети, но во избежание подмены IP-адресов (spoofing) системам разрешено обмениваться данными только со своим шлюзом.
Это значит, что если задать фактическую маску подсети для IPv4, например /27, то другие системы в той же подсети окажутся недоступными.
Чтобы иметь возможность обращаться к системам в своей подсети, основной адрес IPv4 нужно настроить как адрес /32. Поскольку шлюз тогда окажется за пределами сети этого IP, системе нужно указать, как до него добраться.
IPv4
В приведённом ниже примере настраивается основной IP 1.2.3.4 и шлюз 4.3.2.1 для сетевого интерфейса с MAC-адресом 12:34:56:78:9a:bc.
Основной IP настраивается как адрес /32 в отдельной секции [Address], где Peer=<Gateway> сообщает системе, что шлюз доступен через интерфейс, для которого настроен этот адрес. О том, почему такую схему стоит применять для выделенных root-серверов, см. раздел «Выделенные root-серверы».
# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC
[Network]
Gateway=4.3.2.1
[Address]
Address=1.2.3.4 # Main IP, /32 suffix is optional
Peer=4.3.2.1/32 # Gateway
IPv6
IPv6 можно настроить, указав IP-адрес и шлюз.
# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC
[Network]
Address=1:2:3:4::5/64
Gateway=fe80::1
IPv4 и IPv6
Приведённая ниже dualstack-конфигурация, по сути, представляет собой сочетание конфигураций IPv4 и IPv6, описанных выше.
О том, почему основной IPv4 выделенного сервера следует настраивать как адрес /32 и почему для связи с соседями по подсети требуется настройка Peer, см. разделы «Выделенные root-серверы» и «IPv4».
# Config file /etc/systemd/network/10-mainif.network
[Match]
MACAddress=12:34:56:78:9a:bc # Main network interface MAC
[Network]
Address=1:2:3:4::5/64
Gateway=4.3.2.1
Gateway=fe80::1
[Address]
Address=1.2.3.4 # Main IP, /32 suffix is optional
Peer=4.3.2.1/32 # Gateway