Merge branch 'master' of github.com:/zentralwerk/network

This commit is contained in:
webzwo0i 2016-12-20 15:40:59 +01:00
commit 25d3c89679
22 changed files with 647 additions and 55 deletions

318
doc/flyer.svg Normal file
View File

@ -0,0 +1,318 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="297mm"
height="210mm"
viewBox="0 0 1052.3622 744.09448"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="flyer.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="617.56999"
inkscape:cy="381.77274"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="mm"
inkscape:window-width="1916"
inkscape:window-height="1058"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-308.26772)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:72px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#666666;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="62.705948"
y="395.21933"
id="text4136"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4138"
x="62.705948"
y="395.21933"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:60px;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Medium';fill:#666666;">Datenvernetzung im Zentralwerk</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:72px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1031.665"
y="951.81219"
id="text4140"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4142"
x="1031.665"
y="951.81219"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'">https://lists.c3d2.de/</tspan><tspan
sodipodi:role="line"
x="1031.665"
y="989.31219"
id="tspan4144"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'">cgi-bin/mailman/</tspan><tspan
sodipodi:role="line"
x="1031.665"
y="1026.8123"
id="tspan4146"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'">listinfo/zw</tspan></text>
<image
y="518.31494"
x="-15.999974"
id="image4250"
xlink:href="data:image/png;base64,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
TkSuQmCC
"
style="image-rendering:optimizeSpeed"
preserveAspectRatio="none"
height="420"
width="420" />
<image
y="527.31494"
x="655.36218"
id="image4315"
xlink:href="data:image/png;base64,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
AABJRU5ErkJggg==
"
style="image-rendering:optimizeSpeed"
preserveAspectRatio="none"
height="397"
width="397" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="18.42"
y="497.36221"
id="text4318"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4320"
x="18.42"
y="497.36221">Informationen</tspan><tspan
sodipodi:role="line"
x="18.42"
y="534.86218"
id="tspan4361">zum Anschluß</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1030.6841"
y="463.36221"
id="text4322"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4324"
x="1030.6841"
y="463.36221">E-Mail-Liste zur</tspan><tspan
sodipodi:role="line"
x="1030.6841"
y="500.86221"
id="tspan4326">nachbarschaftlichen</tspan><tspan
sodipodi:role="line"
x="1030.6841"
y="538.36218"
id="tspan4328">Koordination</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="18.92"
y="951.81219"
id="text4148"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4150"
x="18.92"
y="951.81219"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'">https://github.com/</tspan><tspan
sodipodi:role="line"
x="18.92"
y="989.31219"
id="tspan4154"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'">zentralwerk/</tspan><tspan
sodipodi:role="line"
x="18.92"
y="1026.8123"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="tspan4332">network</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="525.64789"
y="956.91223"
id="text4334"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4336"
x="525.64789"
y="956.91223"
style="text-align:center;text-anchor:middle;fill:#808080">Sprechzeiten:</tspan><tspan
sodipodi:role="line"
x="525.64789"
y="994.41223"
id="tspan4338"
style="text-align:center;text-anchor:middle;fill:#808080">Di + Do 16:00-18:00</tspan><tspan
sodipodi:role="line"
x="525.64789"
y="1031.9122"
style="text-align:center;text-anchor:middle;fill:#808080"
id="tspan4340">Haus B Mitte Souterrain</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -50,6 +50,19 @@ bestellen und konfigurieren wir ihn.
![TL-WR841N](https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/TP-Link_TL-WR841N-2920.jpg/240px-TP-Link_TL-WR841N-2920.jpg) ![TL-WR841N](https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/TP-Link_TL-WR841N-2920.jpg/240px-TP-Link_TL-WR841N-2920.jpg)
### Netzverteilung
Auch möglich sind diese Konfigurationen:
* Ihr wohnt nebenan und möchtet euch einen WLAN-Router teilen? Dann
könnt ihr trotzdem individuell verschlüsselte private Subnetze
haben.
* Du hast mehrere Büros oder Büro und Wohnung im Haus? Auf diese
Datendosen und WLAN-Router können wir dein Subnetz legen, auch wenn
sie an verschiedenen Orten im Haus sind. In einem Subnetz sind
Geräte wie zum Beispiel Drucker direkt auffindbar.
### Alternative: Eigener alter WLAN-Router ### Alternative: Eigener alter WLAN-Router
@ -57,10 +70,11 @@ Selbstverständlich wollen wir nichts brauchbares wegwerfen. Zuerst
würden wir uns das Gerät anschauen und uns für einen der folgenden würden wir uns das Gerät anschauen und uns für einen der folgenden
Wege entscheiden: Wege entscheiden:
1. Entweder das Gerät wird von [OpenWRT](https://openwrt.org/) 1. Entweder das Gerät wird
oder [LEDE](https://lede-project.org/) unterstützt, dann können wir von [OpenWRT](https://wiki.openwrt.org/toh/start)
das Gerät analog zu den obigen Modellen mit privatem und Gäste-WLAN oder [LEDE](https://lede-project.org/toh/views/toh_available_864)
einrichten. unterstützt, dann können wir das Gerät analog zu den obigen
Modellen mit privatem und Gäste-WLAN einrichten.
2. Alternativ versuchen wir einfach Kabelanschlüsse und WLAN direkt zu 2. Alternativ versuchen wir einfach Kabelanschlüsse und WLAN direkt zu
verbinden. Damit könnten wir entweder Gästenetz oder dein privates verbinden. Damit könnten wir entweder Gästenetz oder dein privates
@ -87,6 +101,31 @@ Bei der Bestellung nehmt ihr das billigste Kabelmodem, nicht die
Fritzbox. Um WLAN kümmern wir uns schließlich. Fritzbox. Um WLAN kümmern wir uns schließlich.
### Warum Internetanschluß routen lassen…
…statt direkt das Kabelmodem zu verwenden?
* Wir optimieren die ausgehende Bandbreite um
das [Bufferbloat](https://en.wikipedia.org/wiki/Bufferbloat)-Problem
zu umgehen.
* Du könntest deinen Internetanschluß mit Nachbarn teilen.
* Wir ermöglichen gleichzeitig Zugang zum internen Zentralwerk-Netz.
### Kabeldose in der Wohnung?
…und nicht im Keller? Wir können die oben genannten Ziele trotzdem
erreichen wenn du einen der von uns konfigurierten Router nutzt.
## Statische IPv6-Adressen
Du willst weltweit erreichbar sein mit dem Internet-Protokoll der
Zukunft? Kein Problem: wir verfügen über eine Menge statischer
IPv6-Adressen über den Tunnel-Broker [SixXS](https://www.sixxs.net/)
mit mehreren schnellen Zugangspunkten in geographischer Nähe.
# Alternative: Isolation # Alternative: Isolation
Du trägst Bedenken und fühlst dich ohne uns im Internet besser aufgehoben? Du trägst Bedenken und fühlst dich ohne uns im Internet besser aufgehoben?
@ -101,3 +140,6 @@ Kabelmodem und deine Datendose bekommen.
Dienstags und Donnerstags 16:00-18:00 Uhr Dienstags und Donnerstags 16:00-18:00 Uhr
[C3D2](https://www.c3d2.de/space.html), Haus B Souterrain, genau in der Mitte [C3D2](https://www.c3d2.de/space.html), Haus B Souterrain, genau in der Mitte
![Kernnetz visualisiert von eri!](core.png)

View File

@ -106,3 +106,76 @@ hosts-inet:
c3d2: c3d2:
c3d2-anon: 172.22.99.1 c3d2-anon: 172.22.99.1
c3d2-gw: 172.22.99.4 c3d2-gw: 172.22.99.4
hosts-inet6:
core:
server1: fd23:42:c3d2:581::1
anon1: fd23:42:c3d2:581::9:1
serv-gw: fd23:42:c3d2:581::8:1
pub-gw: fd23:42:c3d2:581::8:2
c3d2-gw: fd23:42:c3d2:581::c3d2:1
c3d2-anon: fd23:42:c3d2:581::c3d2:a
upstream1: fd23:42:c3d2:581::b:0
upstream2: fd23:42:c3d2:581::b:1
upstream3: fd23:42:c3d2:581::b:2
upstream4: fd23:42:c3d2:581::b:3
priv1-gw: fd23:42:c3d2:581::c:0
priv2-gw: fd23:42:c3d2:581::c:1
priv3-gw: fd23:42:c3d2:581::c:2
priv4-gw: fd23:42:c3d2:581::c:3
priv5-gw: fd23:42:c3d2:581::c:4
priv6-gw: fd23:42:c3d2:581::c:5
priv7-gw: fd23:42:c3d2:581::c:6
priv8-gw: fd23:42:c3d2:581::c:7
priv9-gw: fd23:42:c3d2:581::c:8
priv10-gw: fd23:42:c3d2:581::c:9
priv11-gw: fd23:42:c3d2:581::c:a
priv12-gw: fd23:42:c3d2:581::c:b
priv13-gw: fd23:42:c3d2:581::c:c
priv14-gw: fd23:42:c3d2:581::c:d
priv15-gw: fd23:42:c3d2:581::c:e
priv16-gw: fd23:42:c3d2:581::c:d
serv:
serv-gw: fd23:42:c3d2:582::1
pub:
pub-gw: fd23:42:c3d2:583::1
priv1:
priv1-gw: fd23:42:c3d2:5c0::1
priv2:
priv2-gw: fd23:42:c3d2:5c1::1
priv3:
priv3-gw: fd23:42:c3d2:5c2::1
priv4:
priv4-gw: fd23:42:c3d2:5c3::1
priv5:
priv5-gw: fd23:42:c3d2:5c4::1
priv6:
priv6-gw: fd23:42:c3d2:5c5::1
priv7:
priv7-gw: fd23:42:c3d2:5c6::1
priv8:
priv8-gw: fd23:42:c3d2:5c7::1
priv9:
priv9-gw: fd23:42:c3d2:5c8::1
priv10:
priv10-gw: fd23:42:c3d2:5c9::1
priv11:
priv11-gw: fd23:42:c3d2:5ca::1
priv12:
priv12-gw: fd23:42:c3d2:5cb::1
priv13:
priv13-gw: fd23:42:c3d2:5cc::1
priv14:
priv14-gw: fd23:42:c3d2:5cd::1
priv15:
priv15-gw: fd23:42:c3d2:5ce::1
priv16:
priv16-gw: fd23:42:c3d2:5cf::1
c3d2:
c3d2-anon: fd23:42:c3d2:523::c3d2:1
c3d2-gw: fd23:42:c3d2:523::c3d2:4

View File

@ -4,6 +4,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
pub: pub:
type: veth type: veth
@ -20,6 +21,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv1: priv1:
type: phys type: phys
@ -28,6 +30,7 @@ containers:
core: core:
type: veth type: veth
gw: upstream2 gw: upstream2
gw6: upstream2
priv2: priv2:
type: phys type: phys
@ -36,6 +39,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv3: priv3:
type: phys type: phys
@ -44,6 +48,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv4: priv4:
type: phys type: phys
@ -52,6 +57,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv5: priv5:
type: phys type: phys
@ -60,6 +66,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv6: priv6:
type: phys type: phys
@ -68,6 +75,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv7: priv7:
type: phys type: phys
@ -76,6 +84,7 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
priv8: priv8:
type: phys type: phys
@ -114,5 +123,6 @@ containers:
core: core:
type: veth type: veth
gw: anon1 gw: anon1
gw6: anon1
c3d2: c3d2:
type: veth type: veth

View File

@ -20,3 +20,25 @@ subnets-inet:
priv16: 172.20.75.224/28 priv16: 172.20.75.224/28
c3d2: 172.22.99.0/24 c3d2: 172.22.99.0/24
mgmt: 10.0.0.0/24 mgmt: 10.0.0.0/24
subnets-inet6:
core: fd23:42:c3d2:581::/64
serv: fd23:42:c3d2:582::/64
pub: fd23:42:c3d2:583::/64
priv1: fd23:42:c3d2:5c0::/64
priv2: fd23:42:c3d2:5c1::/64
priv3: fd23:42:c3d2:5c2::/64
priv4: fd23:42:c3d2:5c3::/64
priv5: fd23:42:c3d2:5c4::/64
priv6: fd23:42:c3d2:5c5::/64
priv7: fd23:42:c3d2:5c6::/64
priv8: fd23:42:c3d2:5c7::/64
priv9: fd23:42:c3d2:5c8::/64
priv10: fd23:42:c3d2:5c9::/64
priv11: fd23:42:c3d2:5ca::/64
priv12: fd23:42:c3d2:5cb::/64
priv13: fd23:42:c3d2:5cc::/64
priv14: fd23:42:c3d2:5cd::/64
priv15: fd23:42:c3d2:5ce::/64
priv16: fd23:42:c3d2:5cf::/64
c3d2: fd23:42:c3d2:523::/64

View File

@ -3,18 +3,18 @@ base:
- hosts - hosts
- subnets - subnets
- vlans - vlans
- ospf - quagga.ospfd
'priv*-gw': 'priv*-gw':
- dhcp - dhcp
- ospf.gw - quagga.ospfd.gw
'pub-gw': 'pub-gw':
- dhcp - dhcp
- ospf.gw - quagga.ospfd.gw
'serv-gw': 'serv-gw':
- dhcp - dhcp
- ospf.gw - quagga.ospfd.gw
'c3d2-gw or c3d2-anon': 'c3d2-gw or c3d2-anon':
- ospf.gw - quagga.ospfd.gw
'anon1': 'anon1':
- vpn.anon1 - vpn.anon1
- upstream.anon1 - upstream.anon1

View File

@ -1,7 +1,7 @@
upstream: upstream:
interface: up2 interface: up2
nat66-interface: up2 nat66-interface: up2
up-bandwidth: 6200 up-bandwidth: 12400
flow-keys: nfct-src flow-keys: nfct-src
flows: 2048 flows: 2048

View File

@ -22,24 +22,35 @@ lxc.network.hwaddr={{ hwaddr_prefix }}:{{ n.__str__().rjust(2, '0') }}
{%- if conf['type'] == 'veth' %} {%- if conf['type'] == 'veth' %}
lxc.network.veth.pair={{ id }}-{{ net }} lxc.network.veth.pair={{ id }}-{{ net }}
{%- endif %} {%- endif %}
{%- set hosts = pillar['hosts-inet'].get(net) %} {%- set hosts = pillar['hosts-inet'].get(net) %}
{%- set inet_addr = hosts and hosts.get(id) %} {%- set inet_addr = hosts and hosts.get(id) %}
{%- if inet_addr %} {%- if inet_addr %}
{%- set prefix_len = pillar['subnets-inet'][net].split('/')[1] %} {%- set prefix_len = pillar['subnets-inet'][net].split('/')[1] %}
lxc.network.ipv4={{ inet_addr }}/{{ prefix_len }} lxc.network.ipv4={{ inet_addr }}/{{ prefix_len }}
{%- endif %} {%- endif %}
{%- set gw = conf.get('gw') %}
{%- if gw %}
lxc.network.ipv4.gateway={{ pillar['hosts-inet'][net][gw] }}
{%- endif %}
{%- set hosts6 = pillar['hosts-inet6'].get(net) %}
{%- set inet6_addr = hosts6 and hosts6.get(id) %}
{%- if inet6_addr %}
{%- set prefix6_len = pillar['subnets-inet6'][net].split('/')[1] %}
lxc.network.ipv6={{ inet6_addr }}/{{ prefix6_len }}
{%- endif %}
{%- set gw6 = conf.get('gw6') %}
{%- if gw6 %}
lxc.network.ipv6.gateway={{ pillar['hosts-inet6'][net][gw] }}
{%- endif %}
{%- if conf['type'] == 'veth' %} {%- if conf['type'] == 'veth' %}
lxc.network.link=br-{{ net }} lxc.network.link=br-{{ net }}
{%- elif conf['type'] == 'phys' %} {%- elif conf['type'] == 'phys' %}
lxc.network.link=bond0.{{ pillar['vlans'].get(net) }} lxc.network.link=bond0.{{ pillar['vlans'].get(net) }}
{%- endif %} {%- endif %}
lxc.network.name={{ net }} lxc.network.name={{ net }}
{%- set gw = conf.get('gw') %}
{%- if gw %}
lxc.network.ipv4.gateway={{ pillar['hosts-inet'][net][gw] }}
{%- endif %}
#lxc.network.ipv6=
#lxc.network.ipv6.gateway=fe80::1
{%- set n = n + 1 %} {%- set n = n + 1 %}
{%- endfor %} {%- endfor %}

View File

@ -1,31 +0,0 @@
quagga:
pkg.installed: []
{%- for daemon in ['zebra', 'ospfd'] %}
/etc/systemd/system/{{ daemon }}.service:
file.managed:
- source: salt://ospf/{{ daemon }}.service
/etc/quagga/{{ daemon }}.conf:
file.managed:
- source: salt://ospf/{{ daemon }}.conf
- template: 'jinja'
- require:
- pkg: quagga
autostart-{{ daemon }}:
service.enabled:
- name: {{ daemon }}
require:
- file: /etc/systemd/system/{{ daemon }}.service
- file: /etc/quagga/{{ daemon }}.conf
start-{{ daemon }}:
service.running:
- name: {{ daemon }}
require:
- service: autostart-{{ daemon }}
watch:
- file: /etc/quagga/{{ daemon }}.conf
{%- endfor %}

View File

@ -1,2 +0,0 @@
hostname {{ salt['grains.get']('id') }}
log file /var/log/quagga/zebra.log

View File

@ -0,0 +1,25 @@
/etc/systemd/system/ospf6d.service:
file.managed:
- source: salt://quagga/ospf6d/ospf6d.service
/etc/quagga/ospf6d.conf:
file.managed:
- source: salt://quagga/ospf6d/ospf6d.conf
- template: 'jinja'
- require:
- pkg: quagga
autostart-ospf6d:
service.enabled:
- name: ospf6d
require:
- file: /etc/systemd/system/ospf6d.service
- file: /etc/quagga/ospf6d.conf
start-ospf6d:
service.running:
- name: ospf6d
require:
- service: autostart-ospf6d
watch:
- file: /etc/quagga/ospf6d.conf

View File

@ -0,0 +1,25 @@
log file /var/log/quagga/ospfd.log
{%- set id = salt['grains.get']('id') %}
{%- set core_ifaces = ['br-core', 'core'] %}
{%- for iface in core_ifaces %}
interface {{ iface }}
ipv6 ospf6 network broadcast
{%- endfor %}
router ospf6
router-id {{ pillar['hosts-inet']['core'][id] }}
{%- for iface in core_ifaces %}
interface {{ iface }} area 0.0.0.0
{%- endfor %}
area 0.0.0.0 range {{ pillar['subnets-inet6']['core'] }}
{%- set redistribute = pillar['ospf'].get('redistribute') %}
{%- if redistribute %}
{%- for kind in redistribute %}
redistribute {{ kind }}
{%- endfor %}
{%- endif %}

View File

@ -0,0 +1,11 @@
[Unit]
Requires = zebra.service
After = network.target
[Service]
ExecStartPre = /bin/mkdir -p /var/run/quagga
ExecStartPre = /bin/chown -R quagga:quagga /var/run/quagga/
ExecStart = /usr/lib/quagga/ospf6d
[Install]
WantedBy = default.target

View File

@ -0,0 +1,25 @@
/etc/systemd/system/ospfd.service:
file.managed:
- source: salt://quagga/ospfd/ospfd.service
/etc/quagga/ospfd.conf:
file.managed:
- source: salt://quagga/ospfd/ospfd.conf
- template: 'jinja'
- require:
- pkg: quagga
autostart-ospfd:
service.enabled:
- name: ospfd
require:
- file: /etc/systemd/system/ospfd.service
- file: /etc/quagga/ospfd.conf
start-ospfd:
service.running:
- name: ospfd
require:
- service: autostart-ospfd
watch:
- file: /etc/quagga/ospfd.conf

View File

@ -7,7 +7,6 @@ log file /var/log/quagga/ospfd.log
interface {{ iface }} interface {{ iface }}
ip ospf network broadcast ip ospf network broadcast
ip ospf authentication message-digest ip ospf authentication message-digest
! TODO:
ip ospf message-digest-key 1 md5 {{ pillar['ospf']['ospf_secret'] }} ip ospf message-digest-key 1 md5 {{ pillar['ospf']['ospf_secret'] }}
{%- endfor %} {%- endfor %}

View File

@ -0,0 +1,28 @@
quagga:
pkg.installed: []
/etc/systemd/system/zebra.service:
file.managed:
- source: salt://quagga/zebra/zebra.service
/etc/quagga/zebra.conf:
file.managed:
- source: salt://quagga/zebra/zebra.conf
- template: 'jinja'
- require:
- pkg: quagga
autostart-zebra:
service.enabled:
- name: zebra
require:
- file: /etc/systemd/system/zebra.service
- file: /etc/quagga/zebra.conf
start-zebra:
service.running:
- name: zebra
require:
- service: autostart-zebra
watch:
- file: /etc/quagga/zebra.conf

View File

@ -0,0 +1,19 @@
hostname {{ salt['grains.get']('id') }}
log file /var/log/quagga/zebra.log
{%- for iface, ips in salt['grains.get']('ip_interfaces').items() %}
{%- if iface not in ['br-core', 'core', 'lo', 'c3d2'] and pillar['subnets-inet6'].get(iface) %}
{%- set subnet6 = pillar['subnets-inet6'][iface] %}
{%- set prefix6_len = subnet6.split('/')[1] %}
interface {{ iface }}
ipv6 address {{ pillar['hosts-inet6'][iface][salt['grains.get']('id')] }}/{{ prefix6_len }}
ipv6 nd prefix {{ subnet6 }}
ipv6 nd ra-interval 10
ipv6 nd ra-lifetime 60
ipv6 nd reachable-time 180
no ipv6 nd suppress-ra
{%- endif %}
{%- endfor %}
ip forwarding
ipv6 forwarding

View File

@ -3,22 +3,37 @@ base:
- salt-master - salt-master
- server1-network - server1-network
- lxc-containers - lxc-containers
- ospf - quagga.zebra
- quagga.ospfd
- quagga.ospf6d
- switches - switches
- cpe - cpe
'priv*-gw': 'priv*-gw':
- no-ssh - no-ssh
- forwarding - forwarding
- ospf - quagga.zebra
- quagga.ospfd
- quagga.ospf6d
- dhcp
'pub-gw or serv-gw':
- no-ssh
- forwarding
- quagga.zebra
- quagga.ospfd
- quagga.ospf6d
- dhcp - dhcp
'c3d2-gw or c3d2-anon': 'c3d2-gw or c3d2-anon':
- no-ssh - no-ssh
- forwarding - forwarding
- ospf - quagga.zebra
- quagga.ospfd
- quagga.ospf6d
'upstream*': 'upstream*':
- no-ssh - no-ssh
- forwarding - forwarding
- ospf - quagga.zebra
- quagga.ospfd
- quagga.ospf6d
- unbound - unbound
- upstream.dhcp - upstream.dhcp
- upstream.shaping - upstream.shaping
@ -32,7 +47,9 @@ base:
'anon*': 'anon*':
- no-ssh - no-ssh
- forwarding - forwarding
- ospf - quagga.zebra
- quagga.ospfd
- quagga.ospf6d
- vpn.openvpn - vpn.openvpn
- upstream.masquerade - upstream.masquerade
- upstream.shaping - upstream.shaping