QUAGGA — Протоколы динамической маршрутизации.

Установка, настройка, эксплуатация.

Модератор: ROOT

QUAGGA — Протоколы динамической маршрутизации.

Сообщение ROOT » 14 окт 2017, 18:23

Оглавление


Темы
 QUAGGA — Протоколы динамической маршрутизации 
 Настройка 
Дополнительные материалы
Wake on Lan: Удалённое включение компьютера
Синхронизация времени
OpenVPN: Открытая виртуальная частная сеть
BIND — DNS-сервер
ISCSI — Транспортный протокол для SCSI
Dnscrypt — Проксирование dns-трафика


 QUAGGA — Протоколы динамической маршрутизации 
Quagga — пакет свободного программного обеспечения, поддерживающий протоколы динамической маршрутизации IP. Компьютер с установленным и сконфигурированным пакетом Quagga становится способен использовать любые из нижеследующих протоколов динамической маршрутизации:

Routing Information Protocol (RIP): v1, v2, v3;
Open Shortest Path First (OSPF): v2, v3;
Border Gateway Protocol (BGP): v4;
Intermediate System to Intermediate System (IS-IS);
Protocol Independent Multicast (PIM, только PIM-SSM).

Каждый протокол маршрутизации обслуживается отдельным демоном, с последующим формированием таблиц маршрутизации. Одновременно работать могут несколько разных демонов в сообществе с управляющим демоном zebra.

  1. ripd — демон обрабатывает протокол RIP для IPv4
  2. ripngd — демон обрабатывает протокол RIP для IPv6
  3. ospfd — демон, который поддерживает OSPF v2 для IPv4
  4. ospf6d — демон, который поддерживает OSPF v3 для IPv6
  5. isisd — демон, который поддерживает ISIS
  6. bgpd — поддерживает протокол BGP-4.
  7. zebra — демон служащий для формирования таблицы маршрутизации и перераспределения маршрутов между различными протоколами.

1) Устанавливаем QUAGGA
Код: выделить все
dnf install quagga


2) Правим и включаем сервис zebra в автоматическую загрузку
Код: выделить все
cp /usr/lib/systemd/system/{zebra,ospfd,bgpd}.service /etc/systemd/system/

меняем значение директивы After, добавляем Requires и комментируем или удаляем строку с директивой Wants и Before:
e /etc/systemd/system/zebra.service
Код: выделить все
#Wants=network.target
#Before=network.target
Requires=NetworkManager-wait-online.service
After=network.target NetworkManager-wait-online.service

А а ospfd.service и bgpd.service приводим к виду директиву After и комментируем или удаляем строку с директивой Before
Код: выделить все
After=zebra.service
#Before=network.target

и активируем автоматический запуск сервиса zebra, а так же нужных протоколов динамической маршрутизации
Код: выделить все
systemctl enable zebra.service
systemctl enable bgpd.service
systemctl enable ospfd.service

3) Копируем заготовленный конфигурационный файл для ospfd в /etc/quagga/, который поставляется вместе с пакетом QUAGGA
Код: выделить все
cp /usr/share/doc/quagga-*/ospfd.conf.sample /etc/quagga/ospfd.conf

Так же по пути /usr/share/doc/quagga-*/ доступны следующие заготовки конфигурационных файлов
Код: выделить все
babeld.conf.sample ospf6d.conf.sample  zebra.conf.sample
bgpd.conf.sample   ospfd.conf.sample   ripd.conf.sample


4) Устанавливаем права пользователю quagga на скопированные конфигурационные файлы
Код: выделить все
chown quagga:quagga /etc/quagga/bgpd.conf && chmod 640 /etc/quagga/bgpd.conf
chown quagga:quagga /etc/quagga/isisd.conf && chmod 640 /etc/quagga/isisd.conf
chown quagga:quagga /etc/quagga/ospf6d.conf && chmod 640 /etc/quagga/ospf6d.conf
chown quagga:quagga /etc/quagga/ospfd.conf && chmod 640 /etc/quagga/ospfd.conf
chown quagga:quagga /etc/quagga/pimd.conf && chmod 640 /etc/quagga/pimd.conf
chown quagga:quagga /etc/quagga/ripd.conf && chmod 640 /etc/quagga/ripd.conf
chown quagga:quagga /etc/quagga/ripngd.conf && chmod 640 /etc/quagga/ripngd.conf
chown quagga:quaggavt /etc/quagga/vtysh.conf && chmod 660 /etc/quagga/vtysh.conf
chown quagga:quagga /etc/quagga/zebra.conf && chmod 640 /etc/quagga/zebra.conf

