Настройка OSPF для получения маршрутов до абонентов

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Зачем это настраивать?

Начиная с версии 8.01.03 доступна возможность в контейнере bgp_blackhole настроить OSPF для получения маршрутов до абонентов.

Это нужно для того, чтобы путь пакетов с редиректами до получателей был короче и не происходило ситуации, в которой реальный пакет из интернета придёт быстрее.

Обычно такая настройка полезна в случае, если в сети провайдера используется несколько маршрутизаторов занимающихся подключением пользователей по VPN. Маршрутизаторы доступны Carbon Reductor напрямую, но он шлёт пакеты с редиректами в свой маршрут по умолчанию, в результате увеличивается число промежуточных узлов.

Примечания

На текущий момент получение маршрутов по OSPF не тестировалось с одновременным использованием основного предназначения bgp_blackhole - анонсирование заблокированных целиком по IP адресу ресурсов, побочные эффекты могут быть неожиданными/неприятными.

Поэтому при настройке необходимо явно отключить интеграцию BGP, включив при этом сам контейнер BGP Blackhole.

Как настроить

Запускаем команду menu. Выбираем BGP Blackhole.

Заходим в настройки BGP Blackhole.

Выключим анонсирование маршрутов, включенное по умолчанию для обратной совместимости и включим контейнер.

Дальше идём в настройки OSPF:

И настраиваем его (описание опций под картинкой):

Все эти параметры используются для генерации конфига ospfd. Шаблон выглядит следующим образом:

hostname {{hostname - подхватывается из переменной окружения $HOSTNAME}}
password {{ospfd_password - Пароль ospfd}}
enable password {{ospfd_password - Пароль ospfd}}
log file /var/log/quagga/ospfd.log
service password-encryption
no banner motd
{% for interface in ospfd_interfaces - Интерфейсы ospfd %}interface {{interface}}
{% endfor %}
{% if ospfd_auth_key - Ключ аутентификации%} ip ospf authentication
 ip ospf authentication-key {{ospfd_auth_key - Ключ аутентификации}}
{% endif %}
router ospf
 ospf router-id {{ospfd_router_id - Router ID (reductor)}}
{% if ospfd_end_user_networks - Сети абонентов (через пробел) %}
 redistribute kernel route-map end_user_routes
 redistribute connected route-map end_user_routes
{% endif %}
 passive-interface default
{% for interface in ospfd_interfaces - Интерфейсы ospfd %} no passive-interface {{ interface }}
{% endfor %}
 network {{ospfd_router_network - Сеть маршрутизаторов}} area {{ospfd_area - Зона }}
{% for neighbor in neighbors - Соседи (через пробел) %} neighbor {{neighbor}}
{% endfor %}
access-list localhost permit 127.0.0.1/32
access-list localhost deny any
{% if ospfd_end_user_networks - Сети абонентов (через пробел) %}
{% for seq, network in ospfd_end_user_networks - Сети абонентов (через пробел) %}!
ip prefix-list end_users seq {{seq}} permit {{network}}
{% endfor %}!
ip prefix-list end_users seq {{ospfd_end_user_networks_count + 1}} deny any
route-map end_user_routes permit 10
 match ip address prefix-list end_users
{% endif %}
line vty
 access-class localhost

Для минимально рабочего сценария достаточно указать пароль, router id, сеть маршрутизаторов и зону.

Кастомизация конфига

Если хочется добавить нестандартные опции, вы можете скопировать стандартный шаблон:

cp -a /app/bgp_blackhole/usr/local/share/ospfd.conf.j2 /app/bgp_blackhole/cfg/ospfd.conf.j2

Исправьте его под свои нужды в удобном вам текстовом редакторе и укажите в меню в поле "Шаблон конфига ospfd":

/cfg/ospfd.conf.j2

Конфиг генерируется с помощью jinja2.

Как запустить генерацию всех конфигов:

chroot /app/bgp_blackhole/
/genconfig

Вообще заниматься этим всем стоит только в случае если техническая поддержка в ответ на предложение исправить/дополнить стандартный шаблон сообщила что это не будет добавлено в продукт никогда. Мы заинтересованы в том, чтобы из коробки продукт был удобен всем, так что приветствуем добавление действительно полезных опций.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.