Файл: Конфигурация сетевой инфраструктуры.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 15

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Конфигурация сетевой инфраструктуры

Конфигурация сетевых интерфейсов


В современных дистрибутивах для манипуляции сетевыми устройствами присутствует пакет iproute, в состав которого входят такие утилиты как: ip, ss, tc, и т.д. Минимально необходимые команды, которые нужно знать:


  • Посмотреть список физических интерфейсов
    # ip link ( или ip l)

  • Посмотреть список интерфейсов с IP-адресами
    # ip address show (или ip a s)

  • Добавить IP адрес на интерфейс
    # ip address add {ip-address/mask} dev {interface}

  • Удалить IP адрес с интерфейса
    # ip address del {ip-address/mask} dev {interface}

  • Посмотреть список маршрутов
    # ip route show (или ip r s)

  • Добавить маршрут
    # ip route add {network/mask} via {gateway ip}

  • Удалить маршрут
    # ip route del {network/mask} via {gateway ip}

  • Добавить маршрут по умолчанию
    # ip route add default via {gateway ip}

  • Удалить маршрут по умолчанию
    # ip route del default


Данные команды применяются на лету, но не переживают ребут системы. Чтобы изменения переживали ребут, существует несколько способов.

Способ номер #1 - Network Scripts и файлы конфигурации.
В предыдущих релизах RedHat, основным способом конфигурации сети было использование shell скриптов. Под шел скриптами подразумевается в основном “/etc/init.d/network” и всё что он в дальнейшем вызывает. Пользователь предоставлял файлы, рассматриваемые как конфигурационные, но которые могли быть интерпретируемые как дополнения, содержащие переменные для скриптов. В настоящее время, данный способ является дополнительным, в то время как в Debian, этот способ всё ещё является способом по умолчанию.
В RedHat-подобных дистрибутивах, конфигурационные файлы интерфейсов хранятся в директории “/etc/sysconfig/network-scripts/” с именами “ifcfg-*”, где “*” – имя интерфейса.

Создать файл конфигурации можно обычным текстовым редактором


vim /etc/sysconfig/network-scripts/ifcfg-enp0s3


Узнать, что нужно написать в этом файле можно в файле документации “sysconfig.txt”:



less /usr/share/doc/initscripts-version/sysconfig.txt


Посмотреть примеры файлов конфигурации сети можно в директории


ls /usr/share/doc/initscripts-version/examples/networking/


Не нужно запоминать эти пути! Нужно помнить, что их всегда можно найти. Логика следующая:

  1. Нужно узнать какому пакету принадлежит “/etc/sysconfig/network-scripts/”
    # rpm -qf /etc/sysconfig/network-scripts/

  2. Вывести список всех файлов, установленных данным пакетом
    # rpm -ql initscripts или rpm -ql $(rpm -qf /etc/sysconfig/network-scripts/)

  3. Отфильтровать вывод можно с помощью команды grep
    # rpm -ql initscripts | grep doc


Пример конфигурации статики:

DEVICE=enp0s3

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.0.1

NETMASK=255.255.255.0

GATEWAY=192.168.0.254

DNS1=192.168.0.254

USERCTL=no
Чтобы задать статический маршрут/маршруты, нужно создать файл “/etc/sysconfig/network-scripts/route-*”, где “*” – имя исходящего интерфейса. В данном файле, нужно перечислить необходимые маршруты. Пример: “172.16.2.0/24 via 192.168.0.254”.
После выполнения вышеперечисленных действий нужно сделать: systemctl restart networking.
В Debian-подобных файл конфигурации сетевых интерфейсов находится тут “/etc/network/interfaces”. Информацию о том, как заполнять этот файл можно найти в мануле


man interfaces
vim /etc/network/interfaces



auto enp0s3

allow-hotplug enp0s3

iface enp0s3 inet static

address 192.168.0.6

netmask 255.255.254.0

gateway 192.168.1.237


Как добавить статические маршруты? iface поддерживает следующие опции (что конечно же описано в man interfaces): pre-up, up, post-up, pre-down, down. Данные опции позволяют выполнить любую команду, перед тем как интерфейс поднимется или выключится. Поэтому…


auto enp0s3

allow-hotplug enp0s3

iface enp0s3 inet static

address 192.168.0.6

netmask 255.255.254.0

gateway 192.168.1.237

post-up ip route add 172.16.2.0/24 via 192.168.0.254

pre-down ip route del 172.16.2.0/24 via 192.168.0.254


DNS-сервера для статически настроенных машин должны быть перечислены в файле “/etc/resolv.conf” в формате “nameserver X.X.X.X”. Данный файл может быть перезаписан, например - dhcp-client’ом, если есть интерфейсы, получающие IP-адрес динамически, поэтому как-то нужно убедиться, что данные настройки будут перманентными.

В Debian настроить через interfaces просто так не получится. Для этого нужно установить пакет “resolvconf”.


apt install resolvconf



После этого в “man resolvconf” можно подсмотреть, что необходимые опции можно добавить так: “dns-nameservers 192.168.0.254 8.8.8.8”.


auto enp0s3

allow-hotplug enp0s3

iface enp0s3 inet static

address 192.168.0.6

netmask 255.255.254.0

gateway 192.168.1.237

dns-nameservers 192.168.0.254 8.8.8.8

