Прикладной уровень: что нужно для полноценной работы?

Повторение: «Настройка выхода в интернет»:

[root@srv ~]# cat /etc/systemd/network/20-default.network
[Match]
Name = eth0

[Network]
DHCP = ipv4
IPForward=yes

(успеем только упомянуть) Связь с отдельными функциями: RPC

Проблема: динамическое выделение входных портов.

В образе не запущен.

DNS

Проблема адресации vs. именование:

Решение:

Работа DNS

Статическая таблица резолвинга /etc/resolv.conf

Множественные пространства имён и /etc/nsswitch.conf

Динамическая таблица резолвинга и systemd-resolved

DNS-серверы:

Настройка systemd-resolved как мелкого DNS-сервера

Вообще-то systemd-resolved предназначен для отслеживания пространств имён. Но его можно заставить работать DNS-сервером!

[root@srv ~]# grep "^[^#]" /etc/systemd/resolved.conf 
[Resolve]
DNSStubListenerExtra=10.1.1.2

# systemctl enable --now systemd-resolved
# resolvectl

Вариант настройки /etc/systemd/resolved.conf (был в лекции), при котором resolved работает почти совсем настоящим DNS-сервером:

Всё, что мы напишем в /etc/hosts, можно опросить у DNS:

DHCP

Предварительно: Самонастройка IPv4 (rfc3927) (169.254.* (link-local))

DHCP (предшественник — BOOTP) — настройка IP по MAC-адресу

Основные реализации серверов:

Клиенты:

DHCP-сервер systemd-networkd

Предварительно: /etc/machine-id как идентификатор компьютера.

Достаточные для простой сети функции DHCP-сервера есть в systemd-networkd:

[root@srv ~]# cat /etc/systemd/network/50-intnet.network 
[Match]
Name = eth1

[Network]
Address = 10.1.1.2/24
DHCPServer = yes

[DHCPServer]
PoolOffset = 10
PoolSize = 5
DNS = 10.1.1.2

TODO в лекции было DNS=10.1.1.2%eth1, но оно, кажется, не нужно.

Настройка DHCP-клиента networkd

Более «взрослые» DHCP и DNS сервера умеют динамически обновлять зону, ответственную, за адреса, раздаваемые по DHCP:

Настройка пересылки пакетов и NAT

[root@srv ~]# systemctl enable --now nftables.service
[root@srv ~]# cat /etc/systemd/network/60-intnet.network 
[Network]
IPMasquerade=ipv4
[root@srv ~]# networkctl reload

И немного ужасов:

[root@srv ~]# nft -a list table ip io.systemd.nat

Анонсирование служб

Avahi

Zeroconf и Avahi

(не успеем) Сетевые файловые системы

Д/З

Новое в образе

Задание 9

LecturesCMC/LinuxNetwork2023/09_ApplicationSupplemental (последним исправлял пользователь FrBrGeorge 2024-04-05 22:42:43)