Настройка сетевой инфраструктуры

Последовательность настройки адресации, магистральных соединений, VLAN, маршрутизации, сервисов имен и защищённого доступа.

Подготовка и адресный план

Где выполнять: проверку Linux-интерфейсов — на каждом Linux-узле; команды show — на каждом маршрутизаторе EcoRouter.

Перед изменением конфигурации определите фактические имена интерфейсов. Имена из примеров соответствуют конкретному стенду и могут отличаться.

ip -br link
ip -br a

# EcoRouter
show port brief
show ip interface brief
Порядок работы. После каждого крупного этапа проверяйте связность. На маршрутизаторах EcoRouter сохраняйте рабочую конфигурацию командой write memory.
СегментСетьУстройствоАдрес
ISP–HQ172.16.4.0/28ISP172.16.4.1/28
ISP–HQ172.16.4.0/28HQ-RTR172.16.4.14/28
ISP–BR172.16.5.0/28ISP172.16.5.1/28
ISP–BR172.16.5.0/28BR-RTR172.16.5.14/28
VLAN100192.168.100.0/26HQ-RTR192.168.100.1/26
VLAN100192.168.100.0/26HQ-SRV192.168.100.2/26
VLAN200192.168.100.64/28HQ-RTR192.168.100.65/28
VLAN200192.168.100.64/28HQ-CLIDHCP, обычно 192.168.100.66/28
VLAN999192.168.100.80/29HQ-RTR192.168.100.81/29
BR-NET192.168.200.0/27BR-RTR192.168.200.1/27
BR-NET192.168.200.0/27BR-SRV192.168.200.2/27
GRE10.10.10.0/30HQ-RTR / BR-RTR10.10.10.1 / 10.10.10.2

Статические адреса

Серверы в локальных сегментах

Где выполнять: отдельно на HQ-SRV и BR-SRV. Для каждого сервера подставьте его адрес и шлюз из таблицы выше.

На HQ-SRV и BR-SRV применяется одна схема. Подставьте фактическое имя интерфейса, адрес и шлюз из адресного плана.

mkdir -p /etc/net/ifaces/<интерфейс>

cat > /etc/net/ifaces/<интерфейс>/options <<'EOF'
TYPE=eth
BOOTPROTO=static
CONFIG_IPV4=yes
DISABLED=no
NM_CONTROLLED=no
SYSTEMD_CONTROLLED=no
EOF

cat > /etc/net/ifaces/<интерфейс>/ipv4address <<'EOF'
<адрес/префикс>
EOF

cat > /etc/net/ifaces/<интерфейс>/ipv4route <<'EOF'
default via <шлюз>
EOF

cat > /etc/net/ifaces/<интерфейс>/resolv.conf <<'EOF'
search au-team.irpo
nameserver 192.168.100.2
EOF

systemctl restart network
ip -br a
ip route

ISP и выход в интернет

Внешний интерфейс и два внутренних сегмента

Где выполнять: ISP.

Настройте ens19 через DHCP. Одинаковые параметры внутренних интерфейсов задаются одним циклом; в конце указаны только различающиеся адреса.

# /etc/net/ifaces/ens19/options
TYPE=eth
BOOTPROTO=dhcp
CONFIG_IPV4=yes
DISABLED=no
NM_CONTROLLED=no
SYSTEMD_CONTROLLED=no

while read -r nic address; do
  mkdir -p "/etc/net/ifaces/$nic"
  printf '%s\n' \
    'TYPE=eth' \
    'BOOTPROTO=static' \
    'CONFIG_IPV4=yes' \
    'DISABLED=no' \
    'NM_CONTROLLED=no' \
    'SYSTEMD_CONTROLLED=no' > "/etc/net/ifaces/$nic/options"
  printf '%s\n' "$address" > "/etc/net/ifaces/$nic/ipv4address"
done <<'EOF'
ens20 172.16.4.1/28
ens21 172.16.5.1/28
EOF

systemctl restart network
ip -br a
ip r
ping -c 3 8.8.8.8

IPv4 forwarding и NAT на ISP

Где выполнять: ISP.

