Требуемые условия завершения
Задача:
2. Настройте адресацию на интерфейсах:
- Интерфейс, подключенный к магистральному провайдеру, получает адрес по DHCP
- Интерфейс, к которому подключен HQ-RTR, имеет адрес 4.4.4.1/28
- Интерфейс, к которому подключен BR-RTR, имеет адрес 5.5.5.1/26
- Интерфейс, к которому подключен DC-RTR, имеет адрес 6.6.6.1/29
- Настройте динамическую трансляцию адресов для 3-х сетей.
Вариант реализации:
- Задаём имя устройству:
hostnamectl set-hostname ISP;exec bash
-
- Результат:
- Смотрим основные - имеющиеся сетевые настройки:
- Настраиваем интерфейсы enp0s8/9/10 - для работы с etcnet:
- копируем рекурсивно каталог для интерфейса enp0s3 в каталок для интерфейса enp0s8;
cp -r /etc/net/ifaces/enp0s{3,8}/
-
- правим параметр в файле options - для интерфейса enp0s8, чтобы далее на интерфейс задавать статические настройки, а не ожидать их от DHCP - сервера;
sed -i "s/BOOTPROTO=dhcp/BOOTPROTO=static/g" /etc/net/ifaces/enp0s8/options
-
- копируем рекурсивно каталог интерфейса enp0s8 в каталог для интерфейсов - enp0s9 и enp0s10:
cp -r /etc/net/ifaces/enp0s{8,9}/
cp -r /etc/net/ifaces/enp0s{8,10}/
- Назначаем соответствующие IPv4 - адреса на интерфейсы:
- Интерфейс, к которому подключен HQ-RTR, имеет адрес 4.4.4.1/28
echo "4.4.4.1/28" > /etc/net/ifaces/enp0s8/ipv4address
-
- Интерфейс, к которому подключен BR-RTR, имеет адрес 5.5.5.1/26
echo "5.5.5.1/26" > /etc/net/ifaces/enp0s9/ipv4address
-
- Интерфейс, к которому подключен DC-RTR, имеет адрес 6.6.6.1/29
echo "6.6.6.1/29" > /etc/net/ifaces/enp0s10/ipv4address
- Включаем перессылку пакетов (forwarding):
sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/net/sysctl.conf
- Для применение всех ранее внесённых изменений связанных с сетью - перезагружаем службу network:
systemctl restart network
- Проверяем:
- Настраиваем динамическую трансляцию адресов для 3-х сетей:
- Устанавливаем пакет nftables:
apt-get update && apt-get install -y nftables
-
- Создаём таблицу nat для семейства ip:
nft add table ip nat
-
- Создаём цепочку postrouting в таблице nat семейства ip:
nft add chain ip nat postrouting "{ type nat hook postrouting priority 0; }"
-
- Добавляем правила в цепочку postrouting в таблицу nat семейства ip для трансляции адресов сети в сторону HQ-RTR:
nft add rule ip nat postrouting ip saddr 4.4.4.0/28 oifname "enp0s3" counter masquerade
-
- Добавляем правила в цепочку postrouting в таблицу nat семейства ip для трансляции адресов сети в сторону BR-RTR:
nft add rule ip nat postrouting ip saddr 5.5.5.0/26 oifname "enp0s3" counter masquerade
-
- Добавляем правила в цепочку postrouting в таблицу nat семейства ip для трансляции адресов сети в сторону DC-RTR:
nft add rule ip nat postrouting ip saddr 6.6.6.0/29 oifname "enp0s3" counter masquerade
-
- Таким образом, имеем следующие правила:
-
- Сохраняем текущие правила в файл /etc/nftables/nftables.nft
nft list ruleset | tee -a /etc/nftables/nftables.nft
-
- Включаем и добавляем в автозагрузку службу nftables:
systemctl enable --now nftables
- Проверяем:
Последнее изменение: понедельник, 20 мая 2024, 20:11