Репозиторий:
https://github.com/reksaev/de26-scripts
Raw-загрузчик:
wget -O /root/get.sh https://raw.githubusercontent.com/reksaev/de26-scripts/main/get.sh
sed -i 's/\r$//' /root/get.sh
chmod +x /root/get.shСкрипты лежат на GitHub.
Linux-машина скачивает нужный скрипт через wget, ты проверяешь его через mcedit, потом запускаешь через bash.
Общая схема:
GitHub → wget → файл на виртуалке → mcedit → bash
Пример:
bash /root/get.sh m1 hq-srv
mcedit /root/m1_hq-srv.sh
bash /root/m1_hq-srv.shЭто значит:
скачать скрипт модуля 1 для HQ-SRV
открыть и проверить
запустить
Raw-файл на GitHub должен быть многострочным.
Проверить:
head -n 20 /root/get.shНормально:
#!/bin/bash
set -e
BASE1="https://raw.githubusercontent.com/reksaev/de26-scripts/main"Плохо:
#!/bin/bash set -e BASE1="..."Если файл слепился в одну длинную строку — его надо перезалить на GitHub с нормальными переносами строк.
VLAN HQ-SRV: 113
VLAN HQ-CLI: 213
VLAN MGMT: 813
ISP-HQ: 172.16.50.0/28
ISP-BR: 172.16.60.0/28
HQ-SRV: 10.10.113.2/27
HQ-CLI: 10.10.213.2/28
BR-SRV: 10.20.20.2/28
HQ-RTR VLAN113: 10.10.113.1
HQ-RTR VLAN213: 10.10.213.1
HQ-RTR VLAN813: 10.10.13.1
BR-RTR BR-Net: 10.20.20.1
GRE HQ-RTR: 10.10.10.1/30
GRE BR-RTR: 10.10.10.2/30
SSH port: 2013
sshuser UID: 2013
Password: P@ssw0rd
Domain: au-team.irpo
Чтобы скачать скрипт через wget, Linux-машине уже нужен IP, шлюз и DNS.
На HQ-SRV и BR-SRV IP может отсутствовать после преднастроя, поэтому сначала делается быстрый ручной старт сети.
Служебный интерфейс вида 169.254.2.101/30 не трогать.
Обычно:
ens3 — рабочая экзаменационная сеть
ens4 — служебная сеть PNETLab
Рекомендуемый порядок:
1. ISP — запустить скрипт, если нужно закрепить NAT/NTP.
2. HQ-RTR — команды вручную из m1/hq-rtr.txt.
3. BR-RTR — команды вручную из m1/br-rtr.txt.
4. HQ-SW — скрипт m1/hq-sw.sh, если OVS/VLAN не преднастроены.
5. HQ-SRV — быстрый старт сети руками, потом скрипт.
6. BR-SRV — быстрый старт сети руками, потом скрипт.
7. HQ-CLI — через GUI, DHCP.
8. Финальные проверки.
Делается вручную на HQ-SRV от root.
mkdir -p /etc/net/ifaces/ens3
printf "TYPE=eth\nCONFIG_IPV4=yes\nBOOTPROTO=static\nDISABLED=no\nNM_CONTROLLED=no\nSYSTEMD_CONTROLLED=no\n" > /etc/net/ifaces/ens3/options
echo "10.10.113.2/27" > /etc/net/ifaces/ens3/ipv4address
echo "default via 10.10.113.1" > /etc/net/ifaces/ens3/ipv4route
echo "nameserver 77.88.8.8" > /etc/net/ifaces/ens3/resolv.conf
systemctl restart networkПроверка:
ip a
ip route
cat /etc/resolv.conf
ping -c 3 10.10.113.1
ping -c 3 77.88.8.8Если пинги пошли, скачать загрузчик:
wget -O /root/get.sh https://raw.githubusercontent.com/reksaev/de26-scripts/main/get.sh
sed -i 's/\r$//' /root/get.sh
chmod +x /root/get.shСкачать и запустить скрипт М1 для HQ-SRV:
bash /root/get.sh m1 hq-srv
mcedit /root/m1_hq-srv.sh
bash /root/m1_hq-srv.shДелается вручную на BR-SRV от root.
mkdir -p /etc/net/ifaces/ens3
printf "TYPE=eth\nCONFIG_IPV4=yes\nBOOTPROTO=static\nDISABLED=no\nNM_CONTROLLED=no\nSYSTEMD_CONTROLLED=no\n" > /etc/net/ifaces/ens3/options
echo "10.20.20.2/28" > /etc/net/ifaces/ens3/ipv4address
echo "default via 10.20.20.1" > /etc/net/ifaces/ens3/ipv4route
echo "nameserver 77.88.8.8" > /etc/net/ifaces/ens3/resolv.conf
systemctl restart networkПроверка:
ip a
ip route
cat /etc/resolv.conf
ping -c 3 10.20.20.1
ping -c 3 77.88.8.8Если пинги пошли, скачать загрузчик:
wget -O /root/get.sh https://raw.githubusercontent.com/reksaev/de26-scripts/main/get.sh
sed -i 's/\r$//' /root/get.sh
chmod +x /root/get.shСкачать и запустить скрипт М1 для BR-SRV:
bash /root/get.sh m1 br-srv
mcedit /root/m1_br-srv.sh
bash /root/m1_br-srv.shwget -O /root/get.sh https://raw.githubusercontent.com/reksaev/de26-scripts/main/get.sh
sed -i 's/\r$//' /root/get.sh
chmod +x /root/get.sh
bash /root/get.sh m1 isp
mcedit /root/m1_isp.sh
bash /root/m1_isp.shbash /root/get.sh m1 hq-sw
mcedit /root/m1_hq-sw.sh
bash /root/m1_hq-sw.shbash /root/get.sh m1 hq-srv
mcedit /root/m1_hq-srv.sh
bash /root/m1_hq-srv.shbash /root/get.sh m1 br-srv
mcedit /root/m1_br-srv.sh
bash /root/m1_br-srv.shНа EcoRouter .sh не запускаются.
Для роутеров использовать текстовые файлы:
m1/hq-rtr.txt
m1/br-rtr.txt
m2/hq-rtr.txt
m2/br-rtr.txt
m3/hq-rtr.txt
m3/br-rtr.txt
Команды из этих файлов вводить руками в CLI EcoRouter.
Для HQ-CLI использовать инструкции:
m1/hq-cli.md
m2/hq-cli.md
m3/hq-cli.md
Обычно HQ-CLI настраивается через GUI:
Центр управления системой → Ethernet-интерфейсы
В модуле 1:
hostname: hq-cli.au-team.irpo
IPv4: DHCP
сеть: 10.10.213.0/28
шлюз: 10.10.213.1
DNS: 10.10.113.2
Проверка:
hostname -f
ip a
ip route
cat /etc/resolv.conf
ping -c 3 10.10.213.1
ping -c 3 10.10.113.2
ping -c 3 10.20.20.2hostname
ip a
ip route
sysctl net.ipv4.ip_forward
iptables -t nat -L -n -v
ping -c 3 77.88.8.8show hostname
show ip interface brief
show ip route
ping 172.16.50.1
ping 172.16.60.2
ping 10.10.10.2
show ip ospf neighbor
show ip route
show ip nat translations
show ntp timezone
show hostname
show ip interface brief
show ip route
ping 172.16.60.1
ping 172.16.50.2
ping 10.10.10.1
show ip ospf neighbor
show ip route
show ip nat translations
show ntp timezone
hostname -f
ip a
ip route
cat /etc/resolv.conf
systemctl status bind.service
ss -tulpn | grep 2013
ping -c 3 10.10.113.1
ping -c 3 10.20.20.2
ping -c 3 77.88.8.8DNS:
host hq-srv.au-team.irpo
host hq-rtr.au-team.irpo
host hq-cli.au-team.irpo
host br-srv.au-team.irpo
host web.au-team.irpo
host docker.au-team.irpohostname -f
ip a
ip route
cat /etc/resolv.conf
ss -tulpn | grep 2013
ping -c 3 10.20.20.1
ping -c 3 10.10.113.2
ping -c 3 77.88.8.8Сначала проверять не OSPF, а внешнюю связность.
На HQ-RTR:
ping 172.16.50.1
ping 172.16.60.1
ping 172.16.60.2
На BR-RTR:
ping 172.16.60.1
ping 172.16.50.1
ping 172.16.50.2
Если внешние адреса не пингуются — проблема в ISP/WAN/маршрутах.
Если внешние адреса пингуются, но GRE нет:
show interface tunnel.0
show ip interface brief
Потом проверить:
HQ-RTR → ping 10.10.10.2
BR-RTR → ping 10.10.10.1
Проверить на HQ-RTR:
show ip interface brief
show running-config | include dhcp
show running-config | include pool
Должно быть:
vl213 = 10.10.213.1/28
pool VLAN213 = 10.10.213.2-10.10.213.14
interface vl213
dhcp-server 1
Проверить на HQ-SW:
ovs-vsctl showДолжно быть:
ens3 trunk 113,213,813
ens4 access VLAN 113
ens5 access VLAN 213
Рекомендуемый порядок:
1. HQ-SRV — NFS, RAID, Chrony, Web.
2. BR-SRV — Samba, Ansible, Docker.
3. ISP — Basic Auth / nginx.
4. HQ-CLI — домен, NFS, браузер.
5. Роутеры — команды из txt, если требуется проброс портов/NTP.
Перед запуском обязательно проверить диски:
lsblkПотом скачать и открыть скрипт:
bash /root/get.sh m2 hq-srv
mcedit /root/m2_hq-srv.shВ скрипте проверить строку:
DISKS="/dev/vdb /dev/vdc /dev/vdd"Если диски называются иначе, заменить.
Например:
DISKS="/dev/sdb /dev/sdc /dev/sdd"Запуск:
bash /root/m2_hq-srv.shВажно:
m2_hq-srv.sh не запускать повторно без проверки RAID.
Если RAID уже создан и там есть данные, не перезапускать команды mdadm/mkfs без понимания.
bash /root/get.sh m2 br-srv
mcedit /root/m2_br-srv.sh
bash /root/m2_br-srv.shbash /root/get.sh m2 isp
mcedit /root/m2_isp.sh
bash /root/m2_isp.shПеред запуском web/docker-задач проверить:
ls -l /home/user/Additional.isoЕсли ISO лежит в другом месте, поменять путь в скрипте.
samba-tool group listmembers hqОжидается:
hquser1
hquser2
hquser3
hquser4
hquser5
exportfs -v
systemctl status nfs-server
ls -l /raid/nfsНа HQ-SRV:
chronyc sourcesНа BR-SRV:
chronyc sourcesansible -i /etc/ansible/inventory all -m pingdocker ps
curl http://10.20.20.2:8083systemctl status mariadb
systemctl status httpd2
curl http://10.10.113.2Рекомендуемый порядок:
1. HQ-SRV — CA, сертификаты, rsyslog, fail2ban, cups, monitoring.
2. BR-SRV — rsyslog client, ansible gathering.
3. ISP — HTTPS reverse proxy.
4. HQ-CLI — импорт CA, принтер, мониторинг, backup.
5. Роутеры — syslog/ACL команды из txt.
bash /root/get.sh m3 hq-srv
mcedit /root/m3_hq-srv.sh
bash /root/m3_hq-srv.shПосле запуска проверить сертификаты:
ls -l /root/export-certsТам должны быть:
ca.crt
web.crt
web.key
docker.crt
docker.key
bash /root/get.sh m3 br-srv
mcedit /root/m3_br-srv.sh
bash /root/m3_br-srv.shbash /root/get.sh m3 isp
mcedit /root/m3_isp.sh
bash /root/m3_isp.shПравильный порядок:
1. Сначала запустить m3/hq-srv.sh.
2. На HQ-SRV проверить /root/export-certs/.
3. Перенести web.crt, web.key, docker.crt, docker.key на ISP в /etc/nginx/ssl/.
4. Потом запускать m3/isp.sh.
Если сертификаты не перенести, ISP создаст временные self-signed сертификаты. Сайт может открыться, но в браузере может быть предупреждение.
HQ-CLI делается руками по инструкции:
m3/hq-cli.md
Основные задачи:
1. Импортировать CA.
2. Проверить HTTPS без предупреждений.
3. Подключить NFS.
4. Добавить PDF-принтер.
5. Открыть мониторинг.
6. Подготовить backup directory.
Импорт CA:
cp ca.crt /etc/pki/ca-trust/source/anchors/de26-ca.crt
update-ca-trustПроверка HTTPS:
curl -I https://web.au-team.irpo
curl -I https://docker.au-team.irposystemctl status rsyslog
systemctl status fail2ban
systemctl status cups
systemctl status netdata
ls -l /root/export-certssystemctl status rsyslog
ls -l /etc/ansible/PC-INFOnginx -t
systemctl status nginxcurl -I https://web.au-team.irpo
curl -I https://docker.au-team.irpoПроверить интернет и DNS:
ping -c 3 77.88.8.8
ping -c 3 raw.githubusercontent.comЕсли IP пингуется, а домен нет — проблема DNS.
Временно поставить DNS:
echo "nameserver 77.88.8.8" > /etc/resolv.confchmod +x /root/get.sh
chmod +x /root/*.shИли запускать через bash:
bash /root/get.sh m1 hq-srv
bash /root/m1_hq-srv.shПроверить, что он многострочный:
head -n 20 /root/m1_hq-srv.shПроверить bash-синтаксис:
bash -n /root/m1_hq-srv.shЕсли ошибок нет — запускать.
Проверить интерфейсы:
ip aВ скрипте проверить переменную:
IFACE="ens3"Если рабочий интерфейс другой — поменять.
На HQ-SRV:
systemctl status bind.service
named-checkconf
named-checkconf -z
cat /etc/resolv.confПроверка:
host hq-srv.au-team.irpo 10.10.113.2
host web.au-team.irpo 10.10.113.2
host docker.au-team.irpo 10.10.113.2Скачать загрузчик:
wget -O /root/get.sh https://raw.githubusercontent.com/reksaev/de26-scripts/main/get.sh
sed -i 's/\r$//' /root/get.sh
chmod +x /root/get.shСкачать и запустить нужный скрипт:
bash /root/get.sh m1 hq-srv
mcedit /root/m1_hq-srv.sh
bash /root/m1_hq-srv.shМенять только:
m1 hq-srv
на нужный модуль и машину:
m1 isp
m1 hq-sw
m1 hq-srv
m1 br-srv
m2 isp
m2 hq-srv
m2 br-srv
m3 isp
m3 hq-srv
m3 br-srv