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

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

Модератор: ROOT

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

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

Оглавление


Темы
 QUAGGA — Протоколы динамической маршрутизации 
 Настройка 
 Список некоторых протоколов транспортирного уровня 
 Пример конфигурации 
Дополнительные материалы
Wake on Lan: Удалённое включение компьютера
Синхронизация времени
OpenVPN: Открытая виртуальная частная сеть
WireGuard - VPN нового поколения
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 и не может быть выключен.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 438
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 09 апр 2022, 16:47



 Настройка 
Утилита управления интерфейсами и протоколами маршрутизации 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 и RIP используют в качестве транспорта IP и за ними закреплены следующие порта
Для BGP используется 179 порт TCP, а для RIP 520 порт UDP.

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

Пример разрешающего правила для протокола OSPF на firewalld
Код: выделить все
firewall-cmd --add-protocol=ospf --permanent --zone=FedoraServer
firewall-cmd --reload
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 438
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 09 апр 2022, 16:48



 Список некоторых протоколов транспортирного уровня 
№ ПротоколаСокращениеПротоколОписание
0HOPOPTIPv6 Hop-by-Hop Option
1ICMPInternet Control Message ProtocolПротокол управляющих сообщений, используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, а также выполняет некоторые сервисные функции.
2IGMPInternet Group Management ProtocolПротокол управления групповой передачей данных.
3GGPGateway-to-Gateway Protocol
4IPv4IPv4 (инкапсуляция)
6TCPTransmission Control ProtocolПротокол управления передачей, осуществляет надёжную, упорядоченную доставку данных.
8EGPExterior Gateway ProtocolПротокол обмена информации между маршрутизаторами нескольких автономных систем.
9IGPInterior Gateway ProtocolЛюбой частный протокол внутридоменной маршрутизации.
17UDPUser Datagram ProtocolПротокол пользовательских датаграмм, передача данных без установления соединения.
27RDPReliable Datagram ProtocolПротокол надежной передачи данных между пакетно-ориентированными приложениями.
41IPv6IPv6 (инкапсуляция)
43IPv6-RouteRouting Header for IPv6
44IPv6-FragFragment Header for IPv6
46RSVPResource Reservation ProtocolПротокол резервирования сетевых ресурсов. Сообщает маршрутизаторам сети потребностей конечных узлов по качеству обслуживания.
47GREGeneric Routing EncapsulationПротокол туннелирования сетевых пакетов. Инкапсулирует пакеты сетевого уровня в IP пакеты.
50ESPEncapsulating Security PayloadНабор протоколов IPsec, обеспечивающих защиту данных. Позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов.
56TLSPTransport Layer Security Protocol (с использованием ключей Kryptonet)Криптографический протокол, обеспечивающий защищённую передачу данных.
57SKIPSimple Key-Management for Internet ProtocolПротокол обмена ключами шифрования.
58IPv6-ICMPICMP for IPv6Протокол управляющих сообщений для IPv6.
59IPv6-NoNxtNo Next Header for IPv6
60IPv6-OptsDestination Options for IPv6
75PVPPacket Video Protocol
80ISO-IPnternational Organization for Standardization Internet Protocol
81VMTPVersatile Message Transaction Protocol
82SECURE-VMTPSecure Versatile Message Transaction Protocol
88EIGRPEIGRPПротокол маршрутизации, разработанный фирмой Cisco.
89OSPFOpen Shortest Path FirstПротокол динамической маршрутизации, основанный на технологии отслеживания состояния канала и использующий для нахождения кратчайшего пути Алгоритм Дейкстры.
94IPIPIP-within-IP Encapsulation Protocol
97ETHERIPEthernet-within-IP Encapsulation
111IPX-in-IPIPX in IP
112VRRPVirtual Router Redundancy ProtocolПротокол объединения группы маршрутизаторов в один виртуальный маршрутизатор и назначения им общего IP-адреса.
124IS-IS over IPv4Протокол внутридоменной маршрутизации.
133FCFibre ChannelСемейство протоколов для высокоскоростной передачи данных.
137MPLS-in-IPПротокол многопротокольной коммутации по меткам, осуществляет высокопроизводительную передачу данных между узлами сети при помощи меток.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 438
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

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

Сообщение ROOT » Вчера, 22:14



 Пример конфигурации 

Код: выделить все
Building configuration...