# Добавьте в /etc/net/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

apt-get update
apt-get install -y iptables
iptables -t nat -A POSTROUTING -o ens19 -j MASQUERADE
iptables -t nat -L POSTROUTING -n -v
iptables-save > /etc/sysconfig/iptables
systemctl enable --now iptables
Важно. Записывайте правила через >, а не через >>, чтобы не дублировать сохранённую конфигурацию.

Подключение маршрутизаторов к ISP

Где выполнять: шаблон выполните отдельно на HQ-RTR и BR-RTR.

На каждом маршрутизаторе выполните один и тот же шаблон, подставив его адрес и шлюз ISP из адресного плана.

enable
configure terminal
interface ISP
ip address <адрес_маршрутизатора>
exit
port ge0
service-instance ISP
encapsulation untagged
connect ip interface ISP
exit
exit
ip route 0.0.0.0/0 <шлюз_ISP>
exit
write memory
show ip interface brief
show ip route
ping <шлюз_ISP>

Сегмент BR-NET

Где выполнять: BR-RTR.

# BR-RTR
configure terminal
interface BR-NET
ip address 192.168.200.1/27
exit
port ge1
service-instance BR-NET
encapsulation untagged
connect ip interface BR-NET
exit
exit
write memory
show ip interface brief
ping 192.168.200.2

Локальные учётные записи

Пароли. Значения в угловых скобках заменяйте уникальными секретами из защищённого хранилища. Не добавляйте пароли в команды, журналы или публичные документы.

Пользователь SSH на серверах

Где выполнять: отдельно на HQ-SRV и BR-SRV.

useradd -u 1010 -m -s /bin/bash sshuser
passwd sshuser

cat > /etc/sudoers.d/sshuser <<'EOF'
sshuser ALL=(ALL) NOPASSWD: ALL
EOF
chmod 440 /etc/sudoers.d/sshuser
visudo -cf /etc/sudoers.d/sshuser
id sshuser
sudo -l -U sshuser

Администратор на маршрутизаторах

Где выполнять: отдельно на HQ-RTR и BR-RTR.

enable
configure terminal
username net_admin
password <NET_ADMIN_PASSWORD>
role admin
exit
exit
write memory
show users localdb

VLAN и виртуальный коммутатор

VLAN-интерфейсы и trunk на HQ-RTR

Где выполнять: HQ-RTR.

Для каждого VLAN примените шаблон ниже. Номер VLAN и адрес шлюза возьмите из адресного плана.

enable
configure terminal
interface VLAN<номер>
ip address <адрес_шлюза>
exit

port ge1
service-instance VLAN<номер>
encapsulation dot1q <номер>
rewrite pop 1
connect ip interface VLAN<номер>
exit
exit
write memory
show ip interface brief

Open vSwitch на HQ-SW

Где выполнять: HQ-SW. Проверку связи после настройки — с HQ-SRV.

systemctl enable --now ovsdb-server
systemctl enable --now ovs-vswitchd

for nic in ens19 ens20 ens21; do
  ip link set dev "$nic" up
done
ovs-vsctl add-br SW
ovs-vsctl add-port SW ens19 trunks=100,200,999
ovs-vsctl add-port SW ens20 tag=100
ovs-vsctl add-port SW ens21 tag=200
ip link set dev SW up
ovs-vsctl show
ip -br link

# Проверка с HQ-SRV
ping -c 3 192.168.100.1

Опциональный IP управления в VLAN999

Где выполнять: HQ-SW.

ovs-vsctl add-port SW mgmt -- set interface mgmt type=internal
ovs-vsctl set port mgmt tag=999
ip link set dev mgmt up
ip addr add 192.168.100.82/29 dev mgmt
ping -c 3 192.168.100.81

Защищённый SSH-доступ

Где выполнять: настройку — отдельно на HQ-SRV и BR-SRV; подключение для проверки — с HQ-CLI.

На HQ-SRV и BR-SRV назначьте порт 2024, разрешите вход только пользователю sshuser и ограничьте число попыток авторизации.

cp /etc/openssh/sshd_config /etc/openssh/sshd_config.bak

