Основа
Подготовка и адресный план
Где выполнять: проверку Linux-интерфейсов — на каждом Linux-узле; команды show — на каждом маршрутизаторе EcoRouter.
Перед изменением конфигурации определите фактические имена интерфейсов. Имена из примеров соответствуют конкретному стенду и могут отличаться.
ip -br link
ip -br a
# EcoRouter
show port brief
show ip interface briefwrite memory.
| Сегмент | Сеть | Устройство | Адрес |
|---|---|---|---|
| ISP–HQ | 172.16.4.0/28 | ISP | 172.16.4.1/28 |
| ISP–HQ | 172.16.4.0/28 | HQ-RTR | 172.16.4.14/28 |
| ISP–BR | 172.16.5.0/28 | ISP | 172.16.5.1/28 |
| ISP–BR | 172.16.5.0/28 | BR-RTR | 172.16.5.14/28 |
| VLAN100 | 192.168.100.0/26 | HQ-RTR | 192.168.100.1/26 |
| VLAN100 | 192.168.100.0/26 | HQ-SRV | 192.168.100.2/26 |
| VLAN200 | 192.168.100.64/28 | HQ-RTR | 192.168.100.65/28 |
| VLAN200 | 192.168.100.64/28 | HQ-CLI | DHCP, обычно 192.168.100.66/28 |
| VLAN999 | 192.168.100.80/29 | HQ-RTR | 192.168.100.81/29 |
| BR-NET | 192.168.200.0/27 | BR-RTR | 192.168.200.1/27 |
| BR-NET | 192.168.200.0/27 | BR-SRV | 192.168.200.2/27 |
| GRE | 10.10.10.0/30 | HQ-RTR / BR-RTR | 10.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.8IPv4 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 briefOpen 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-RTR | 10.10.10.1/30 | 172.16.4.14 | 172.16.5.14 |
| BR-RTR | 10.10.10.2/30 | 172.16.5.14 | 172.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-RTR | 10.10.10.0/30, 192.168.100.0/26, 192.168.100.64/28, 192.168.100.80/29 |
| BR-RTR | 10.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-RTR | VLAN100, VLAN200, VLAN999 | HQ-NAT | 172.16.4.14 |
| BR-RTR | BR-NET | BR-NAT | 172.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-SRV192.168.200.2. - BR-SRV достигает HQ-SRV через GRE и OSPF.
- HQ-CLI получает адрес, шлюз и DNS по DHCP.
- SSH на обоих серверах доступен только по порту
2024дляsshuser. - DNS разрешает имена маршрутизаторов, серверов, клиентов, Moodle и wiki.
- Внутренние узлы выходят в интернет через NAT.