Current configuration:
!
frr version 10.2
frr defaults traditional
hostname srv.test.ru
no ipv6 forwarding  # Отключение IPv6 для упрощения конфигурации
!
# Создание prefix-list для маршрута по умолчанию
ip prefix-list DEFAULT-ROUTE seq 5 permit 0.0.0.0/0
# Создание prefix-list, разрешающего все маршруты
ip prefix-list ALLOW-ALL seq 5 permit 0.0.0.0/0 le 32
!
# Настройка интерфейса ens3 (внешний интерфейс)
interface ens3
 description To INET  # Описание интерфейса
 ip address 195.1.1.1/24  # Назначение IP-адреса
exit
!
# Настройка интерфейса ens4 (внутренний интерфейс)
interface ens4
 description To LAN  # Описание интерфейса
 ip address 10.10.10.6/29  # Назначение IP-адреса
exit
!
# Настройка BGP
router bgp 65000
 # Включение логирования изменений соседей
 bgp log-neighbor-changes
 # Включение Graceful Restart для плавного перезапуска
 bgp graceful-restart
 # Разрешение multipath для маршрутов с одинаковой длиной AS_PATH
 bgp bestpath as-path multipath-relax
 # Настройка таймеров BGP (keepalive=5s, hold-time=20s)
 timers bgp 5 20
 # Настройка соседа 10.10.10.1 (AS 65040)
 neighbor 10.10.10.1 remote-as 65040
 neighbor 10.10.10.1 description BGP Peer with 65040  # Описание соседа
 neighbor 10.10.10.1 password DRhb5623$!  # Пароль для аутентификации
 neighbor 10.10.10.1 update-source 10.10.10.6  # Указание интерфейса для установки соединения
 # Настройка соседа 195.1.1.3 (AS 65030)
 neighbor 195.1.1.3 remote-as 65030
 neighbor 195.1.1.3 description BGP Peer with 65030  # Описание соседа
 neighbor 195.1.1.3 password DRhb5623$!  # Пароль для аутентификации
 neighbor 195.1.1.3 update-source 195.1.1.1  # Указание интерфейса для установки соединения
 !
 # Настройка адресного семейства IPv4
 address-family ipv4 unicast
  # Анонсирование сетей в BGP
  network 10.10.10.0/29
  network 195.1.1.0/24
  # Настройка соседа 10.10.10.1
  neighbor 10.10.10.1 default-originate  # Анонсирование маршрута по умолчанию
  neighbor 10.10.10.1 allowas-in 1  # Разрешение AS 65040 в пути до 1 раза
  neighbor 10.10.10.1 route-map ALLOW-ALL in  # Применение route-map для входящих маршрутов
  neighbor 10.10.10.1 route-map ALLOW-ALL out  # Применение route-map для исходящих маршрутов
  # Настройка соседа 195.1.1.3
  neighbor 195.1.1.3 allowas-in 1  # Разрешение AS 65030 в пути до 1 раза
  neighbor 195.1.1.3 route-map ALLOW-ALL in  # Применение route-map для входящих маршрутов
  neighbor 195.1.1.3 route-map ALLOW-ALL out  # Применение route-map для исходящих маршрутов
 exit-address-family
exit
!
# Настройка route-map для разрешения маршрута по умолчанию
route-map ALLOW-DEFAULT permit 10
 match ip address prefix-list DEFAULT-ROUTE  # Применение prefix-list DEFAULT-ROUTE
exit
!
# Настройка route-map для разрешения всех маршрутов
route-map ALLOW-ALL permit 10
 match ip address prefix-list ALLOW-ALL  # Применение prefix-list ALLOW-ALL
exit
!
end

Пояснения к ключевым блокам
  1. Prefix-List
    • DEFAULT-ROUTE: Разрешает только маршрут по умолчанию (0.0.0.0/0).
    • ALLOW-ALL: Разрешает все маршруты (0.0.0.0/0 le 32).
  2. Route-Map
    • ALLOW-DEFAULT: Применяет prefix-list DEFAULT-ROUTE для фильтрации маршрутов. Используется для управления маршрутом по умолчанию.
    • ALLOW-ALL: Применяет prefix-list ALLOW-ALL для фильтрации всех маршрутов. Используется для разрешения всех маршрутов.
  3. BGP
    • bgp log-neighbor-changes: Включает логирование изменений состояния соседей.
    • bgp graceful-restart: Включает поддержку Graceful Restart для плавного перезапуска BGP.
    • bgp bestpath as-path multipath-relax: Разрешает multipath для маршрутов с одинаковой длиной AS_PATH.
    • timers bgp 5 20: Настраивает таймеры BGP (keepalive=5s, hold-time=20s).
    • neighbor: Настройка соседей BGP с указанием пароля, описания и других параметров.
    • address-family ipv4 unicast: Настройка адресного семейства IPv4, включая анонсирование сетей и применение route-map.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 438
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный


Вернуться в Fedora

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

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

cron