[bird2] Now using bird2
parent
1fbfb2f9a6
commit
34243f83cd
|
@ -1,60 +1,49 @@
|
|||
---
|
||||
loc_bird:
|
||||
id: 185.230.79.253
|
||||
asn:
|
||||
crans: 204515
|
||||
aurore: 43619
|
||||
viarezo: 212424
|
||||
static:
|
||||
ipv4:
|
||||
id: 185.230.79.253
|
||||
binds:
|
||||
- 138.195.159.250
|
||||
- 185.230.79.253
|
||||
statics:
|
||||
- 185.230.76.0/22
|
||||
kernel_filter:
|
||||
- 185.230.78.0/24
|
||||
bgps:
|
||||
- name: viarezo
|
||||
allow_local_as: 1
|
||||
local:
|
||||
as: 204515
|
||||
address: 138.195.159.250
|
||||
remote:
|
||||
as: 212424
|
||||
address: 138.195.159.249
|
||||
allow_export_prefixes:
|
||||
- 185.230.76.0/22+
|
||||
- name: aurore
|
||||
allow_local_as: 1
|
||||
local:
|
||||
as: 204515
|
||||
address: 185.230.79.253
|
||||
remote:
|
||||
as: 43619
|
||||
address: 185.230.79.254
|
||||
allow_export_prefixes:
|
||||
- 185.230.76.0/22+
|
||||
- route 185.230.76.0/22 unreachable
|
||||
ipv6:
|
||||
id: 185.230.79.253
|
||||
binds:
|
||||
- 2a0c:b641:2f3::2
|
||||
- 2a0c:700:28::1
|
||||
statics:
|
||||
- 2a0c:700::/32
|
||||
bgps:
|
||||
- name: viarezo
|
||||
allow_local_as: 1
|
||||
- route 2a0c:700::/32 unreachable
|
||||
bgp:
|
||||
- name: aurore4
|
||||
description: "BGP4 session with aurore"
|
||||
local:
|
||||
as: 204515
|
||||
address: 2a0c:b641:2f3::2
|
||||
remote:
|
||||
as: 212424
|
||||
address: 2a0c:b641:2f3::1
|
||||
allow_export_prefixes:
|
||||
- 2a0c:700::/32+
|
||||
- name: aurore
|
||||
allow_local_as: 1
|
||||
asn: crans
|
||||
addr: 185.230.79.253
|
||||
neighbor:
|
||||
asn: aurore
|
||||
addr: 185.230.79.254
|
||||
ipv4: true
|
||||
- name: aurore6
|
||||
description: "BGP6 session with aurore"
|
||||
local:
|
||||
as: 204515
|
||||
address: 2a0c:700:28::1
|
||||
remote:
|
||||
as: 43619
|
||||
address: 2a0c:700:28::2
|
||||
allow_export_prefixes:
|
||||
- 2a0c:700::/32+
|
||||
asn: crans
|
||||
addr: 2a0c:700:28::1
|
||||
neighbor:
|
||||
asn: aurore
|
||||
addr: 2a0c:700:28::2
|
||||
ipv6: true
|
||||
- name: viarezo4
|
||||
description: "BGP4 session with viarezo"
|
||||
local:
|
||||
asn: crans
|
||||
addr: 138.195.159.250
|
||||
neighbor:
|
||||
asn: viarezo
|
||||
addr: 138.195.159.249
|
||||
ipv4: true
|
||||
- name: viarezo6
|
||||
description: "BGP6 session with viarezo"
|
||||
local:
|
||||
asn: crans
|
||||
addr: 2a0c:b641:2f3::2
|
||||
neighbor:
|
||||
asn: viarezo
|
||||
addr: 2a0c:b641:2f3::1
|
||||
ipv6: true
|
||||
|
|
|
@ -1,60 +1,49 @@
|
|||
---
|
||||
loc_bird:
|
||||
id: 185.230.79.253
|
||||
asn:
|
||||
crans: 204515
|
||||
aurore: 43619
|
||||
viarezo: 212424
|
||||
static:
|
||||
ipv4:
|
||||
id: 185.230.79.253
|
||||
binds:
|
||||
- 138.195.159.250
|
||||
- 185.230.79.253
|
||||
statics:
|
||||
- 185.230.76.0/22
|
||||
kernel_filter:
|
||||
- 185.230.78.0/24
|
||||
bgps:
|
||||
- name: viarezo
|
||||
allow_local_as: 1
|
||||
local:
|
||||
as: 204515
|
||||
address: 138.195.159.250
|
||||
remote:
|
||||
as: 212424
|
||||
address: 138.195.159.249
|
||||
allow_export_prefixes:
|
||||
- 185.230.76.0/22+
|
||||
- name: aurore
|
||||
allow_local_as: 1
|
||||
local:
|
||||
as: 204515
|
||||
address: 185.230.79.253
|
||||
remote:
|
||||
as: 43619
|
||||
address: 185.230.79.254
|
||||
allow_export_prefixes:
|
||||
- 185.230.76.0/22+
|
||||
- route 185.230.76.0/22 unreachable
|
||||
ipv6:
|
||||
id: 185.230.79.253
|
||||
binds:
|
||||
- 2a0c:b641:2f3::2
|
||||
- 2a0c:700:28::1
|
||||
statics:
|
||||
- 2a0c:700::/32
|
||||
bgps:
|
||||
- name: viarezo
|
||||
allow_local_as: 1
|
||||
- route 2a0c:700::/32 unreachable
|
||||
bgp:
|
||||
- name: aurore4
|
||||
description: "BGP4 session with aurore"
|
||||
local:
|
||||
as: 204515
|
||||
address: 2a0c:b641:2f3::2
|
||||
remote:
|
||||
as: 212424
|
||||
address: 2a0c:b641:2f3::1
|
||||
allow_export_prefixes:
|
||||
- 2a0c:700::/32+
|
||||
- name: aurore
|
||||
allow_local_as: 1
|
||||
asn: crans
|
||||
addr: 185.230.79.253
|
||||
neighbor:
|
||||
asn: aurore
|
||||
addr: 185.230.79.254
|
||||
ipv4: true
|
||||
- name: aurore6
|
||||
description: "BGP6 session with aurore"
|
||||
local:
|
||||
as: 204515
|
||||
address: 2a0c:700:28::1
|
||||
remote:
|
||||
as: 43619
|
||||
address: 2a0c:700:28::2
|
||||
allow_export_prefixes:
|
||||
- 2a0c:700::/32+
|
||||
asn: crans
|
||||
addr: 2a0c:700:28::1
|
||||
neighbor:
|
||||
asn: aurore
|
||||
addr: 2a0c:700:28::2
|
||||
ipv6: true
|
||||
- name: viarezo4
|
||||
description: "BGP4 session with viarezo"
|
||||
local:
|
||||
asn: crans
|
||||
addr: 138.195.159.250
|
||||
neighbor:
|
||||
asn: viarezo
|
||||
addr: 138.195.159.249
|
||||
ipv4: true
|
||||
- name: viarezo6
|
||||
description: "BGP6 session with viarezo"
|
||||
local:
|
||||
asn: crans
|
||||
addr: 2a0c:b641:2f3::2
|
||||
neighbor:
|
||||
asn: viarezo
|
||||
addr: 2a0c:b641:2f3::1
|
||||
ipv6: true
|
||||
|
|
|
@ -4,4 +4,4 @@
|
|||
vars:
|
||||
bird: '{{ glob_bird | default({}) | combine(loc_bird | default({})) }}'
|
||||
roles:
|
||||
- bird
|
||||
- bird2
|
||||
|
|
|
@ -1,27 +1,36 @@
|
|||
---
|
||||
- name: Install BIRD
|
||||
apt:
|
||||
update_cache: true
|
||||
name:
|
||||
- bird
|
||||
register: apt_result
|
||||
retries: 3
|
||||
until: apt_result is succeeded
|
||||
- name: PLEASE STOP
|
||||
pause:
|
||||
prompt: "{{ item }}"
|
||||
loop:
|
||||
- APPUIE SUR ^C TOUT DE SUITE ET LANCE LE RÔLE BIRD2 !
|
||||
- NAN MAIS VRAIMENT
|
||||
- GENRE ARRÈTE
|
||||
- ON T'AURA PRÉVENU
|
||||
|
||||
- name: Deploy bird configuration
|
||||
template:
|
||||
src: bird/bird.conf.j2
|
||||
dest: /etc/bird/bird.conf
|
||||
mode: 0640
|
||||
owner: bird
|
||||
group: bird
|
||||
notify: reload bird
|
||||
#- name: Install BIRD
|
||||
# apt:
|
||||
# update_cache: true
|
||||
# name:
|
||||
# - bird
|
||||
# register: apt_result
|
||||
# retries: 3
|
||||
# until: apt_result is succeeded
|
||||
|
||||
- name: Deploy bird6 configuration
|
||||
template:
|
||||
src: bird/bird6.conf.j2
|
||||
dest: /etc/bird/bird6.conf
|
||||
mode: 0640
|
||||
owner: bird
|
||||
group: bird
|
||||
notify: reload bird6
|
||||
#- name: Deploy bird configuration
|
||||
# template:
|
||||
# src: bird/bird.conf.j2
|
||||
# dest: /etc/bird/bird.conf
|
||||
# mode: 0640
|
||||
# owner: bird
|
||||
# group: bird
|
||||
# notify: reload bird
|
||||
|
||||
#- name: Deploy bird6 configuration
|
||||
# template:
|
||||
# src: bird/bird6.conf.j2
|
||||
# dest: /etc/bird/bird6.conf
|
||||
# mode: 0640
|
||||
# owner: bird
|
||||
# group: bird
|
||||
# notify: reload bird6
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
- name: systemctl status bird.service
|
||||
service_facts:
|
||||
listen: 'systemctl reload bird.service'
|
||||
|
||||
- name: systemctl reload bird.service
|
||||
pause:
|
||||
prompt: |-
|
||||
On a préféré ne pas redemarrer bird automatiquement.
|
||||
Du coup, c'est à toi de t'en occuper:
|
||||
- si tu as modifié quelque chose qui forcera le logiciel à ouvrir (ou fermer) un nouveau socket, tu dois le restart
|
||||
- sinon tu peux te contenter de le reload
|
||||
Quand c'est fait appuie sur ENTRÉE
|
||||
when: not ansible_check_mode and ansible_facts.services['bird']['state'] == 'running'
|
||||
|
||||
- name: systemctl stop bird.service
|
||||
systemd:
|
||||
name: bird.service
|
||||
state: stopped
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
- name: Install BIRD2
|
||||
apt:
|
||||
update_cache: true
|
||||
name:
|
||||
- bird2
|
||||
register: apt_result
|
||||
retries: 3
|
||||
until: apt_result is succeeded
|
||||
notify: systemctl stop bird.service
|
||||
|
||||
- name: systemctl disable bird.service
|
||||
systemd:
|
||||
name: bird.service
|
||||
enabled: false
|
||||
|
||||
- name: Deploy bird configuration
|
||||
template:
|
||||
src: bird/bird.conf.j2
|
||||
dest: /etc/bird/bird.conf
|
||||
mode: 0640
|
||||
owner: bird
|
||||
group: bird
|
||||
notify: systemctl reload bird.service
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
{{ ansible_header | comment }}
|
||||
|
||||
# This is a basic configuration file, which contains boilerplate options and
|
||||
# some basic examples. It allows the BIRD daemon to start but will not cause
|
||||
# anything else to happen.
|
||||
#
|
||||
# Please refer to the BIRD User's Guide documentation, which is also available
|
||||
# online at http://bird.network.cz/ in HTML format, for more information on
|
||||
# configuring BIRD and adding routing protocols.
|
||||
|
||||
# Configure logging
|
||||
log syslog all;
|
||||
|
||||
# Set router ID. It is a unique identification of your router, usually one of
|
||||
# IPv4 addresses of the router. It is recommended to configure it explicitly.
|
||||
router id {{ bird.id }};
|
||||
|
||||
# Turn on global debugging of all protocols (all messages or just selected classes)
|
||||
# debug protocols all;
|
||||
|
||||
# +----------------------+
|
||||
# | CONSTANT DEFINITIONS |
|
||||
# +----------------------+
|
||||
{% for key,value in bird.asn.items() %}
|
||||
define {{ key }}_asn = {{ value }};
|
||||
{% endfor %}
|
||||
|
||||
# +---------------+
|
||||
# | NOT PROTOCOLS |
|
||||
# +---------------+
|
||||
# The Device protocol is not a real routing protocol. It does not generate any
|
||||
# routes and it only serves as a module for getting information about network
|
||||
# interfaces from the kernel. It is necessary in almost any configuration.
|
||||
protocol device {}
|
||||
|
||||
# The Kernel protocol is not a real routing protocol. Instead of communicating
|
||||
# with other routers in the network, it performs synchronization of BIRD
|
||||
# routing tables with the OS kernel. One instance per table.
|
||||
protocol kernel {
|
||||
ipv4 {
|
||||
import none;
|
||||
export all;
|
||||
};
|
||||
}
|
||||
|
||||
protocol kernel {
|
||||
ipv6 {
|
||||
import none;
|
||||
export all;
|
||||
};
|
||||
}
|
||||
|
||||
protocol static {
|
||||
ipv4;
|
||||
{% for route in bird.static.ipv4 %}
|
||||
{{ route }};
|
||||
{% endfor %}
|
||||
}
|
||||
|
||||
protocol static {
|
||||
ipv6;
|
||||
{% for route in bird.static.ipv6 %}
|
||||
{{ route }};
|
||||
{% endfor %}
|
||||
}
|
||||
|
||||
# +---------------+
|
||||
# | BGP PROTOCOLS |
|
||||
# +---------------+
|
||||
{% for protocol in bird.bgp %}
|
||||
protocol bgp {{ protocol.name }} {
|
||||
description "{{ protocol.description }}";
|
||||
local {{ protocol.local.addr }} as {{ protocol.local.asn }}_asn;
|
||||
neighbor {{ protocol.neighbor.addr }} as {{ protocol.neighbor.asn }}_asn;
|
||||
strict bind;
|
||||
{% if protocol.ipv4 is defined and protocol.ipv4 %}
|
||||
|
||||
ipv4 {
|
||||
import all;
|
||||
export where source ~ [ RTS_STATIC ];
|
||||
};
|
||||
{% endif %}{% if protocol.ipv6 is defined and protocol.ipv6 %}
|
||||
|
||||
ipv6 {
|
||||
import all;
|
||||
export where source ~ [ RTS_STATIC ];
|
||||
};
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
{% endfor %}
|
Loading…
Reference in New Issue