ansible/playbooks/bird.yml

399 lines
10 KiB
YAML
Raw Normal View History

#!/usr/bin/env ansible-playbook
---
- hosts:
2023-04-05 00:18:25 +02:00
- isp-1.back.infra.auro.re
- isp-2.back.infra.auro.re
vars:
bird__router_ids:
2023-04-05 00:18:25 +02:00
isp-1.back.infra.auro.re: 10.203.1.5
isp-2.back.infra.auro.re: 10.203.1.6
bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
bird__radv_interfaces:
2023-03-28 20:36:46 +02:00
client0:
prefix:
- 2a09:6841::/56
domain_search:
2023-03-28 20:36:46 +02:00
- client0.isp.auro.re
client1:
prefix:
- 2a09:6841:0:100::/56
domain_search:
2023-03-28 20:36:46 +02:00
- client1.isp.auro.re
client2:
prefix:
- 2a09:6841:0:200::/56
domain_search:
2023-03-28 20:36:46 +02:00
- client2.isp.auro.re
client3:
prefix:
- 2a09:6841:0:300::/56
domain_search:
2023-03-28 20:36:46 +02:00
- client3.isp.auro.re
client4:
prefix:
- 2a09:6841:0:400::/56
domain_search:
2023-03-28 20:36:46 +02:00
- client4.isp.auro.re
bird__radv_dns_servers:
2023-01-07 02:25:53 +01:00
- 2a09:6840:128::10:3
bird__asn:
aurore: 43619
bird__bgp_addresses:
2023-04-05 00:18:25 +02:00
isp-1.back.infra.auro.re:
- 2a09:6840:203:1:5::1
- 10.203.1.5
2023-04-05 00:18:25 +02:00
isp-2.back.infra.auro.re:
- 2a09:6840:203:1:6::1
- 10.203.1.6
bird__bgp_sessions:
- name: edge1
local:
address: "{{ bird__bgp_addresses[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6840:203:1:1::1
- 10.203.1.1
as: "{{ bird__asn.aurore }}"
import:
- accept: true
export:
- accept: false
- name: edge2
local:
address: "{{ bird__bgp_addresses[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6840:203:1:2::1
- 10.203.1.2
as: "{{ bird__asn.aurore }}"
import:
- accept: true
export:
- accept: false
2023-01-07 03:19:40 +01:00
bird__ospf_broadcast_interfaces:
back0: null
2023-01-07 03:19:40 +01:00
bird__ospf_stub_interfaces:
2023-03-28 20:36:46 +02:00
- client0
- client1
- client2
- client3
- client4
roles:
- bird
2022-12-21 21:02:12 +01:00
- hosts:
2023-04-05 00:18:25 +02:00
- infra-1.back.infra.auro.re
- infra-2.back.infra.auro.re
vars:
bird__router_ids:
2023-04-05 00:18:25 +02:00
infra-1.back.infra.auro.re: 10.203.1.3
infra-2.back.infra.auro.re: 10.203.1.4
bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
2023-01-07 03:19:40 +01:00
bird__ospf_broadcast_interfaces:
back0: null
2023-01-07 03:19:40 +01:00
bird__ospf_stub_interfaces:
2023-03-28 20:36:46 +02:00
- monit0
2023-04-04 01:33:16 +02:00
- wifi0
2023-03-28 20:36:46 +02:00
- int0
- pub0
- bmc0
- pve0
2023-03-28 20:36:46 +02:00
- isp0
- mgmt0
2023-01-07 08:53:44 +01:00
bird__asn:
aurore: 43619
bird__bgp_addresses:
2023-04-05 00:18:25 +02:00
infra-1.back.infra.auro.re:
2023-01-07 08:53:44 +01:00
- 2a09:6840:203:1:3::1
- 10.203.1.3
2023-04-05 00:18:25 +02:00
infra-2.back.infra.auro.re:
2023-01-07 08:53:44 +01:00
- 2a09:6840:203:1:4::1
- 10.203.1.4
bird__bgp_sessions:
- name: edge1
local:
address: "{{ bird__bgp_addresses[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6840:203:1:1::1
- 10.203.1.1
2023-01-07 08:53:44 +01:00
as: "{{ bird__asn.aurore }}"
import:
- accept: true
export:
- accept: false
- name: edge2
local:
address: "{{ bird__bgp_addresses[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6840:203:1:2::1
- 10.203.1.2
2023-01-07 08:53:44 +01:00
as: "{{ bird__asn.aurore }}"
import:
- accept: true
export:
- accept: false
roles:
- bird
2022-12-21 21:02:12 +01:00
- hosts:
2023-04-05 00:18:25 +02:00
- edge-1.back.infra.auro.re
- edge-2.back.infra.auro.re
2022-12-21 21:02:12 +01:00
vars:
bird__router_ids:
2023-04-05 00:18:25 +02:00
edge-1.back.infra.auro.re: 10.203.1.1
edge-2.back.infra.auro.re: 10.203.1.2
2022-12-21 21:02:12 +01:00
bird__asn:
aurore: 43619
crans: 204515
zayo: 8218
viarezo: 212424
rezel: 199116
2022-12-21 21:02:12 +01:00
bird__orig_prefixes:
aurore:
- 45.66.108.0/22
- 2a09:6840::/32
- 2a09:6841::/32
2023-06-22 17:30:37 +02:00
- 2a09:6842::/32
2022-12-21 21:02:12 +01:00
crans:
- 185.230.76.0/22
- 2a0c:700::/32
viarezo:
- 138.195.144.0/20
- 192.159.121.0/24
- 2a0c:b641:2f0::/44
rezel:
- 137.194.8.0/22
- 2a09:6847::/32
2022-12-22 12:02:56 +01:00
martians:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 192.0.0.0/24
- 192.0.2.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- ::/128
- ::1/128
- ::ffff:0:0/96
- ::/96
- 100::/64
- 2001:10::/28
- 2001:db8::/32
- fc00::/7
- fe80::/10
- fec0::/10
- ff00::/8
2022-12-21 21:02:12 +01:00
bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
2023-01-07 08:53:44 +01:00
bird__bgp_addresses:
edge:
2023-04-05 00:18:25 +02:00
edge-1.back.infra.auro.re:
- 2a09:6840:203:1:1::1
- 10.203.1.1
2023-04-05 00:18:25 +02:00
edge-2.back.infra.auro.re:
- 2a09:6840:203:1:2::1
- 10.203.1.2
legacy:
2023-04-05 00:18:25 +02:00
edge-1.back.infra.auro.re:
- 2a09:6840:129::10:2
- 10.129.10.2
2023-04-05 00:18:25 +02:00
edge-2.back.infra.auro.re:
- 2a09:6840:129::10:102
- 10.129.10.102
2023-06-22 17:30:37 +02:00
rezel:
edge-1.back.infra.auro.re:
- 2a09:6842:19:9116::1
- 45.66.111.1
edge-2.back.infra.auro.re:
- 2a09:6842:19:9116::3
- 45.66.111.3
2022-12-21 21:02:12 +01:00
bird__bgp_sessions:
2023-01-07 08:53:44 +01:00
- name: edge
local:
address: "{{ bird__bgp_addresses.edge[inventory_hostname] }}"
2023-01-07 08:53:44 +01:00
as: "{{ bird__asn.aurore }}"
remote:
address: "{{ bird__bgp_addresses.edge
2023-01-07 08:53:44 +01:00
| dict2items
| selectattr('key', '!=', inventory_hostname)
| map(attribute='value')
| first }}"
as: "{{ bird__asn.aurore }}"
import:
- accept: true
export:
- local_pref: 75
2023-01-07 08:53:44 +01:00
accept: true
- name: legacy
next_hop_self: true
2023-01-07 08:53:44 +01:00
local:
address: "{{ bird__bgp_addresses.legacy[inventory_hostname] }}"
2023-01-07 08:53:44 +01:00
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6840:129::240
- 10.129.0.240
2023-01-07 08:53:44 +01:00
as: "{{ bird__asn.aurore }}"
import:
- accept: false
export:
- bgp_proto:
- crans
- zayo
2023-06-22 17:30:37 +02:00
- rezel1
- rezel2
accept: true
2023-03-26 19:02:18 +02:00
- accept: false
2022-12-21 21:02:12 +01:00
- name: zayo
local:
address:
- 83.167.52.69
- 2001:1b48:2:103::d7:2
as: "{{ bird__asn.aurore }}"
remote:
address:
- 83.167.52.68
- 2001:1b48:2:103::d7:1
as: "{{ bird__asn.zayo }}"
import:
2023-01-13 10:50:23 +01:00
- prefix: "{{ bird__orig_prefixes.martians }}"
sub: true
2023-01-13 10:50:23 +01:00
accept: false
2022-12-22 12:02:56 +01:00
- accept: true
2022-12-21 21:02:12 +01:00
export:
2023-06-22 17:30:37 +02:00
- prefix: "{{ ['aurore', 'crans', 'viarezo', 'rezel']
2022-12-22 12:02:56 +01:00
| map('extract', bird__orig_prefixes)
| flatten }}"
sub: true
accept: true
- accept: false
2022-12-21 21:02:12 +01:00
- name: crans
local:
address:
- 185.230.79.254
- 2a0c:700:28::2
as: "{{ bird__asn.aurore }}"
remote:
address:
- 185.230.79.253
- 2a0c:700:28::1
as: "{{ bird__asn.crans }}"
import:
2022-12-22 12:02:56 +01:00
- prefix: "{{ bird__orig_prefixes.crans }}"
sub: true
accept: true
- accept: false
2022-12-21 21:02:12 +01:00
export:
2023-01-13 10:50:23 +01:00
- bgp_proto:
2023-06-22 17:30:37 +02:00
- viarezo
- rezel1
- rezel2
- zayo
accept: true
- prefix: "{{ bird__orig_prefixes.aurore }}"
sub: true
accept: true
- accept: false
- name: rezel1
local:
address: "{{ bird__bgp_addresses.rezel[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6842:19:9116::2
- 45.66.111.2
as: "{{ bird__asn.rezel }}"
import:
- prefix: "{{ bird__orig_prefixes.rezel }}"
sub: true
accept: true
- accept: false
export:
- bgp_proto:
- edge
- viarezo
- crans
- zayo
accept: true
- prefix: "{{ bird__orig_prefixes.aurore }}"
sub: true
accept: true
- accept: false
- name: rezel2
local:
address: "{{ bird__bgp_addresses.rezel[inventory_hostname] }}"
as: "{{ bird__asn.aurore }}"
remote:
address:
- 2a09:6842:19:9116::4
- 45.66.111.4
as: "{{ bird__asn.rezel }}"
import:
- local_pref: 75
- prefix: "{{ bird__orig_prefixes.rezel }}"
sub: true
accept: true
- accept: false
export:
- bgp_proto:
- edge
- viarezo
- crans
2023-01-13 10:50:23 +01:00
- zayo
accept: true
- prefix: "{{ bird__orig_prefixes.aurore }}"
sub: true
accept: true
- accept: false
2023-03-26 19:02:18 +02:00
# - name: viarezo1
# local:
# address:
# - 192.159.121.134
# - 2a0c:b641:2ff::6
# as: "{{ bird__asn.aurore }}"
# remote:
# address:
# - 192.159.121.133
# - 2a0c:b641:2ff::5
# as: "{{ bird__asn.viarezo }}"
# import:
# - prefix: "{{ bird__orig_prefixes.martians }}"
# accept: false
# - prefix: "{{ bird__orig_prefixes.viarezo }}"
# sub: true
# negate: true
# local_pref: 50
# - accept: true
# export:
# - prefix: "{{ bird__orig_prefixes.aurore }}"
# as_prepend:
# asn: "{{ bird__asn.aurore }}"
# size: 5
# - bgp_proto:
# - crans
# - zayo
# accept: true
# - accept: false
2023-01-07 03:19:40 +01:00
bird__ospf_broadcast_interfaces:
2023-04-04 01:33:16 +02:00
back0: null
2023-01-07 03:19:40 +01:00
bird__ospf_stub_interfaces:
2023-03-27 21:51:07 +02:00
- crans0
- zayo0
- rezel0
- viarezo0
2023-01-13 10:50:23 +01:00
bird__static_unreachable: "{{ bird__orig_prefixes.aurore }}"
2022-12-21 21:02:12 +01:00
roles:
- bird
...