|
| 1 | +! |
| 2 | +{% block banner %} |
| 3 | +! =========== Managed by sonic-cfggen DO NOT edit manually! ==================== |
| 4 | +! generated by templates/quagga/bgpd.conf.j2 using minigraph_facts.py |
| 5 | +! file: bgpd.conf |
| 6 | +! |
| 7 | +{% endblock banner %} |
| 8 | +! |
| 9 | +{% block system_init %} |
| 10 | +hostname {{ inventory_hostname }} |
| 11 | +password zebra |
| 12 | +log syslog informational |
| 13 | +log facility local4 |
| 14 | +! enable password {# {{ en_passwd }} TODO: param needed #} |
| 15 | +{% endblock system_init %} |
| 16 | +! |
| 17 | +{% block bgp_init %} |
| 18 | +! |
| 19 | +! bgp multiple-instance |
| 20 | +! |
| 21 | +router bgp {{ minigraph_bgp_asn }} |
| 22 | + bgp log-neighbor-changes |
| 23 | + bgp bestpath as-path multipath-relax |
| 24 | +{# TODO: use lo[0] for backward compatibility, will revisit the case with multiple lo interfaces #} |
| 25 | + bgp router-id {{ minigraph_lo_interfaces[0]['addr'] }} |
| 26 | +{# advertise loopback #} |
| 27 | +{% for lo in minigraph_lo_interfaces %} |
| 28 | +{% if lo['addr'] | ipv4 %} |
| 29 | + network {{ lo['addr'] }}/32 |
| 30 | +{% elif lo['addr'] | ipv6 %} |
| 31 | + address-family ipv6 |
| 32 | + network {{ lo['addr'] }}/128 |
| 33 | + exit-address-family |
| 34 | +{% endif %} |
| 35 | +{% endfor %} |
| 36 | +{% endblock bgp_init %} |
| 37 | +{% block vlan_advertisement %} |
| 38 | +{% for vlan_interface in minigraph_vlan_interfaces %} |
| 39 | + network {{ vlan_interface['subnet'] }} |
| 40 | +{% endfor %} |
| 41 | +{% endblock vlan_advertisement %} |
| 42 | +{% block bgp_sessions %} |
| 43 | +{% for bgp_session in minigraph_bgp %} |
| 44 | +{% if bgp_session['asn'] != 0 %} |
| 45 | + neighbor {{ bgp_session['addr'] }} remote-as {{ bgp_session['asn'] }} |
| 46 | + neighbor {{ bgp_session['addr'] }} description {{ bgp_session['name'] }} |
| 47 | +{% if minigraph_devices[inventory_hostname]['type'] == 'ToRRouter' %} |
| 48 | + neighbor {{ bgp_session['addr'] }} allowas-in 1 |
| 49 | +{% endif %} |
| 50 | +{% if bgp_session['addr'] | ipv6 %} |
| 51 | + address-family ipv6 |
| 52 | + neighbor {{ bgp_session['addr'] }} activate |
| 53 | + maximum-paths 64 |
| 54 | + exit-address-family |
| 55 | +{% endif %} |
| 56 | +{% endif %} |
| 57 | +{% endfor %} |
| 58 | +{% endblock bgp_sessions %} |
| 59 | +! |
| 60 | +maximum-paths 64 |
| 61 | +! |
| 62 | +route-map ISOLATE permit 10 |
| 63 | +set as-path prepend {{ minigraph_bgp_asn }} |
| 64 | +! |
0 commit comments