Fix BGP route leak: mandatory outbound prefix-filter on every neighbor
Prod-инцидент: FRR реэкспортировал входящий 10.0.0.0/8 обратно
eBGP-соседям. Причина — ни у одного соседа не было outbound-фильтра
(no bgp ebgp-requires-policy отключал защиту FRR, единственный
route-map RM-PREPEND-OUT permit-all фильтрации не делал).
frr.conf.j2: добавлен ip prefix-list PL-ANYCAST-OUT (permit только
anycast_prefix) и route-map RM-OUT / RM-OUT-PREPEND (фильтр, либо
фильтр+prepend), оба с явным deny в конце. Назначены outbound на
ВСЕХ соседей без исключения — наружу теперь уходит исключительно
анонсируемый anycast-префикс, что бы ни попало в локальную
BGP-таблицу от других соседей.
Уязвимость структурная (в общей роли), поэтому фикс задел и
площадку A — golden-файлы frr/a{1,2,3}/frr.conf синхронизированы
с новым рендером (намеренно, не регресс). no bgp ebgp-requires-policy
сознательно не тронут — его включение требует ещё inbound-policy на
каждого соседа, отдельная задача.
render-check.sh 6/6, render-check-cloud.sh 84/84 (включая nft -c).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
This commit is contained in:
1 parent
1e287ee81c
commit
804fee4ffa
8 files changed
+113
-9
No files matched your search
@@ -7,6 +7,13 @@ no ipv6 forwarding
|
||||
interface dummy0
|
||||
ip address 10.200.200.1/32
|
||||
!
|
||||
ip prefix-list PL-ANYCAST-OUT seq 5 permit 10.200.200.1/32
|
||||
!
|
||||
route-map RM-OUT permit 10
|
||||
match ip address prefix-list PL-ANYCAST-OUT
|
||||
!
|
||||
route-map RM-OUT deny 20
|
||||
!
|
||||
router bgp 65001
|
||||
bgp router-id 10.0.0.1
|
||||
no bgp ebgp-requires-policy
|
||||
@@ -17,6 +24,8 @@ router bgp 65001
|
||||
network 10.200.200.1/32
|
||||
neighbor 10.0.1.2 activate
|
||||
neighbor 10.0.2.2 activate
|
||||
neighbor 10.0.1.2 route-map RM-OUT out
|
||||
neighbor 10.0.2.2 route-map RM-OUT out
|
||||
exit-address-family
|
||||
!
|
||||
line vty
|
||||
|
||||
@@ -7,6 +7,13 @@ no ipv6 forwarding
|
||||
interface dummy0
|
||||
ip address 10.200.200.1/32
|
||||
!
|
||||
ip prefix-list PL-ANYCAST-OUT seq 5 permit 10.200.200.1/32
|
||||
!
|
||||
route-map RM-OUT permit 10
|
||||
match ip address prefix-list PL-ANYCAST-OUT
|
||||
!
|
||||
route-map RM-OUT deny 20
|
||||
!
|
||||
router bgp 65001
|
||||
bgp router-id 10.0.0.2
|
||||
no bgp ebgp-requires-policy
|
||||
@@ -17,6 +24,8 @@ router bgp 65001
|
||||
network 10.200.200.1/32
|
||||
neighbor 10.0.3.2 activate
|
||||
neighbor 10.0.4.2 activate
|
||||
neighbor 10.0.3.2 route-map RM-OUT out
|
||||
neighbor 10.0.4.2 route-map RM-OUT out
|
||||
exit-address-family
|
||||
!
|
||||
line vty
|
||||
|
||||
@@ -7,6 +7,13 @@ no ipv6 forwarding
|
||||
interface dummy0
|
||||
ip address 10.200.200.1/32
|
||||
!
|
||||
ip prefix-list PL-ANYCAST-OUT seq 5 permit 10.200.200.1/32
|
||||
!
|
||||
route-map RM-OUT permit 10
|
||||
match ip address prefix-list PL-ANYCAST-OUT
|
||||
!
|
||||
route-map RM-OUT deny 20
|
||||
!
|
||||
router bgp 65001
|
||||
bgp router-id 10.0.0.3
|
||||
no bgp ebgp-requires-policy
|
||||
@@ -17,6 +24,8 @@ router bgp 65001
|
||||
network 10.200.200.1/32
|
||||
neighbor 10.0.5.2 activate
|
||||
neighbor 10.0.6.2 activate
|
||||
neighbor 10.0.5.2 route-map RM-OUT out
|
||||
neighbor 10.0.6.2 route-map RM-OUT out
|
||||
exit-address-family
|
||||
!
|
||||
line vty
|
||||
|
||||
Reference in new issue
Block a user