dns-search mycorp.un


Способ номер #2 - NetworkManager (Уневерсальный!!!)
Более современным путём настройки сети будет являться NetworkManager. NetworkManager – дефолтный (в RHEL) сетевой демон, который позволяет настраивать IP-адреса, создавать алиасы интерфейсов, добавлять статические маршруты, информацию о DNS, создавать VPN подключения. NetworkManager запускается как демон и предоставляет API через шину D-Bus, который предоставляет способ запрашивать и контролировать состояние устройств.
В стандартную поставку для NM входят следующие утилиты:

nmtui

Простой псевдо-графический интерфейс.

nmcli

Command-line утилита, позволяющая пользователям и скриптам взаимодействовать с NetworkManager’ом.

nm-connection-editor

GTK+ приложение.



Хоть в RHEL NetworkManager и является сетевым сервисом по умолчанию, разработчики сделали всё возможное чтобы shell-скрипты (network scripts) могли взаимодействовать с NM и работать параллельно. NM запускается первым, а /etc/init.d/network согласуется с NM что бы избежать вмешательства в его конфигурацию.
Что касается Debian, то там NetworkManager требует отдельной установки.
Внимание! На машинах с GUI network-manager уже должен быть установлен. Так как апплеты конфигурации сети его и используют.


apt install network-manager


Конфигурация в “/etc/network/interfaces” не должна конфликтовать с NM, поэтому там должны остаться только настройки loopback интерфейса.

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback


Дальше необходимо выполнить перезагрузку Debian-машин:


reboot


После чего можно будет воспользоваться утилитой nmtui для настройки:

  • ip адресов

  • DNS

  • hostnames

  • статических маршрутов

  • gre-туннелей





nmtui


Можно редактировать соединения, активировать/деактивировать и задать хостнейм.



Выполните схожие действия для всех остальных машин!
NetworkManager - имба! Используйте его!!!!

Форвардинг пакетов



Некоторые участники сети будут выступать в качестве маршрутизаторов, поэтому нужно включить возможность форвардинга.
Просматривать и настраивать системные переменные, можно с помощью утилиты sysctl.
Найти опцию, которая отвечает за форвардинг ipv4 пакетов

sysctl -a | grep forward | grep ip


Включить форвардинг на работающей системе


sysctl -w net.ipv4.ip_forward=1


Для того чтобы изменения сохранялись при перезапуске системы, “net.ipv4.ip_forward=1” нужно добавить в файл “/etc/sysctl.conf”.
На L-FW и R-FW

sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf

NTP



Для нормальной работы многих сервисов (ОСОБЕННО с TLS), необходимо чтобы часы были синхронизированы.
Установка NTP сервера на L-SRV

[root@L-SRV]# apt install chrony
[root@L-SRV]# echo "allow 0.0.0.0/0" >> /etc/chrony/chrony.conf

[root@L-SRV]# echo "local stratum 2" >> /etc/chrony/chrony.conf
[root@L-SRV]# timedatectl set-timezone Asia/Yekateringburg
[root@L-SRV]# timedatectl set-ntp 0
[root@L-SRV]# systemctl restart chrony


Подключение клиентов.

[root@ANY]# timedatectl set-timezone Asia/Yekateringburg
[root@ANY]# timedatectl set-ntp 1
[root@L-ANY]# apt install chrony

[root@L-ANY]# vim /etc/chrony/chrony.conf

[root@R-ANY]# vim /etc/chrony.conf

[root@ANY]# systemctl restart chronyd

DHCP Server



- DHCP server на Linux:

http://www.k-max.name/linux/dhcp-server-na-linux/
Устанавливаем DHCP сервер и делаем backup конфига.



[root@L-FW]# apt install isc-dhcp-server
[root@L-FW]# mkdir dhcp_bak
[root@L-FW]# cp /etc/dhcp/dhcpd.conf dhcp_bak/


Хорошим тоном будет убедится, что isc-dhcp-server был добавлен в автозагрузку.


[root@L-FW]# systemctl enable isc-dhcp-server


Нужно указать на каких интерфейсах должен работать isc-dhcp-server.


[root@L-FW]# vim /etc/default/isc-dhcp-server


INTERFACESv4="enp0s8"


После чего можно приступить к конфигурации. В dhcpd.conf уже все что необходимо есть, нужно просто отсечь всё ненужное.


[root@L-FW]# vim /etc/dhcp/dhcpd.conf

# Суффикс доменного имени по умолчанию

option domain-name "skill39.wsr";

# Адрес/адреса DNS сервера/серверов

option domain-name-servers 172.16.20.10;
# Время аренды адреса по умолчанию

default-lease-time 600;

# Ограничение по максимальному времени аренды

max-lease-time 7200;
# Данный сервер является авторитетным для этой сети

authoritative;
# Отключить DDNS. (Опция понадобиться в будущем)

ddns-update-style none;
subnet 172.16.100.0 netmask 255.255.255.0 {

range 172.16.100.60 172.16.100.75; # Диапазон адресов

option routers 172.16.100.1; # Шлюз по умолчанию

}
Проверить конфигурацию DHCP сервера


[root@L-FW]# dhcpd -t


Если с конфигурацией всё ОК, то dhcp-сервер нужно перезапустить:
[root@L-FW]# systemctl restart isc-dhcp-server