pppoe telekom
This commit is contained in:
parent
5274639ca3
commit
e4e3c57f20
9 changed files with 143 additions and 6 deletions
|
@ -3,6 +3,9 @@ for network_name, network_conf in node.metadata.get('network').items():
|
||||||
svc_systemd[f'qdisc-{network_name}.service'] = {
|
svc_systemd[f'qdisc-{network_name}.service'] = {
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'running': None,
|
'running': None,
|
||||||
|
'needs': {
|
||||||
|
f'file:/usr/local/lib/systemd/system/qdisc-{network_name}.service',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
actions[f'qdisc-{network_name}.service_restart_workaround'] = {
|
actions[f'qdisc-{network_name}.service_restart_workaround'] = {
|
||||||
'command': 'true',
|
'command': 'true',
|
||||||
|
|
|
@ -2,6 +2,23 @@
|
||||||
|
|
||||||
flush ruleset
|
flush ruleset
|
||||||
|
|
||||||
|
% if nat:
|
||||||
|
table ip nat {
|
||||||
|
|
||||||
|
# NAT
|
||||||
|
|
||||||
|
chain postrouting {
|
||||||
|
type nat hook postrouting priority 100
|
||||||
|
policy accept
|
||||||
|
|
||||||
|
# rules
|
||||||
|
% for rule in sorted(nat):
|
||||||
|
${rule}
|
||||||
|
% endfor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
% endif
|
||||||
|
|
||||||
table inet filter {
|
table inet filter {
|
||||||
|
|
||||||
# INPUT
|
# INPUT
|
||||||
|
|
|
@ -6,6 +6,7 @@ files = {
|
||||||
'input': node.metadata.get('nftables/input'),
|
'input': node.metadata.get('nftables/input'),
|
||||||
'forward': node.metadata.get('nftables/forward'),
|
'forward': node.metadata.get('nftables/forward'),
|
||||||
'output': node.metadata.get('nftables/output'),
|
'output': node.metadata.get('nftables/output'),
|
||||||
|
'nat': node.metadata.get('nftables/nat'),
|
||||||
},
|
},
|
||||||
'triggers': [
|
'triggers': [
|
||||||
'svc_systemd:nftables.service:reload',
|
'svc_systemd:nftables.service:reload',
|
||||||
|
|
36
bundles/pppoe/REAMDE.md
Normal file
36
bundles/pppoe/REAMDE.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# Firtzbox
|
||||||
|
|
||||||
|
Internet > Zugangsdaten
|
||||||
|
|
||||||
|
Internetanbieter
|
||||||
|
- weitere Internetanbieter
|
||||||
|
- anderer Internetanbieter
|
||||||
|
- Name: "My PPPOE" (nicht leer lassen)
|
||||||
|
|
||||||
|
Anschluss
|
||||||
|
(x) Anschluss an einen DSL-Anschluss
|
||||||
|
|
||||||
|
Zugangsdaten
|
||||||
|
(x) Nein
|
||||||
|
|
||||||
|
Verbindungseinstellungen
|
||||||
|
|
||||||
|
[x] VLAN für den Internetanschluss verwenden
|
||||||
|
VLAN-ID: 7
|
||||||
|
PBit: 0
|
||||||
|
|
||||||
|
DSL-ATM-Einstellungen
|
||||||
|
VPI: 1
|
||||||
|
VCI: 32
|
||||||
|
|
||||||
|
Kapselung
|
||||||
|
(x) Routed Bridge Encapsulation
|
||||||
|
[x] IP-Adresse automatisch über DHCP beziehen
|
||||||
|
DHCP-Hostname: fritz.box
|
||||||
|
|
||||||
|
PPPoE-Passthrough
|
||||||
|
[x] Angeschlossene Netzwerkgeräte dürfen zusätzlich ihre eigene Internetverbindung aufbauen (nicht empfohlen)
|
||||||
|
|
||||||
|
[ ] Internetzugang nach dem "Übernehmen" prüfen
|
||||||
|
|
||||||
|
-> Danach muss bei "Internetanbieter" statt "weitere Internetanbieter" der gewählte Name stehen, also zB "My PPPOE"
|
3
bundles/pppoe/files/chap-secrets
Normal file
3
bundles/pppoe/files/chap-secrets
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Secrets for authentication using CHAP
|
||||||
|
# client server secret IP addresses
|
||||||
|
"${user}" * "${secret}" *
|
10
bundles/pppoe/files/isp
Normal file
10
bundles/pppoe/files/isp
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
linkname ppp0
|
||||||
|
noauth
|
||||||
|
defaultroute
|
||||||
|
replacedefaultroute
|
||||||
|
persist
|
||||||
|
maxfail 0
|
||||||
|
lcp-echo-interval 20
|
||||||
|
lcp-echo-failure 3
|
||||||
|
plugin rp-pppoe.so enp2s0
|
||||||
|
user "${user}"
|
36
bundles/pppoe/items.py
Normal file
36
bundles/pppoe/items.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
files = {
|
||||||
|
'/etc/modules-load.d/pppoe.conf': {
|
||||||
|
'content': 'pppoe\npppox\nppp_generic',
|
||||||
|
'mode': '0644',
|
||||||
|
},
|
||||||
|
'/etc/ppp/peers/isp': {
|
||||||
|
'content_type': 'mako',
|
||||||
|
'mode': '0644',
|
||||||
|
'context': {
|
||||||
|
'user': node.metadata.get('pppoe/user'),
|
||||||
|
},
|
||||||
|
'needs': {
|
||||||
|
'pkg_apt:pppoe',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'/etc/ppp/chap-secrets': {
|
||||||
|
'content_type': 'mako',
|
||||||
|
'mode': '0600',
|
||||||
|
'context': {
|
||||||
|
'user': node.metadata.get('pppoe/user'),
|
||||||
|
'secret': node.metadata.get('pppoe/secret'),
|
||||||
|
},
|
||||||
|
'needs': {
|
||||||
|
'pkg_apt:pppoe',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
svc_systemd = {
|
||||||
|
'pppoe-isp.service': {
|
||||||
|
'needs': {
|
||||||
|
'file:/etc/ppp/peers/isp',
|
||||||
|
'file:/etc/ppp/chap-secrets',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
29
bundles/pppoe/metadata.py
Normal file
29
bundles/pppoe/metadata.py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
defaults = {
|
||||||
|
'apt': {
|
||||||
|
'packages': {
|
||||||
|
'pppoe': {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'nftables': {
|
||||||
|
'nat': {
|
||||||
|
'oifname ppp0 masquerade',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'systemd': {
|
||||||
|
'units': {
|
||||||
|
'pppoe-isp.service': {
|
||||||
|
'Unit': {
|
||||||
|
'Description': 'PPPoE Internet Connection',
|
||||||
|
'After': 'network.target',
|
||||||
|
},
|
||||||
|
'Service': {
|
||||||
|
'Type': 'forking',
|
||||||
|
'ExecStart': '/usr/sbin/pppd call isp',
|
||||||
|
'Restart': 'on-failure',
|
||||||
|
'RestartSec': 5,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
'bundles': [
|
'bundles': [
|
||||||
'kea-dhcpd',
|
'kea-dhcpd',
|
||||||
'wireguard',
|
'wireguard',
|
||||||
|
'pppoe',
|
||||||
],
|
],
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'id': '1d6a43e5-858c-42f9-9c40-ab63d61c787c',
|
'id': '1d6a43e5-858c-42f9-9c40-ab63d61c787c',
|
||||||
|
@ -28,12 +29,9 @@
|
||||||
'dhcp_server': True,
|
'dhcp_server': True,
|
||||||
},
|
},
|
||||||
'external': {
|
'external': {
|
||||||
'type': 'vlan',
|
'interface': 'enp2s0',
|
||||||
'vlan_interface': 'internal',
|
'ipv4': '10.0.98.2/24',
|
||||||
'id': 3,
|
#'qdisc': 'cake bandwidth 35Mbit diffserv4',
|
||||||
'ipv4': '10.0.99.126/24',
|
|
||||||
'gateway4': '10.0.99.1',
|
|
||||||
'qdisc': 'cake bandwidth 40Mbit diffserv4',
|
|
||||||
},
|
},
|
||||||
'proxmox': {
|
'proxmox': {
|
||||||
'type': 'vlan',
|
'type': 'vlan',
|
||||||
|
@ -61,6 +59,10 @@
|
||||||
'master_node': 'htz.mails',
|
'master_node': 'htz.mails',
|
||||||
'hostname': 'home.resolver.name',
|
'hostname': 'home.resolver.name',
|
||||||
},
|
},
|
||||||
|
'pppoe': {
|
||||||
|
'user': '!decrypt:encrypt$gAAAAABocUfodLqCBKPPN7H9S64yJ7kRddtaWI0nQU2oklPMEjBhMsir4NL2yjkcHXAN-Ozqn6FCokyE1AL8ek3c5CqAvd83jkxZytp-oclrKqUD9uhUCy4=',
|
||||||
|
'secret': '!decrypt:encrypt$gAAAAABocUhmDqFZsyHYBIP2qdMFIS1eWT_bPdyv98cHzIgeKFAxDfcCrVJwDxVPFDDMa_7UT76HDJLvtdYQ8mFl2RL0yR8k2A=='
|
||||||
|
},
|
||||||
'sysctl': {
|
'sysctl': {
|
||||||
'net': {
|
'net': {
|
||||||
'ipv4': {
|
'ipv4': {
|
||||||
|
|
Loading…
Reference in a new issue