Создание сетевой инфраструктуры в Proxmox
Cетевая инфраструктуры – это система программ и оборудования, которая отвечает за передачу данных между компьютерами в сети организации. Также она обеспечивает доступ к общим ресурсам – например, принтерам, телефонам и файловым серверам. Кроме того, система отвечает за защиту передачи информации. Таким образом, грамотная организацией сетевой инфраструктуры делает коммуникацию пользователей сети предприятия удобной и эффективной.
На основе сетевой инфраструктуры создаются корпоративные сети и работают Интернет-провайдеры. Сетевая инфраструктура состоит из множества технических средств, которые можно разделить на 3 категории:
- активное оборудование – это устройства, которые обрабатывают и передают данные в сети. Сюда входят маршрутизаторы, коммутаторы, межсетевые экраны, шлюзы, DHCP-, proxy-, DNS-сервера;
- пассивное оборудование – не обрабатывает и не передает данные в сети, а только обеспечивает их физическое соединение. Это кабели, разъемы, коннекторы, провода, кроссовые панели, сетевые розетки и монтажные шкафы;
- периферийные устройства – стационарные или мобильные устройства, которые подключаются к сети для выполнения определенных задач. К ним относятся модемы, сетевые хранилища данных, IP-телефония, веб-камеры, микрофоны, принтеры и сканеры.
Создание сетевой инфраструктуры
Создание сетевой инфраструктуры будет выполняться на базе гипервизора Proxmox.
Создайте виртуальные машины в соответствии с таблицей ниже.
| № | Наименование | Image | CPU Cores | Memory (MB) | Disk Size (GB) |
|---|---|---|---|---|---|
| 1 | isp | Alt Server | 1 | 2048 | 10 |
| 2 | rtr-l | Alt Server | 1 | 2048 | 10 |
| 3 | rtr-r | Alt Server | 1 | 2048 | 10 |
| 4 | srv-l | Alt Server | 1 | 2048 | 10 |
| 5 | sw-r | Alt Server | 1 | 2048 | 10 |
| 6 | cli | Alt Workstation | 2 | 2048 | 20 |
| 7 | admin | Alt Workstation | 2 | 2048 | 20 |
Должно быть так:

Топология сети:

После установки всех операционных систем, необходимо выполнить коммутацию устройства согласно топологии. Чтобы это сделать, необходимо перейти во вкладку «System/Network» в сервере «pve»:

В данной вкладке отображается весь список имеющихся интерфейсов и виртуальных коммутаторов, которые будут использоваться для коммутации между узлами сети.
Чтобы создать виртуальный коммутатор, необходимо нажать кнопку «Create» и в выпадающем меню выбрать «Linux Bridge»:

Откроется окно создания виртуального коммутатора. В окне ничего не нужно менять, достаточно в поле «Comment» указать, кто с кем соединяется:

После – нажать кнопку «Create». В списке отобразится новый виртуальный коммутатор:

По аналогии создадите все остальные интерфейсы:

Важно: соблюдайте ту же очередность созданных виртуальных коммутаторов, что и у меня. В противном случае в дальнейшем это может привести к тому, что сетевая инфраструктура не заработает.
Когда все виртуальные коммутаторы будут созданы, обязательно необходимо нажать кнопку «Apply Configuration»:

Теперь необходимо выполнить коммутацию устройств между собой и, разумеется, добавить недостающие сетевые интерфейсы.
На ISP:

На RTR-L:

На RTR-R:

На SRV-L:

На SW-R:

На CLI:

На ADMIN:

Крайне внимательно проверьте и убедитесь, что все интерфейсы скоммутированы в точности, как у показано выше!
Настройка сетевой инфраструктуры
По классике необходимо начать с маршрутизатора ISP, который будет выступать в роли посредника между нами и Интернет. С нашей точки зрения ISP относится как бы к оборудованию провайдера.
На ISP необходимо настроить сервер времени, NAT, IP-адреса и разрешить передавать трафик через себя.
Настройка сервера времени (NTP):
mcedit /etc/chrony.conf

Нажмите «Esc» и согласитесь с изменениями. После этого необходимо перезапустить службу «chrony», чтобы изменения вступили в силу. Команда «systemctl restart chronyd».
Чтобы убедиться, что связь с NTP-сервером в Интернет установлена, можно выполнить команду «chronyc tracking».

Чтобы ISP мог прокидывать трафик через себя, необходимо разрешить это в конфигурационном файле. Пишем команду «mcedit /etc/net/sysctl.conf». В файле необходимо скорректировать строку.