# Добавьте или измените параметры в /etc/openssh/sshd_config
Port 2024
AllowUsers sshuser
MaxAuthTries 2
PasswordAuthentication yes
Banner /etc/openssh/banner

echo 'Authorized access only' > /etc/openssh/banner
sshd -t
systemctl restart sshd
systemctl status sshd
ss -ltnp | grep 2024

ssh -p 2024 sshuser@<адрес_сервера>

GRE-туннель

Где выполнять: конфигурацию HQ — на HQ-RTR, конфигурацию BR — на BR-RTR.

Настройте L3-туннель между HQ-RTR и BR-RTR. Шаблон одинаков для обоих концов: подставьте локальный адрес туннеля, локальный адрес ISP и адрес соседа из таблицы.

МаршрутизаторАдрес туннеляЛокальный адрес ISPАдрес ISP соседа
HQ-RTR10.10.10.1/30172.16.4.14172.16.5.14
BR-RTR10.10.10.2/30172.16.5.14172.16.4.14
enable
configure terminal
interface tunnel.1
ip address <адрес_туннеля>
ip tunnel <локальный_адрес_ISP> <адрес_ISP_соседа> mode gre
exit
exit
write memory

show interface tunnel.1
ping <адрес_туннеля_соседа>

Динамическая маршрутизация OSPF

Где выполнять: конфигурацию HQ — на HQ-RTR, конфигурацию BR — на BR-RTR. Проверку серверов — с HQ-SRV и BR-SRV.

Обмен маршрутами между офисами выполняется только через GRE-туннель. Все интерфейсы, кроме tunnel.1, остаются passive.

Добавьте сети своего маршрутизатора по таблице и примените общий шаблон.

МаршрутизаторСети OSPF
HQ-RTR10.10.10.0/30, 192.168.100.0/26, 192.168.100.64/28, 192.168.100.80/29
BR-RTR10.10.10.0/30, 192.168.200.0/27
configure terminal
router ospf 1
network <каждая_сеть_из_таблицы> area 0
passive-interface default
no passive-interface tunnel.1
area 0 authentication
exit
interface tunnel.1
ip ospf authentication-key <OSPF_PASSWORD>
exit
exit
write memory

show ip ospf neighbor
show ip route ospf
# С HQ-SRV
ping -c 3 192.168.200.2

Динамический NAT

Где выполнять: правила HQ — на HQ-RTR, правила BR — на BR-RTR. Проверку доступа — с внутреннего узла соответствующего сегмента.

Пометьте внутренние интерфейсы как inside, а ISP — как outside. Различающиеся значения приведены в таблице.

МаршрутизаторВнутренние интерфейсыПулВнешний адрес
HQ-RTRVLAN100, VLAN200, VLAN999HQ-NAT172.16.4.14
BR-RTRBR-NETBR-NAT172.16.5.14
configure terminal
# Повторите для каждого внутреннего интерфейса из таблицы
interface <внутренний_интерфейс>
ip nat inside
exit

interface ISP
ip nat outside
exit
ip nat pool <имя_пула> <внешний_адрес>-<внешний_адрес>
ip nat source dynamic inside-to-outside pool <имя_пула> overload interface ISP
exit
write memory

ping -c 3 8.8.8.8
show ip nat translations

DHCP для HQ-CLI

Где выполнять: настройку пула — HQ-RTR; получение адреса и проверку — HQ-CLI.

Диапазон VLAN200: 192.168.100.64/28. Адрес .65 принадлежит HQ-RTR; клиентам доступны адреса .66–.78.

# HQ-RTR
configure terminal
ip pool HQ-CLI
range 192.168.100.66-192.168.100.78
exit
dhcp-server 1
pool HQ-CLI 1
mask 255.255.255.240
gateway 192.168.100.65
dns 192.168.100.2
domain-name au-team.irpo
exit
exit
interface VLAN200
dhcp-server 1
exit
exit
write memory
show dhcp-server 1 detailed
show dhcp-server clients VLAN200
# /etc/net/ifaces/ens19/options на HQ-CLI
TYPE=eth
BOOTPROTO=dhcp
CONFIG_IPV4=yes
DISABLED=no
NM_CONTROLLED=no
SYSTEMD_CONTROLLED=no

