Задача:

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