ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Конфигурация сетевой инфраструктуры
Конфигурация сетевых интерфейсов
В современных дистрибутивах для манипуляции сетевыми устройствами присутствует пакет 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/
Не нужно запоминать эти пути! Нужно помнить, что их всегда можно найти. Логика следующая:
Нужно узнать какому пакету принадлежит “/etc/sysconfig/network-scripts/” # rpm -qf /etc/sysconfig/network-scripts/
Вывести список всех файлов, установленных данным пакетом # rpm -ql initscripts или rpm -ql $(rpm -qf /etc/sysconfig/network-scripts/)
Отфильтровать вывод можно с помощью команды grep # rpm -ql initscripts | grep doc
Пример конфигурации статики:DEVICE=enp0s3BOOTPROTO=noneONBOOT=yesIPADDR=192.168.0.1NETMASK=255.255.255.0GATEWAY=192.168.0.254DNS1=192.168.0.254USERCTL=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 enp0s3allow-hotplug enp0s3iface enp0s3 inet static address 192.168.0.6netmask 255.255.254.0gateway 192.168.1.237Как добавить статические маршруты? iface поддерживает следующие опции (что конечно же описано в man interfaces): pre-up, up, post-up, pre-down, down. Данные опции позволяют выполнить любую команду, перед тем как интерфейс поднимется или выключится. Поэтому…auto enp0s3allow-hotplug enp0s3iface 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.254DNS-сервера для статически настроенных машин должны быть перечислены в файле “/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 enp0s3allow-hotplug enp0s3iface enp0s3 inet static address 192.168.0.6 netmask 255.255.254.0 gateway 192.168.1.237dns-nameservers 192.168.0.254 8.8.8.8dns-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 interfaceauto loiface 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
Хорошим тоном будет убедится, что 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