Product SiteDocumentation Site

12.2. Настройка базовой топологии

Для изучения VPN и туннелирования разберём топологию с тремя абонентами.
Топология для выполнения лабораторной (часть WG)
Для работы создайте 3 клона согласно топологии сети. Для создания соединений между машинами необходимо в VirtualBox настроить сетевые интерфейсы (описание настройки подключения находится в соответствующем разделе второй лабораторной):

12.2.1. Настройка абонентов

В данной лабораторной вместо привычного метода настройки интерфейсов и адресов используется комплекс инициализирующих программ SystemD, а именно его подсистема systemd-networkd, отвечающая за автонастройку всех сетевых служб в Linux. Преимущество такого способа заключается в сохранении всех настроек после перезагрузки устройства, поскольку записи о настройке хранятся не в оперативной памяти, а в файлах специального вида.
  1. Опишите (или скопируйте) конфигурационный файл для настройки интерфейса eth1 абонента client в соответствующем файле виртуальной машины.
    @client:/etc/systemd/network/50-outnet.network
    [Match]
    Name=eth1
    
    [Network]
    Address=10.0.12.1/24
    
    [Route]
    Gateway=10.0.12.2
    Destination=10.0.0.0/8
    

    Примечание

    Согласно настройкам .network-файла будет поднят интерфейс eth1, ему будет присвоен адрес 10.0.12.1/24, а в таблицу маршрутизации будет добавлена запись, согласно которой все пакеты, отправляемые на адреса сети 10.0.0.0/8, будут первоначально направляться на адрес 10.0.12.2.
    С помощью systemd-networkd можно также создавать и новые интерфейсы, однако это потребует создания отдельного файла, поэтому добавление LoopBack‑интерфейса будет выполнено вручную.
  2. С помощью команд управления интерфейсами и настройки IP‑адресов настройте loopback‑интерфейс на абоненте client согласно топологии.
    [root@client ~]# ip link add dev lo0 type veth
    [root@client ~]# ip link set lo0 up
    [root@client ~]# ip addr add dev lo0 10.0.1.1/24
    
  3. Опишите (или скопируйте) конфигурационный файл для настройки интерфейса eth1 абонента company в соответствующем файле виртуальной машины
    @company:/etc/systemd/network/50-outnet.network
    [Match]
    Name=eth1
    
    [Network]
    Address=10.0.23.3/24
    
    [Route]
    Gateway=10.0.23.2
    Destination=10.0.0.0/8
    
  4. С помощью команд управления интерфейсами и настройки IP‑адресов настройте loopback‑интерфейс на абоненте company согласно топологии
    [root@company ~]# ip link add dev lo0 type veth
    [root@company ~]# ip link set lo0 up
    [root@company ~]# ip addr add dev lo0 10.0.3.3/24
    [root@company ~]#
    
    Таким же образом может быть настроен абонент @network. Но для закрепления ручной настройки задайте параметры вручную.
  5. С помощью команд управления интерфейсами и настройки IP‑адресов настройте интерфейсы на абоненте network согласно топологии
    [root@network ~]# ip link set eth1 up
    [root@network ~]# ip link set eth2 up
    [root@network ~]# ip addr add dev eth1 10.0.12.2/24
    [root@network ~]# ip addr add dev eth2 10.0.23.2/24
    [root@network ~]# sysctl net.ipv4.conf.all.forwarding=1
    [root@network ~]#
    [root@network ~]# ip route add 10.0.1.1 via 10.0.12.1
    [root@network ~]# ip route add 10.0.3.3 via 10.0.23.3
    [root@network ~]#
    
    Для запуска systemd-networkd необходимо активировать сервис с помощью служебной команды systemctl enable --now (enable включает возможность активации сервиса при включении устройства. Флаг --now включает сервис непосредственно сейчас).
  6. С помощью команды systemctl enable --now systemd-networkd запустите сервис автонастройки на client и company
    [root@client ~]# systemctl enable --now systemd-networkd
    Created symlink '/etc/systemd/system/dbus-org.freedesktop.network1.service' -> '/usr/lib/systemd/system/systemd-networkd.service'.
    Created symlink '/etc/systemd/system/multi-user.target.wants/systemd-networkd.service' -> '/usr/lib/systemd/system/systemd-networkd.service'.
    Created symlink '/etc/systemd/system/sockets.target.wants/systemd-networkd.socket' -> '/usr/lib/systemd/system/systemd-networkd.socket'.
    Created symlink '/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service' -> '/usr/lib/systemd/system/systemd-network-generator.service'.
    Created symlink '/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service' -> '/usr/lib/systemd/system/systemd-networkd-wait-online.service'.
    [root@client ~]#
    
    [root@company ~]# systemctl enable --now systemd-networkd
    Created symlink '/etc/systemd/system/dbus-org.freedesktop.network1.service' -> '/usr/lib/systemd/system/systemd-networkd.service'.
    Created symlink '/etc/systemd/system/multi-user.target.wants/systemd-networkd.service' -> '/usr/lib/systemd/system/systemd-networkd.service'.
    Created symlink '/etc/systemd/system/sockets.target.wants/systemd-networkd.socket' -> '/usr/lib/systemd/system/systemd-networkd.socket'.
    Created symlink '/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service' -> '/usr/lib/systemd/system/systemd-network-generator.service'.
    Created symlink '/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service' -> '/usr/lib/systemd/system/systemd-networkd-wait-online.service'.
    [root@company ~]#
    
  7. С помощью команд мониторинга сети проверьте доступность client и company друг для друга
    [root@company ~]# ping -c5 10.0.12.1
    PING 10.0.12.1 (10.0.12.1) 56(84) bytes of data.
    64 bytes from 10.0.12.1: icmp_seq=1 ttl=63 time=1.80 ms
    64 bytes from 10.0.12.1: icmp_seq=2 ttl=63 time=0.684 ms
    64 bytes from 10.0.12.1: icmp_seq=3 ttl=63 time=1.03 ms
    64 bytes from 10.0.12.1: icmp_seq=4 ttl=63 time=0.990 ms
    64 bytes from 10.0.12.1: icmp_seq=5 ttl=63 time=1.06 ms
    
    --- 10.0.12.1 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4038ms
    rtt min/avg/max/mdev = 0.684/1.113/1.800/0.369 ms
    [root@company ~]#
    
    [root@client ~]# ping -c3 -I 10.0.1.1 10.0.3.3
    PING 10.0.3.3 (10.0.3.3) from 10.0.1.1 : 56(84) bytes of data.
    64 bytes from 10.0.3.3: icmp_seq=1 ttl=63 time=0.842 ms
    64 bytes from 10.0.3.3: icmp_seq=2 ttl=63 time=0.861 ms
    64 bytes from 10.0.3.3: icmp_seq=3 ttl=63 time=0.814 ms
    
    --- 10.0.3.3 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2048ms
    rtt min/avg/max/mdev = 0.814/0.839/0.861/0.019 ms
    [root@client ~]#