systemctl restart network
ip -br a
ip route
getent hosts wiki.au-team.irpo
ping -c 3 8.8.8.8

DNS на HQ-SRV

Где выполнять: HQ-SRV. Проверку разрешения имён можно выполнить на HQ-CLI или другом клиенте сети.

Настройте прямую зону au-team.irpo, обратные зоны для HQ и BR, а также алиасы moodle и wiki.

apt-get update
apt-get install -y bind
mkdir -p /var/lib/bind/etc/zone

# /var/lib/bind/etc/options.conf
options {
    directory "/etc/bind/zone";
    listen-on { any; };
    allow-query { any; };
    recursion yes;
    forwarders { 8.8.8.8; 77.88.8.8; };
};

# /var/lib/bind/etc/local.conf
include "/etc/bind/rfc1912.conf";

zone "au-team.irpo" {
    type master;
    file "au-team.irpo.zone";
};
zone "100.168.192.in-addr.arpa" {
    type master;
    file "100.168.192.rev";
};
zone "200.168.192.in-addr.arpa" {
    type master;
    file "200.168.192.rev";
};

Прямая зона

; /var/lib/bind/etc/zone/au-team.irpo.zone
$TTL 86400
@ IN SOA hq-srv.au-team.irpo. root.au-team.irpo. (
    2026092501 3600 900 604800 86400
)
@       IN NS    hq-srv.au-team.irpo.
hq-rtr  IN A     192.168.100.1
br-rtr  IN A     192.168.200.1
hq-srv  IN A     192.168.100.2
hq-cli  IN A     192.168.100.66
br-srv  IN A     192.168.200.2
moodle  IN CNAME hq-rtr
wiki    IN CNAME hq-rtr

Обратные зоны

; /var/lib/bind/etc/zone/100.168.192.rev
$TTL 86400
@ IN SOA hq-srv.au-team.irpo. root.au-team.irpo. (
    2026092501 3600 900 604800 86400
)
@   IN NS  hq-srv.au-team.irpo.
1   IN PTR hq-rtr.au-team.irpo.
2   IN PTR hq-srv.au-team.irpo.
66  IN PTR hq-cli.au-team.irpo.

; /var/lib/bind/etc/zone/200.168.192.rev
$TTL 86400
@ IN SOA hq-srv.au-team.irpo. root.au-team.irpo. (
    2026092501 3600 900 604800 86400
)
@   IN NS  hq-srv.au-team.irpo.
1   IN PTR br-rtr.au-team.irpo.
2   IN PTR br-srv.au-team.irpo.
named-checkconf
named-checkzone au-team.irpo /var/lib/bind/etc/zone/au-team.irpo.zone
named-checkzone 100.168.192.in-addr.arpa /var/lib/bind/etc/zone/100.168.192.rev
named-checkzone 200.168.192.in-addr.arpa /var/lib/bind/etc/zone/200.168.192.rev
systemctl enable --now bind
systemctl status bind

host hq-rtr.au-team.irpo 192.168.100.2
host 192.168.100.1 192.168.100.2
host wiki.au-team.irpo 192.168.100.2

Часовой пояс

Где выполнять: команды Linux — на всех Linux-узлах; команды NTP — отдельно на HQ-RTR и BR-RTR.

# Linux-узлы
timedatectl set-timezone Europe/Moscow
timedatectl

# HQ-RTR и BR-RTR
enable
configure terminal
ntp timezone utc+3
exit
write memory
show ntp timezone

Контрольная проверка

  • HQ-SRV видит шлюз 192.168.100.1 и BR-SRV 192.168.200.2.
  • BR-SRV достигает HQ-SRV через GRE и OSPF.
  • HQ-CLI получает адрес, шлюз и DNS по DHCP.
  • SSH на обоих серверах доступен только по порту 2024 для sshuser.
  • DNS разрешает имена маршрутизаторов, серверов, клиентов, Moodle и wiki.
  • Внутренние узлы выходят в интернет через NAT.
↑ Наверх