Создание сетевой инфраструктуры в Proxmox

· 18 мин чтения

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