Примеры настройки BGP-сессий на оборудовании различных производителей
17 апреля 2024
ID 206484
Рассмотрим топологию ниже:
Пример топологии
IP-адреса, которые нуждаются в защите:
- 8.8.8.10
- 8.8.8.11
Для защиты этих ресурсов Kaspersky DDoS Protection выделяет Клиенту IP-адреса из собственного адресного пространства.
IP-адреса Защищаемых ресурсов
Оригинальный IP-адрес Защищаемого ресурса | IP-адрес, выданный под защиту Kaspersky DDoS Protection |
8.8.8.10 | 82.202.190.100 |
8.8.8.11 | 82.202.190.101 |
Выделенные IP-адреса должны быть присвоены Защищаемым ресурсам в качестве дополнительного IP.
Для отказоустойчивого подключения к Kaspersky DDoS Protection были построены туннели с топологией full-mesh, т.е. от каждого маршрутизатора Клиента до двух площадок Kaspersky DDoS Protection.
Задача состоит в организации динамической маршрутизации таким образом, чтобы:
- трафик с IP-адресов 82.202.190.x симметрично маршрутизировался через Kaspersky DDoS Protection;
- трафик для IP-адресов 82.202.190.x доставлялся на соответствующие серверы;
- выбор приоритетного маршрута для исходящего трафика с IP-адресов 82.202.190.x выбирался на основе BGP-атрибута MED или метрики BGP.
Оборудование Cisco
BDR1:
interface GigabitEthernet0/0
description CORE
ip address 192.168.1.1 255.255.255.0
interface GigabitEthernet0/1
description BDR2-iBGP
ip address 10.100.1.1 255.255.255.252
interface Tunnel1
description KDP1
ip address 10.42.10.2 255.255.255.252
interface Tunnel2
description KDP2
ip address 10.42.10.6 255.255.255.252
(точки терминации туннелей опущены, как несущественные в данном примере)
BGP-роутер:
AS Клиента: 65000
AS Kaspersky DDoS Protection: 209030
Получаем от Kaspersky DDoS Protection: 5.5.5.5/32 (цель получения данного анонса раскрыта в разделе Policy-Based Routing)
Анонсируем Kaspersky DDoS Protection:
82.202.190.100/32
82.202.190.101/32
router bgp 65000
no synchronization
bgp deterministic-med
network 82.202.190.100 mask 255.255.255.255
network 82.202.190.101 mask 255.255.255.255
neighbor 10.42.10.1 remote-as 209030 # KDP1
neighbor 10.42.10.1 route-map KDP-OUT out
neighbor 10.42.10.1 route-map KDP-IN in
neighbor 10.42.10.5 remote-as 209030 # KDP2
neighbor 10.42.10.5 route-map KDP-OUT out
neighbor 10.42.10.5 route-map KDP-IN in
neighbor 10.100.1.2 remote-as 65000 # iBGP with BDR2
Конфигурируем фильтры:
ip prefix-list PL-KDP-IN seq 10 permit 5.5.5.5/32
ip prefix-list PL-PROTECTED seq 10 permit 82.202.190.100
ip prefix-list PL-PROTECTED seq 20 permit 82.202.190.101
route-map KDP-IN permit 10
match ip address prefix-list PL-KDP-IN
route-map KDP-OUT permit 10
match ip address prefix-list PL-PROTECTED
Policy-Based Routing (PBR)
Применяя PBR мы решаем одновременно несколько задач:
- изменяем маршрут только для конкретных (Защищаемых) IP-адресов для соблюдения симметрии в туннеле;
- применяем вопреки наличию в таблице маршрутизации более специфичных маршрутов.
ip access-list standard KDP-PBR
permit host 82.202.190.100
permit host 82.202.190.101
# access-list типа "standard" всегда применяется к source-адресам.
route-map KDP-PBR permit 10
match ip address KDP-PBR
set ip next-hop *recursive* 5.5.5.5
# 5.5.5.5/32 - префикс, который анонсируется по BGP от Kaspersky DDoS Protection. Директива "recursive" показывает, что данный next-hop не находится в connected сети.
# Будет рекурсивно найден маршрут до 5.5.5.5/32 и выбран в качестве настоящего next-hop. Т.е. один из "концов" GRE-туннелей с Kaspersky DDoS Protection.
# Политика PBR применяется к интерфейсу, который "смотрит" внутрь сети, и трафик, подлежащий маршрутизации, на данном интерфейсе является входящим
# (исходящим со стороны Защищаемых серверов):
interface GigabitEthernet0/0
description CORE
ip policy route-map KDP-PBR
Трафик, адресованный на Защищаемые IP-адреса, доставляется на серверы по статическим маршрутам:
ip route 82.202.190.100 255.255.255.255 8.8.8.10
ip route 82.202.190.101 255.255.255.255 8.8.8.11
Оборудование Juniper
BDR1:
interfaces {
ge-0/0 {
description CORE;
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
ge-0/1 {
description BDR2-iBGP;
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
gr-0/2 {
unit 0 {
description KDP1;
tunnel {
source x.x.x.x;
destination y.y.y.y;
}
family inet {
address 10.42.10.2/30;
}
}
unit 1 {
description KDP2;
tunnel {
source x.x.x.x;
destination y.y.y.y;
}
family inet {
address 10.42.10.6/30;
}
}
}
(точки терминации туннелей опущены, как несущественные в данном примере)
BGP-роутер: AS Клиента: 65000, AS Kaspersky DDoS Protection: 209030
Получаем от Kaspersky DDoS Protection: 5.5.5.5/32 (цель получения данного анонса раскрыта в разделе Policy-Based Routing).
Анонсируем Kaspersky DDoS Protection:
82.202.190.100
82.202.190.101
protocols {
bgp {
group KDP {
type external;
import KDP-IN;
export KDP-OUT;
peer-as 209030;
neighbor 10.42.10.1 {
description KDP-1;
}
neighbor 10.42.10.5 {
description KDP-1;
}
family inet {
unicast {
rib-group RIB-KDP;
/* Импорт маршрутов в альтернативную таблицу. Подробнее ниже в разделе по FBF */
}
}
}
group iBGP {
type internal;
peer-as 65000;
neighbor 10.100.1.2 {
description iBGP with BDR2;
}
}
}
}
Конфигурируем фильтры:
policy-options {
prefix-list PL-KDP-IN {
5.5.5.5/32;
}
prefix-list PL-PROTECTED {
82.202.190.100/32;
82.202.190.101/32;
}
policy-statement KDP-IN {
term ACCEPT {
from {
prefix-list PL-KDP-IN;
}
then {
accept;
}
then reject;
}
policy-statement KDP-OUT {
term ACCEPT {
from {
prefix-list PL-PROTECTED;
}
then {
accept;
}
then reject;
}
}
Policy-Based Routing (PBR)
Policy-Based Routing (PBR) в терминологии Cisco соответствует термину Filter-Based Forwarding (FBF) в терминологии Juniper. Применяя PBR, мы решаем одновременно несколько задач:
- изменяем маршрут только для конкретных (Защищаемых) IP-адресов для соблюдения симметрии в туннеле;
- применяем вопреки наличию в таблице маршрутизации более специфичных маршрутов.
Создаем альтернативную таблицу маршрутизации. Вносим в нее маршрут, по умолчанию указывающий на IP-адрес 5.5.5.5, маршрут до которого в свою очередь анонсируется по BGP от Kaspersky DDoS Protection.
routing-instances {
RIB-KDP {
instance-type forwarding;
routing-options {
static {
route 0.0.0.0/0 next-hop 5.5.5.5 resolve;
}
}
}
}
Импорт connected-маршрутов, политика импорта из BGP.
routing-options {
rib-groups {
FBF-GROUP {
import-rib [ inet.0 RIB-KDP.inet.0 ];
import-policy KDP-IN;
}
interface-routes {
rib-group inet FBF-GROUP;
}
}
Правила firewall:
firewall {
family inet {
filter KDP-FBF {
term FBF {
from {
source-prefix-list {
PL-PROTECTED;
}
}
then {
routing-instance RIB-KDP;
}
then accept;
}
}
}
}
Политика PBR применяется к интерфейсу, который «смотрит» внутрь сети, и трафик, подлежащий маршрутизации на данном интерфейсе, является входящим (исходящим со стороны Защищаемых серверов):
interfaces {
ge-0/0 {
unit 0 {
description CORE;
family inet {
filter input KDP-FBF;
}
}
}
}
Трафик, адресованный на Защищаемые IP-адреса, доставляется на серверы по статическим маршрутам:
routing-options {
static {
route 82.202.190.100/32 next-hop 8.8.8.10;
route 82.202.190.101/32 next-hop 8.8.8.11;
}
}