[bird2] Now using bird2
							parent
							
								
									1fbfb2f9a6
								
							
						
					
					
						commit
						34243f83cd
					
				| 
						 | 
					@ -1,60 +1,49 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
loc_bird:
 | 
					loc_bird:
 | 
				
			||||||
 | 
					  id: 185.230.79.253
 | 
				
			||||||
 | 
					  asn:
 | 
				
			||||||
 | 
					    crans: 204515
 | 
				
			||||||
 | 
					    aurore: 43619
 | 
				
			||||||
 | 
					    viarezo: 212424
 | 
				
			||||||
 | 
					  static:
 | 
				
			||||||
    ipv4:
 | 
					    ipv4:
 | 
				
			||||||
    id: 185.230.79.253
 | 
					      - route 185.230.76.0/22 unreachable
 | 
				
			||||||
    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+
 | 
					 | 
				
			||||||
    ipv6:
 | 
					    ipv6:
 | 
				
			||||||
    id: 185.230.79.253
 | 
					      - route 2a0c:700::/32 unreachable
 | 
				
			||||||
    binds:
 | 
					  bgp:
 | 
				
			||||||
      - 2a0c:b641:2f3::2
 | 
					    - name: aurore4
 | 
				
			||||||
      - 2a0c:700:28::1
 | 
					      description: "BGP4 session with aurore"
 | 
				
			||||||
    statics:
 | 
					 | 
				
			||||||
      - 2a0c:700::/32
 | 
					 | 
				
			||||||
    bgps:
 | 
					 | 
				
			||||||
      - name: viarezo
 | 
					 | 
				
			||||||
        allow_local_as: 1
 | 
					 | 
				
			||||||
      local:
 | 
					      local:
 | 
				
			||||||
          as: 204515
 | 
					        asn: crans
 | 
				
			||||||
          address: 2a0c:b641:2f3::2
 | 
					        addr: 185.230.79.253
 | 
				
			||||||
        remote:
 | 
					      neighbor:
 | 
				
			||||||
          as: 212424
 | 
					        asn: aurore
 | 
				
			||||||
          address: 2a0c:b641:2f3::1
 | 
					        addr: 185.230.79.254
 | 
				
			||||||
        allow_export_prefixes:
 | 
					      ipv4: true
 | 
				
			||||||
          - 2a0c:700::/32+
 | 
					    - name: aurore6
 | 
				
			||||||
      - name: aurore
 | 
					      description: "BGP6 session with aurore"
 | 
				
			||||||
        allow_local_as: 1
 | 
					 | 
				
			||||||
      local:
 | 
					      local:
 | 
				
			||||||
          as: 204515
 | 
					        asn: crans
 | 
				
			||||||
          address: 2a0c:700:28::1
 | 
					        addr: 2a0c:700:28::1
 | 
				
			||||||
        remote:
 | 
					      neighbor:
 | 
				
			||||||
          as: 43619
 | 
					        asn: aurore
 | 
				
			||||||
          address: 2a0c:700:28::2
 | 
					        addr: 2a0c:700:28::2
 | 
				
			||||||
        allow_export_prefixes:
 | 
					      ipv6: true
 | 
				
			||||||
          - 2a0c:700::/32+
 | 
					    - 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:
 | 
					loc_bird:
 | 
				
			||||||
 | 
					  id: 185.230.79.253
 | 
				
			||||||
 | 
					  asn:
 | 
				
			||||||
 | 
					    crans: 204515
 | 
				
			||||||
 | 
					    aurore: 43619
 | 
				
			||||||
 | 
					    viarezo: 212424
 | 
				
			||||||
 | 
					  static:
 | 
				
			||||||
    ipv4:
 | 
					    ipv4:
 | 
				
			||||||
    id: 185.230.79.253
 | 
					      - route 185.230.76.0/22 unreachable
 | 
				
			||||||
    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+
 | 
					 | 
				
			||||||
    ipv6:
 | 
					    ipv6:
 | 
				
			||||||
    id: 185.230.79.253
 | 
					      - route 2a0c:700::/32 unreachable
 | 
				
			||||||
    binds:
 | 
					  bgp:
 | 
				
			||||||
      - 2a0c:b641:2f3::2
 | 
					    - name: aurore4
 | 
				
			||||||
      - 2a0c:700:28::1
 | 
					      description: "BGP4 session with aurore"
 | 
				
			||||||
    statics:
 | 
					 | 
				
			||||||
      - 2a0c:700::/32
 | 
					 | 
				
			||||||
    bgps:
 | 
					 | 
				
			||||||
      - name: viarezo
 | 
					 | 
				
			||||||
        allow_local_as: 1
 | 
					 | 
				
			||||||
      local:
 | 
					      local:
 | 
				
			||||||
          as: 204515
 | 
					        asn: crans
 | 
				
			||||||
          address: 2a0c:b641:2f3::2
 | 
					        addr: 185.230.79.253
 | 
				
			||||||
        remote:
 | 
					      neighbor:
 | 
				
			||||||
          as: 212424
 | 
					        asn: aurore
 | 
				
			||||||
          address: 2a0c:b641:2f3::1
 | 
					        addr: 185.230.79.254
 | 
				
			||||||
        allow_export_prefixes:
 | 
					      ipv4: true
 | 
				
			||||||
          - 2a0c:700::/32+
 | 
					    - name: aurore6
 | 
				
			||||||
      - name: aurore
 | 
					      description: "BGP6 session with aurore"
 | 
				
			||||||
        allow_local_as: 1
 | 
					 | 
				
			||||||
      local:
 | 
					      local:
 | 
				
			||||||
          as: 204515
 | 
					        asn: crans
 | 
				
			||||||
          address: 2a0c:700:28::1
 | 
					        addr: 2a0c:700:28::1
 | 
				
			||||||
        remote:
 | 
					      neighbor:
 | 
				
			||||||
          as: 43619
 | 
					        asn: aurore
 | 
				
			||||||
          address: 2a0c:700:28::2
 | 
					        addr: 2a0c:700:28::2
 | 
				
			||||||
        allow_export_prefixes:
 | 
					      ipv6: true
 | 
				
			||||||
          - 2a0c:700::/32+
 | 
					    - 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:
 | 
					  vars:
 | 
				
			||||||
    bird: '{{ glob_bird | default({}) | combine(loc_bird | default({})) }}'
 | 
					    bird: '{{ glob_bird | default({}) | combine(loc_bird | default({})) }}'
 | 
				
			||||||
  roles:
 | 
					  roles:
 | 
				
			||||||
    - bird
 | 
					    - bird2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,27 +1,36 @@
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
- name: Install BIRD
 | 
					- name: PLEASE STOP
 | 
				
			||||||
  apt:
 | 
					  pause:
 | 
				
			||||||
    update_cache: true
 | 
					    prompt: "{{ item }}"
 | 
				
			||||||
    name:
 | 
					  loop:
 | 
				
			||||||
      - bird
 | 
					    - APPUIE SUR ^C TOUT DE SUITE ET LANCE LE RÔLE BIRD2 !
 | 
				
			||||||
  register: apt_result
 | 
					    - NAN MAIS VRAIMENT
 | 
				
			||||||
  retries: 3
 | 
					    - GENRE ARRÈTE
 | 
				
			||||||
  until: apt_result is succeeded
 | 
					    - ON T'AURA PRÉVENU
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Deploy bird configuration
 | 
					#- name: Install BIRD
 | 
				
			||||||
  template:
 | 
					#  apt:
 | 
				
			||||||
    src: bird/bird.conf.j2
 | 
					#    update_cache: true
 | 
				
			||||||
    dest: /etc/bird/bird.conf
 | 
					#    name:
 | 
				
			||||||
    mode: 0640
 | 
					#      - bird
 | 
				
			||||||
    owner: bird
 | 
					#  register: apt_result
 | 
				
			||||||
    group: bird
 | 
					#  retries: 3
 | 
				
			||||||
  notify: reload bird
 | 
					#  until: apt_result is succeeded
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Deploy bird6 configuration
 | 
					#- name: Deploy bird configuration
 | 
				
			||||||
  template:
 | 
					#  template:
 | 
				
			||||||
    src: bird/bird6.conf.j2
 | 
					#    src: bird/bird.conf.j2
 | 
				
			||||||
    dest: /etc/bird/bird6.conf
 | 
					#    dest: /etc/bird/bird.conf
 | 
				
			||||||
    mode: 0640
 | 
					#    mode: 0640
 | 
				
			||||||
    owner: bird
 | 
					#    owner: bird
 | 
				
			||||||
    group: bird
 | 
					#    group: bird
 | 
				
			||||||
  notify: reload bird6
 | 
					#  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