Динамическая маршрутизация настраивается при помощи пакета Quagga из консоли ОС (linux bash).
1. Примените патч (подходит для всех классов СКЗИ), подготавливающий Quagga к работе. Патч можно скачать по ссылке https://cloud.s-terra.com/index.php/s/g5rq36mMq6miZs6.
1.1. Перенесите архив quagga_preparation.tar в /root и распакуйте его:
root@GW1:~# tar -xvf quagga_preparation.tar
1.2. Перейдите в директорию quagga_preparation:
root@GW1:~# cd quagga_preparation/
1.3. Выполните сначала скрипт preparation.bash, а потом install.bash:
root@GW1:~/quagga_preparation# ./preparation.bash
INFO: Backup "/etc/quagga/daemons" successfully completed!
INFO: log files successfully created!
INFO: "/etc/quagga/zebra.conf" successfully created!
INFO: "/etc/quagga/ospfd.conf" successfully created!
INFO: "/etc/quagga/bgpd.conf" successfully created!
INFO: "/etc/quagga/ripd.conf" successfully created!
INFO: "/etc/quagga/zebra.conf" successfully configured!
INFO: "/etc/quagga/ospfd.conf" successfully configured!
INFO: "/etc/quagga/bgpd.conf" successfully configured!
INFO: "/etc/quagga/ripd.conf" successfully configured!
Starting periodic command scheduler: cron.
update-rc.d: using dependency based boot sequencing
Stopping Quagga monitor daemon: (watchquagga).
Stopping Quagga daemons (prio:0): (bgpd) (ripd) (ospfd) (zebra) (ripngd) (ospf6d) (isisd).
Removing all routes made by zebra.
Loading capability module if not yet done.
Starting Quagga daemons (prio:10): zebra bgpd ripd ospfd.
Starting Quagga monitor daemon: watchquagga.
root@GW1:~/quagga_preparation# ./install.bash
Creating backup for old "/etc/init.d/quagga" file... "/etc/init.d/quagga.old".
Creating backup for old "/etc/quagga/debian.conf" file... "/etc/quagga/debian.conf.old".
patching file /etc/init.d/quagga
patching file /etc/quagga/debian.conf
INFO: Patch is successfully applied!
2. Отредактируйте файл /etc/quagga/ripd.conf следующим образом:
root@GW1:~# vi /etc/quagga/ripd.conf
hostname GW1
password csp
log file /var/log/quagga/rip.log debugging
!
router rip
version 2
redistribute kernel
network eth0
distribute-list acl-in in
distribute-list acl-out out
!
access-list acl-in deny any
access-list acl-out permit 192.168.2.0/24
access-list acl-out deny any
line vty
· Параметр network определяет в какой сегмент сети будут отправляться RIP-пакеты.
· Параметры distribute-list acl-in in и distribute-list acl-out out определяют фильтрацию на входящие и исходящие RIP-оповещения.
Важно! Шлюз не должен получать маршруты от других устройств, единственной задачей RIP является передача маршрутов об удаленной подсети маршрутизатору Router1.
Также для настройки Quagga можно воспользоваться командой vtysh:
rootGW1:~# vtysh
Hello, this is Quagga (version 1.0.20160315).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
GW1# terminal length 0
GW1# show ip rip
3. Перезапустите Quagga:
root@GW1:~# service quagga restart
Stopping Quagga monitor daemon: watchquagga.
Stopping Quagga daemons (prio:0): bgpd ripd ospfd zebra (ripngd) (ospf6d) (isisd).
Removing all routes made by zebra.
Loading capability module if not yet done.
Starting Quagga daemons (prio:10): zebra bgpd ripd ospfd.
Starting Quagga monitor daemon: watchquagga.
4. Чтобы при перезагрузке демон стартовал автоматически, выполните команду:
root@GW1:~# update-rc.d quagga enable
update-rc.d: using dependency based boot sequencing
В приложении представлен текст ripd.conf для шлюза GW1.