Создаем стенд и настраиваем виртуальную машину ISP согласно топологи
ОЗУ – 1 ГБ
HDD – 9 ГБ
ЦПУ – 1
Сетевых интерфейсов – 3
Устанавливаем операционную систему – Ред ОС 8 сервер минимальный
# hostnamectl set-hostname ISP
# exec bash
Сетевые интерфейсы ISP:
ens18 - сеть Интернет (DHCP);
ens19 - сеть в сторону офиса Left;
ens20 - сеть в сторону офиса Righ;
С помощью nmtui задаем IP – адреса интерфейсам ens19 и ens20


Включаем пересылку пакетов между интерфейсами - forwarding
Редактируем файл sysctl.conf
# nano /etc/sysctl.conf
Прописываем следующую строку:
net.ipv4.ip_forward=1
Применяем внесенные изменения
# sysctl -p
Установка DHCP сервера
# dnf install dhcp-server -y
Для облегчения создания конфигурационного файла для DHCPv4
Копируем файл /usr/share/doc/dhcp-server/dhcpd.conf.example в директорию /etc/dhcp/ с именем dhcpd.conf
# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
Открываем файл конфигурации
# nano /etc/dhcp/dhcpd.conf
и приводим его к следующему виду или прописываем в ручную:
default-lease-time 600;
max-lease-time 7200;
authoritative;
# ISP_Left
subnet 11.11.0.0 netmask 255.255.255.0 {
range 11.11.0.2 11.11.0.200;
option domain-name-servers 11.11.0.1,77.88.8.8;
option routers 11.11.0.1;
}
# ISP_Right
subnet 22.22.0.0 netmask 255.255.255.0 {
range 22.22.0.2 22.22.0.200;
option domain-name-servers 22.22.0.1,77.88.8.8;
option routers 22.22.0.1;
}
где
subnet - обозначает сеть, в области которой будет работать данная группа настроек;
range — диапазон, из которого будут браться IP-адреса;
option domain-name-servers — через запятую перечисляем DNS-сервера.
option domain-name — суффикс доменного имени
option routers — шлюз по умолчанию;
default-lease-time, max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.
Запускаем и добавляем в автозагрузку службу dhcpd (для IPv4):
# systemctl enable --now dhcpd
Настраиваем nftables
Создаем и открываем фалй
# nano /etc/nftables/isp.nft
Прописываем следующие строки
table inet nat {
chain POSTROUTING {
type nat hook postrouting priority srcnat;
oifname "ens18" masquerade
}
}
где ens18 - интерфейс ISP (смотрящий в Интернет)
Включаем использование данного файла в sysconfig
# nano /etc/sysconfig/nftables.conf
Прописываем строку
include "/etc/nftables/isp.nft"
Запускаем и добавление в автозагрузку сервиса nftables
# systemctl enable --now nftables
Проверяем созданные правила nftables
# nft list ruleset
Устанавливаем bind:
# dnf install bind -y
Редактируем конфигурационный файл /etc/named.conf:
# nano /etc/named.conf

где:
listen-on { any; }; параметр определяет адреса и порты, на которых DNS-сервер будет слушать запросы. Значениеany - прослушивать запросы на всех доступных интерфейсах и IP-адресах.
allow-query { any; }; список IP-адресов или подсетей, которым разрешено отправлять запросы на этот DNS-сервер. Значение any позволяет принимать запросы от всех клиентов.
forwarders { 77.88.8.8; }; Режим "пересылки" (forwarding). Когда сервер получает запрос на имя, которое он не может разрешить, он перенаправляет запрос на другой DNS-сервер (forwarder), указанный в этой директиве.
С помощью утилиты named-checkconf проверяем наличие ошибок в конфигурационном файле, если результат выполнения данной команды пуст - значит ошибок нет.
# named-checkconf
Запускаем и добавляем в автозагрузку DNS - сервер:
# systemctl enable --now named
Подключаем клиентов и тестируем

