По updated_dia.png: новое окружение "Облачная площадка" (vr01-vr04, AS 65200, anycast 172.31.255.10/32) с двумя внешними BGP-каналами — основным (ASN 65104, без as-path prepend) и резервным (ASN 65103, с prepend на всех узлах) — плюс sNAT (nftables masquerade) на внешнем интерфейсе. Роль frr_anycast обобщена под это: вместо двух жёстко именованных соседей — список bgp_neighbors произвольной длины с флагом prepend; sNAT/ip_forward — опциональный блок (enable_snat). Площадка A мигрирована на новый формат host_vars/group_vars без изменения site-a.env и без изменения рендера — render-check.sh (golden-diff) по-прежнему проходит 6/6. Для site-cloud (окружение новое, ВМ не подняты) добавлен render-check-cloud.sh с grep-инвариантами: 4 соседа на узел, prepend только на резервном канале, nftables masquerade на внешнем интерфейсе — 56/56 проверок пройдено. run.sh обобщён на несколько окружений: инвентарь по имени playbook'а, env-файл через SITE_ENV_FILE (алиас SITE_A_ENV_FILE сохранён). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
31 lines
784 B
Django/Jinja
31 lines
784 B
Django/Jinja
frr version 8.5
|
|
frr defaults traditional
|
|
hostname {{ inventory_hostname }}
|
|
log stdout informational
|
|
no ipv6 forwarding
|
|
!
|
|
{% if bgp_neighbors | selectattr('prepend') | list | length > 0 %}
|
|
route-map RM-PREPEND-OUT permit 10
|
|
set as-path prepend {{ ((local_asn ~ ' ') * (as_path_prepend_count | default(0) | int)) | trim }}
|
|
!
|
|
{% endif %}
|
|
router bgp {{ local_asn }}
|
|
bgp router-id {{ router_id }}
|
|
no bgp ebgp-requires-policy
|
|
{% for n in bgp_neighbors %}
|
|
neighbor {{ n.ip }} remote-as {{ n.asn }}
|
|
{% endfor %}
|
|
!
|
|
address-family ipv4 unicast
|
|
network {{ anycast_prefix }}
|
|
{% for n in bgp_neighbors %}
|
|
neighbor {{ n.ip }} activate
|
|
{% endfor %}
|
|
{% for n in bgp_neighbors if n.prepend %}
|
|
neighbor {{ n.ip }} route-map RM-PREPEND-OUT out
|
|
{% endfor %}
|
|
exit-address-family
|
|
!
|
|
line vty
|
|
!
|