Чтобы изменения вступили в силу, необходимо перезапустить службу «network». Делается это командой «systemctl restart network».

Так как через ВМ ISP будут выходить в Интернет виртуальные машины, необходимо настроить NAT. Настройка трансляции адресов выполняется с помощью предустановленного модуля «iptables».
Необходимо выполнить следующие команды:
iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables
iptables -t nat -L -n -v

Крайне внимательно выполняйте команды. Это непосредственно влияет на правильность настройки и работоспособность виртуальной сетевой инфраструктуры!
Теперь стоит заняться IP-адресация: настроить конфигурацию интерфейсов.
mkdir /etc/net/ifaces/ens19
echo 1.1.1.1/24 > /etc/net/ifaces/ens19/ipv4address
mcedit /etc/net/ifaces/ens19/options

mkdir /etc/net/ifaces/ens20
echo 2.2.2.1/24 > /etc/net/ifaces/ens20/ipv4address
mcedit /etc/net/ifaces/ens20/options

systemctl restart network
ip -c -br address

На этом настройка ISP завершена.
На RTR-L (подразумевается как маршрутизатор) необходимо настроить NAT, VPN, IP-конфигурацию интерфейсов и шлюз по умолчанию.
Настройка полного доменного имени:
hostnamectl set-hostname rtr-r.ditk.local

mcedit /etc/net/sysctl.conf

iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables
iptables -t nat -L -n -v

echo “” > /etc/net/ifaces/ens18/options
echo 1.1.1.2/24 > /etc/net/ifaces/ens18/ipv4address
echo “default via 1.1.1.1” > /etc/net/ifaces/ens18/ipv4route
mcedit /etc/net/ifaces/ens18/options

mkdir /etc/net/ifaces/ens19
mcedit /etc/net/ifaces/ens19/options

echo 172.16.0.1/24 > /etc/net/ifaces/ens19/ipv4address
mkdir /etc/net/ifaces/gre1
echo 10.10.10.1/30 > /etc/net/ifaces/gre1/ipv4address
echo “192.168.0.0/16 via 10.10.10.2” > /etc/net/ifaces/gre1/ipv4route
mcedit /etc/net/ifaces/gre1/options

systemctl restart network
ip -c -br address

ip -c route

Аналогичные действия необходимо выполнить на маршрутизаторе RTR-R: NAT, VPN, IP-конфигурацию интерфейсов и шлюз по умолчанию.
mcedit /etc/net/sysctl.conf

iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables
iptables -t nat -L -n -v

echo “” > /etc/net/ifaces/ens18/options
echo 2.2.2.2/24 > /etc/net/ifaces/ens18/ipv4address
echo “default via 2.2.2.1” > /etc/net/ifaces/ens18/ipv4route
mcedit /etc/net/ifaces/ens18/options

mkdir /etc/net/ifaces/ens19
mcedit /etc/net/ifaces/ens19/options

mkdir /etc/net/ifaces/ens19.10
mkdir /etc/net/ifaces/ens19.20
mkdir /etc/net/ifaces/ens19.99
mcedit /etc/net/ifaces/ens19.10/options

mcedit /etc/net/ifaces/ens19.20/options

mcedit /etc/net/ifaces/ens19.99/options

echo 192.168.10.1/24 > /etc/net/ifaces/ens19.10/ipv4address
echo 192.168.20.1/24 > /etc/net/ifaces/ens19.20/ipv4address
echo 192.168.99.1/24 > /etc/net/ifaces/ens19.99/ipv4address
mkdir /etc/net/ifaces/gre1
echo 10.10.10.2/30 > /etc/net/ifaces/gre1/ipv4address
echo “172.16.0.0/24 via 10.10.10.1” > /etc/net/ifaces/gre1/ipv4route
mcedit /etc/net/ifaces/gre1/options

systemctl restart network
ip -c -br address

После настройки маршрутизаторов стоит перейти к настройке сервера SRV-L. Данный сервер будет держать на себе DNS- и DHCP-службы.
Настройка полного доменного имени:
hostnamectl set-hostname srv-l.ditk.local

Настройка IP-конфигурации:
echo “” > /etc/net/ifaces/ens18/options
echo 172.16.0.10/24 > /etc/net/ifaces/ens18/ipv4address
echo “default via 172.16.0.1” > /etc/net/ifaces/ens18/ipv4route
mcedit /etc/net/ifaces/ens18/options

systemctl restart network
ip -c -br address

echo “nameserver 77.88.8.8” > /etc/resolv.conf
apt-get update
apt-get install -y dhcp-server bind bind-utils
После установки DHCP-сервера, необходимо выполнить настройку, на каком из интерфейсов будет работать сервер, а также настроить DHCP-пул, из которого будут выдаваться IP-конфигурация с дополнительными параметрами.
mcedit /etc/sysconfig/dhcpd

