forked from KusakabeShi/ospf-ibgp-generator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ospf_pub.conf
67 lines (61 loc) · 1.92 KB
/
ospf_pub.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function ospf_filter_{{ netname }}() {
case net.type{
{% if ipv4 is defined and ipv4 != None %} NET_IP4: return net ~ [ {{allow_nets_v4}}{32,32} ];{% endif %}
{% if ipv6 is defined and ipv6 != None %} NET_IP6: return net ~ [ {{allow_nets_v6}}{128,128}];{% endif %}
}
return false;
}
{% if ipv4 is defined and ipv4 != None %}
protocol static static_ospf_{{ netname }}_v4 {
route {{ ipv4 }}/32 unreachable;
route {{ allow_nets_v4 }} unreachable;
ipv4 {
import all;
export none;
};
}
protocol ospf v3 ospf_{{ netname }}_v4 {
ipv4 {
import where ospf_filter_{{ netname }}();
export where ospf_filter_{{ netname }}();
};
area {{ area_id }} {
{% for iface in interfaces %} interface "{{ iface.name }}" { cost {{ iface.cost }}; hello 5; retransmit 2; wait 10; dead 20; type ptp; };
{% endfor %}
};
}
{% endif %}
{% if ipv6 is defined and ipv6 != None %}
protocol static static_ospf_{{ netname }}_v6 {
route {{ ipv6 }}/128 unreachable;
ipv6 {
import filter {
bgp_large_community.add((PUB_COMMUNITY, 1,0)); # do not send to ibgp
bgp_large_community.add((PUB_COMMUNITY, 2,0)); # do not send to ebgp
accept;
};
export none;
};
}
protocol static static_ospf_{{ netname }}_a_v6 {
route {{ allow_nets_v6 }} unreachable;
ipv6 {
import filter {
ebgp_import(PUB_MYASN, "downstream", 0, prefix_all_v6 , [0]);
bgp_community.add((174,140));
accept;
};
export none;
};
}
protocol ospf v3 ospf_{{ netname }}_v6 {
ipv6 {
import where ospf_filter_{{ netname }}();
export where ospf_filter_{{ netname }}();
};
area {{ area_id }} {
{% for iface in interfaces %} interface "{{ iface.name }}" { cost {{ iface.cost }}; hello 5; retransmit 2; wait 10; dead 20; type ptp; };
{% endfor %}
};
}
{% endif %}