Приведу простой пример настройки OSPF в Quagga, для теста буду использовать Hyper-V c виртуальным коммутатором и виртуальными машинами под управлением Ubuntu Server 18.04.
Если сервер используется как маршрутизатор или для NAT, то разрешим трафику ходить между сетевыми интерфейсами, включим proxy_arp если необходимо и отключим rp_filter:
nano /etc/sysctl.conf
net.ipv4.conf.all.forwarding=1
net.ipv4.conf.all.proxy_arp=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
sysctl -p
ПЕРВЫЙ СЕРВЕР
Я создал по два сетевых интерфейса на обеих тестовых серверах, первый внешний получает IP адрес по DHCP с интернетом, второй интерфейс внутренний и подключен к виртуальному локальному коммутатору. Назначим вручную IP адрес локальному сетевому интерфейсу:
ip a
cd /etc/netplan/
ls
nano 50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
eth1:
addresses:
- 192.168.55.1/24
version: 2
netplan try
Посмотрим текущие маршруты:
ip route
Установим Quagga на всех машинах, инструкцию по установке я оставил в конце статьи.
Пример конфигурации /etc/quagga/zebra.conf на первой машине:
hostname TEST1
password ixnfo.com
enable password ixnfo.com
log file /var/log/quagga/zebra.log
!
line vty
!
Пример /etc/quagga/ospfd.conf на первой машине:
log file /var/log/quagga/ospfd.log
router ospf
!идентификатор маршрутизатора, должен быть уникален для каждого маршрутизатора (получен по DHCP на внешнем интерфейсе)
ospf router-id 192.168.24.73
log-adjacency-changes
!Анонсировать маршруты поднятые автоматически
redistribute kernel
!Анонсировать маршруты до подключенных сетей
redistribute connected
!Анонсировать статические маршруты
redistribute static
!Сеть и номер зоны с соседними маршрутизаторами
network 192.168.24.0/24 area 1
!
!сеть которая будет анонсироваться, на примере 192.168.55.0/24
access-list 20 permit 192.168.55.0 0.0.0.255
access-list 20 deny any
!
line vty
!
ВТОРОЙ СЕРВЕР
network:
ethernets:
eth0:
dhcp4: true
eth1:
addresses:
- 192.168.55.2/24
version: 2
Пример /etc/quagga/zebra.conf на второй машине:
hostname TEST2
password ixnfo.com
enable password ixnfo.com
log file /var/log/quagga/zebra.log
!
line vty
!
Пример /etc/quagga/ospfd.conf на второй машине:
log file /var/log/quagga/ospfd.log
router ospf
ospf router-id 192.168.24.78
log-adjacency-changes
redistribute kernel
redistribute connected
redistribute static
network 192.168.24.0/24 area 1
!
access-list 20 permit 192.168.55.0 0.0.0.255
access-list 20 deny any
!
line vty
!
Укажем правильного владельца и группу на созданные файлы конфигурации, а также запустим zebra и ospfd:
sudo chown quagga:quagga /etc/quagga/*.conf
mkdir /var/log/quagga/
chown quagga:quagga /var/log/quagga/
sudo service zebra status
sudo service zebra restart
sudo service ospfd status
sudo service ospfd restart
Проверим:
tcpdump -nvi any proto ospf
У меня отобразилось:
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
07:31:26.898583 IP (tos 0xc0, ttl 1, id 4243, offset 0, flags [none], proto OSPF (89), length 68)
192.168.24.78 > 224.0.0.5: OSPFv2, Hello, length 48
Router-ID 192.168.24.78, Area 0.0.0.1, Authentication Type: none (0)
Options [External]
Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.0, Priority 1
Designated Router 192.168.24.73, Backup Designated Router 192.168.24.78
Neighbor List:
192.168.24.73
Для теста на втором сервере добавим маршрут и убедимся что маршрут автоматически добавился на первом сервере:
ip route add 192.168.5.3 dev eth1
ip route
route -n
Приведу примеры просмотра списка маршрутов, соседей и прочей информации:
telnet localhost 2601
show ip route
show ip route connected
show ip route static
show ip route kernel
show ip route ospf
show ip route summary
exit
vtysh
show ip ospf
show ip ospf neighbor
show ip ospf neighbor detail
show ip ospf interface
show ip ospf border-routers
show ip ospf database
show ip access-list
show ip route
show ip route ospf
exit
Смотрите также мои статьи:
Настройка Netplan
Настройка OSPF в BIRD
Установка Quagga в Ubuntu Server 18
Настройка маскарадинга (NAT) в Ubuntu
Настройка сети в Linux