mcedit /etc/dhcp/dhcpd.conf

Заполните конфигурационный файл в соответствии с изображением выше.
После:
systemctl enable --now dhcpd
systemctl status dhcpd

Теперь необходимо перейти к настройки DNS-сервера.
mcedit /var/lib/bind/etc/options.conf

mcedit /var/lib/bind/etc/rfc1912.conf
В самый конец файла необходимо добавить конфигурацию, как показано ниже.

mcedit /etc/net/ifaces/ens18/resolv.conf

Теперь необходимо скопировать пустую конфигурацию из шаблона, чтобы полностью не писать ее с нуля.
cp /var/lib/bind/etc/zone/empty /var/lib/bind/etc/zone/ditk.local
chown root:named /var/lib/bind/etc/zone/ditk.local
mcedit /var/lib/bind/etc/zone/ditk.local

После этого необходимо запустить службу «bind» и добавить в автозагрузку.
systemctl enable --now bind
После чего перезапустить ВМ SRV-L командой «reboot».
Как сервер перезагрузится, необходимо проверить работоспособность DNS-сервера:
host srv-l
host rtr-r
host rtr-l
host sw-r
host admin
ping ya.ru -c3

DNS-сервер работает корректно.
Теперь необходимо настроить SW-R, который выступает в роли коммутатора. Но начать нужно с настройки полного доменного имени:
hostnamectl set-hostname sw-r.ditk.local
hostname -f

Проброс пакетов:
mcedit /etc/net/sysctl.conf

Дальше нужно установить пакет OpenVSwitch, который как раз-таки позволит из нашего Alt Server сделать коммутатор. Настройка временной IP-конфигурации:
ip link add link ens18 name ens18.99 type vlan id 99
ip link set dev ens18.99 up
ip address add 192.168.99.10/24 dev ens18.99
ip route add 0.0.0.0/0 via 192.168.99.1
echo “nameserver 77.88.8.8” > /etc/resolv.conf
apt-get update
apt-get install -y openvswitch
systemctl enable --now openvswitch
mcedit /etc/net/ifaces/default/options

Нужно перезапустить систему командой «reboot».
Когда система загрузится:
mcedit /etc/net/ifaces/ens18/options

cp -r /etc/net/ifaces/ens18 /etc/net/ifaces/ens19
cp -r /etc/net/ifaces/ens18 /etc/net/ifaces/ens20
systemctl restart network
ip -c -br address

vs-vsctl add-br sw-r
ovs-vsctl add-port sw-r ens18 trunk=10,20,99
ovs-vsctl add-port sw-r ens19 tag=10
ovs-vsctl add-port sw-r ens20 tag=20
modprobe 8021q
echo 8021q | tee -a /etc/modules
mkdir /etc/net/ifaces/mgmt
mcedit /etc/net/ifaces/mgmt/options

echo 192.168.99.10/24 > /etc/net/ifaces/mgmt/ipv4address
echo “default via 192.168.99.1” > /etc/net/ifaces/mgmt/ipv4route
echo “nameserver 172.16.0.10” > /etc/net/ifaces/mgmt/resolv.conf
systemctl restart network
ip -c -br address

ovs-vsctl show

Конфигурация ВМ ADMIN:
su -
P@ssw0rd
hostnamectl set-hostname admin.ditk.local
hostname -f

mcedit /etc/net/ifaces/ens18/options

echo 192.168.20.10/24 > /etc/net/ifaces/ens18/ipv4address
echo “default via 192.168.20.1” > /etc/net/ifaces/ens18/ipv4route
echo “nameserver 172.16.0.10” > /etc/net/ifaces/ens18/resolv.conf
reboot
После перезагрузки:
ip -c -br address

ping ya.ru -c3

Далее, чтобы CLI мог получать IP-конфигурацию от DHCP-сервера, необходимо настроить так называемый DHCP-relay. Для этого нужно зайти на маршрутизаторе RTR-R:
echo “nameserver 172.16.0.10” > /etc/resolv.conf
apt-get update
apt-get install -y dhcp-relay
mcedit /etc/sysconfig/dhcrelay

systemctl enable --now dhcrelay
Теперь необходимо убедиться в том, что CLI может получить IP-конфигурацию от DHCP-сервера.
На ВМ CLI:
su -
P@ssw0rd
hostnamectl set-hostname cli.ditk.local
hostname -f

systemctl restart network
ip -c -br address