Для возможности сохранения конфигурации в vtysh. В прочим как и следующий пункт (для включенного SElinux)
5) Включаем политику SElinux
Код: выделить все
setsebool -P zebra_write_config 1

Для проверки установленного значения используем команду
Код: выделить все
getsebool zebra_write_config

При отключенной политики SElinux наблюдаются проблемы с доступом к файлам конфигурации из утилиты настройки vtysh
Код: выделить все
srv.google.loc# wr
Building Configuration...
Can't open configuration file /etc/quagga/zebra.conf.I7FcD2.
Can't open configuration file /etc/quagga/ospfd.conf.gTaOz2.
Can't open configuration file /etc/quagga/bgpd.conf.nn5Cs2.

6) Для того чтобы quagga поднимала нужные протоколы динамической маршрутизации их нужно выбрать, отредактировав файл /etc/sysconfig/quagga и оставить только нужный список сервисов в строке
Код: выделить все
WATCH_DAEMONS="zebra bgpd ospfd"

Так же в этом файле задаётся пользователь и группа от имени которых будут работать сервисы quagga и консоль vtysh
На более новых версиях quagga для этой цели может использоваться файл /etc/quagga/daemons
Код: выделить все
zebra=yes
bgpd=yes
ospfd=yes
ospf6d=no
ripd=no
ripngd=no
isisd=no
babeld=no

7) Включаем IPv4 Unicast Forwarding:
Код: выделить все
echo "net.ipv4.conf.all.forwarding=1" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.forwarding=1" >> /etc/sysctl.conf

Включаем IPv4 Multicast Forwarding:
Код: выделить все
echo "net.ipv4.conf.all.mc_forwarding=1" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.mc_forwarding=1" | >> /etc/sysctl.conf
sysctl -p

Включаем IPv6 Unicast Forwarding:
?????
Код: выделить все
sed 's/#net.ipv6.conf.all.forwarding=1/net.ipv6.conf.all.forwarding=1/g' /etc/sysctl.conf >> /etc/sysctl.conf
echo "net.ipv6.conf.default.forwarding=1" >> /etc/sysctl.conf
sysctl -p

Данная команда включает не маршрутизацию, а возможность принимать чужие пакеты (пакеты адресующиеся другому хосту) Сам механизм маршрутизации является неотъемлемой частью стека протокола TCP/IP и не может быть выключен.


 Настройка 
Утилита управления интерфейсами и протоколами маршрутизации vtysh представляет собой аналогичную BASH командную оболочку. Применяемые команды для конфигурирования протоколов маршрутизации и интерфейсов аналогичны командам применяемым при настройке оборудования CISCO.

Команда назначения IP на интерфейс с другим адресом добавляет его а не заменяет старый
Код: выделить все
ip address

Просмотр информации о соседях ospf/bgp
Код: выделить все
show ip ospf neighbors
show ip bgp neighbors

Суммарная информация о BGP локальная AS и Neighbors в табличном виде
Код: выделить все
show ip bgp summary


Проверка Доступности соединения с демонами quagga
Код: выделить все
telnet localhost ospfd

- ospf daemon,

Код: выделить все
telnet localhost zebra

- zebra daemon,

Код: выделить все
telnet localhost bgpd

- bgpd daemon

Протокол BGP использует 179 порт TCP.
Протокол RIP использует 520 порт UDP.

Open Shortest Path First OSPF (protocol number 89 ***не порт***)
Enhanced Interior Gateway Routing Protocol EIGRP (protocol number 88)
Intermediate System to Intermediate System IS-IS (protocol number 124)
Interior Gateway Protocol IGP (protocol number 9) (used by Cisco for their IGRP)

Пример правила iptables для OSPF
Код: выделить все
iptables -A INPUT -p 89 -j ACCEPT

Пример разрешающего правила для протокола OSPF на firewalld
Код: выделить все
firewall-cmd --add-protocol=ospf --permanent --zone=FedoraServer
firewall-cmd --reload
Для желающих отблагодарить
SB: 4274320029755744
QIWI: +79175241450
Аватар пользователя
ROOT
Администратор
 
Сообщений: 136
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron