Add FRR anycast lab: HLD, containerized topology, docs

Реализует HLD-дизайн (hld.md) в виде развёртываемого Docker Compose
окружения: 5 FRR-роутеров (A1-A3 anycast 10.200.200.1/32 на AS 65001,
B1/B2 на AS 65002/65003) + 6 клиентских контейнеров, ECMP-балансировка
трафика клиентов площадки B к anycast-адресу площадки A.

- docker-compose.yml, frr/*, entrypoints/* — топология и конфиги FRR
- scripts/verify.sh, scripts/traffic-test.sh — проверка BGP/ECMP и трафика
- hld.md — HLD-дизайн + Mermaid-диаграмма топологии
- README.md — запуск, структура, команды проверки на роутерах и клиентах
- docs/ — планы внедрения и summary по каждому изменению

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
This commit is contained in:
ayurishchevandClaude Sonnet 5 committed 2026-09-03 12:52:44 +03:00
commit eaa577e6b7
30 files changed
+1035

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
staticd=yes
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
+23
View File
@@ -0,0 +1,23 @@
frr version 8.5
frr defaults traditional
hostname a1
log stdout informational
no ipv6 forwarding
!
interface dummy0
ip address 10.200.200.1/32
!
router bgp 65001
bgp router-id 10.0.0.1
no bgp ebgp-requires-policy
neighbor 10.0.1.2 remote-as 65002
neighbor 10.0.2.2 remote-as 65003
!
address-family ipv4 unicast
network 10.200.200.1/32
neighbor 10.0.1.2 activate
neighbor 10.0.2.2 activate
exit-address-family
!
line vty
!
+1
View File
@@ -0,0 +1 @@
service integrated-vtysh-config
+25
View File
@@ -0,0 +1,25 @@
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
staticd=yes
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
+23
View File
@@ -0,0 +1,23 @@
frr version 8.5
frr defaults traditional
hostname a2
log stdout informational
no ipv6 forwarding
!
interface dummy0
ip address 10.200.200.1/32
!
router bgp 65001
bgp router-id 10.0.0.2
no bgp ebgp-requires-policy
neighbor 10.0.3.2 remote-as 65002
neighbor 10.0.4.2 remote-as 65003
!
address-family ipv4 unicast
network 10.200.200.1/32
neighbor 10.0.3.2 activate
neighbor 10.0.4.2 activate
exit-address-family
!
line vty
!
+1
View File
@@ -0,0 +1 @@
service integrated-vtysh-config
+25
View File
@@ -0,0 +1,25 @@
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
staticd=yes
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
+23
View File
@@ -0,0 +1,23 @@
frr version 8.5
frr defaults traditional
hostname a3
log stdout informational
no ipv6 forwarding
!
interface dummy0
ip address 10.200.200.1/32
!
router bgp 65001
bgp router-id 10.0.0.3
no bgp ebgp-requires-policy
neighbor 10.0.5.2 remote-as 65002
neighbor 10.0.6.2 remote-as 65003
!
address-family ipv4 unicast
network 10.200.200.1/32
neighbor 10.0.5.2 activate
neighbor 10.0.6.2 activate
exit-address-family
!
line vty
!
+1
View File
@@ -0,0 +1 @@
service integrated-vtysh-config
+25
View File
@@ -0,0 +1,25 @@
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
staticd=yes
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
+24
View File
@@ -0,0 +1,24 @@
frr version 8.5
frr defaults traditional
hostname b1
log stdout informational
no ipv6 forwarding
!
router bgp 65002
bgp router-id 10.0.0.4
no bgp ebgp-requires-policy
bgp bestpath as-path multipath-relax
neighbor 10.0.1.1 remote-as 65001
neighbor 10.0.3.1 remote-as 65001
neighbor 10.0.5.1 remote-as 65001
!
address-family ipv4 unicast
network 10.100.1.0/24
maximum-paths 3
neighbor 10.0.1.1 activate
neighbor 10.0.3.1 activate
neighbor 10.0.5.1 activate
exit-address-family
!
line vty
!
+1
View File
@@ -0,0 +1 @@
service integrated-vtysh-config
+25
View File
@@ -0,0 +1,25 @@
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
staticd=yes
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
+24
View File
@@ -0,0 +1,24 @@
frr version 8.5
frr defaults traditional
hostname b2
log stdout informational
no ipv6 forwarding
!
router bgp 65003
bgp router-id 10.0.0.5
no bgp ebgp-requires-policy
bgp bestpath as-path multipath-relax
neighbor 10.0.2.1 remote-as 65001
neighbor 10.0.4.1 remote-as 65001
neighbor 10.0.6.1 remote-as 65001
!
address-family ipv4 unicast
network 10.100.2.0/24
maximum-paths 3
neighbor 10.0.2.1 activate
neighbor 10.0.4.1 activate
neighbor 10.0.6.1 activate
exit-address-family
!
line vty
!
+1
View File
@@ -0,0 +1 @@
service integrated-vtysh-config