EdgeRouter X statt FritzBox (FTTB) - wie konfigurieren?

Spezielle technische Fragen zum Thema "Ethernet" als Anschlusstechnik? Dann bist Du hier richtig!
DenisK
Member
Member
Beiträge: 27
Registriert: 28. Mär 2017 11:57

Re: EdgeRouter X statt FritzBox (FTTB) - wie konfigurieren?

Beitrag von DenisK » 11. Aug 2019 16:21

Sven2084 hat geschrieben:
9. Aug 2019 20:34
...Bei der normalen WT Fritzbox Konfig scheint die Telefonie über eine eigene Einwahl zu verfügen, sodass diese nicht über die pppoe Einwahl kommuniziert sondern sich separat einwählt. Aktuell weiß ich leider nicht, wie ich hinter einem eigenen Router diese Konfiguration wiederherstellen könnte...
Das ist relativ einfach umzusetzen. Sofern du einen EdgeOS/VyOS basierenden Router nutzt und dein Internet-Uplink an "eth0" hängt und deine FritzBox an "eth1" , hier die Konfiguration:

Code: Alles auswählen

set interfaces bridge br0 member interface eth0.1001
set interfaces bridge br0 member interface eth1
set interfaces ethernet eth0 vif 1001 bridge-group bridge 'br0'
set interfaces ethernet eth1 disable-link-detect

# Eventuell kannst Du auf das disable-link-detect verzichten, warum auch immer kam das Bridge-Interface bei mir sonst nicht "Up"
Damit bringst Du deine FritzBox via Software Switch (Briding) in das VLAN 1001. Darin läuft die komplette VoIP kommunikation ab. In diesem VLAN erreichst du weiterhin die wilhelm.tel DNS Server 213.209.104.220 / 213.209.104.250 um die DNS-Adressen für Registrar: voip3.wtnet.de, Proxy: proxy.voipslb.wtnet.de aufzulösen, welche auch in dem VLAN erreichbar sind.

Damit läuft dein VoIP komplett unabhängig von der PPPoE Einwahl. Nachteil ist, dass deine FritzBox nicht mehr in's Internet bzgl. Updates o.ä. kommt. Dafür müsstest du per Hand dann umstecken.

DenisK
Member
Member
Beiträge: 27
Registriert: 28. Mär 2017 11:57

Re: EdgeRouter X statt FritzBox (FTTB) - wie konfigurieren?

Beitrag von DenisK » Heute 11:52

In der Tat ist es nicht einfach DHCPv6 Prefix Delegation an einem ISP Anschluss zu verwenden, welcher bei jeder Neueinwahl dem Kunden ein neues Prefix zuweist. Dadurch, dass das alte Prefix bei den Clients weiterhin gültig bleibt, obwohl bereits ein neueres den Clients per Router-Advertisement zugeschickt worden ist, nutzen diese das alte Prefix um ausgehende IPv6 Pakete zu versenden. Sprich: Nach einer Verbindungstrennung von PPPoE (Grund egal) kann es bei einem Edgerouter Client bis zu 4 Stunden dauern, bis das alte Prefix ungültig wird. Während dieser "Wartezeit" hat man keine funktionierende IPv6 Kommunikation: Relativ doof.

Anbei erstmal die Konfiguration um DHCPv6 PD allgemein zum laufen zu bekommen:

Code: Alles auswählen

set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface eth1 host-address '::1'
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface eth1 prefix-id 0
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface eth1 service dhcpv6-stateless
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 prefix-length 56
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd prefix-only
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd rapid-commit enable
set interfaces ethernet eth0 pppoe 0 ipv6 dup-addr-detect-transmits 1
set interfaces ethernet eth0 pppoe 0 ipv6 enable
Bei der Analyse der Geräte von AVM habe ich herausgefunden, dass die FritzBox sich das alte Prefix merkt um es später für ungültig zu erklären. Sobald nun ein neues Prefix bekannt ist, schickt dieser das alte Prefix und das neue Prefix an die Clients raus. Der Unterschied liegt nun jedoch darin, dass das alte Prefix mit einer "PreferredLifetime" und "ValidLifetime" von jeweils "0" an die Clients rausgeschickt wird. Damit wird den Clients gesagt, dass das Prefix seine gültig verloren hat und somit nicht mehr verwendet werden soll. AVM hat hierfür diesen Workaround eingebaut. EdgeRouter & Co haben diesen Workaround nicht, da es nicht vorgesehen ist dass sich IPv6 Prefixe bei jeder Neueinwahl ändern.

Wer dennoch IPv6 PD an einem wilhelm.tel o.ä. Anschluss verwenden möchte, kann nun dieses selbst geschriebene Bash Script auf einem EdgeRouter einspielen. Es ist ein nachgebauter Workaround, welcher das Verhalten der FritzBox imitiert. Dieses Script muss zwingend im Ordner "/config/scripts" abgelegt werden zB mit dem Dateinamen "dhcpv6-pd-check". Damit übersteht es auch ein Firmware Upgrade von EdgeOS.

https://pastebin.com/f2P8QUez

Code: Alles auswählen

#!/bin/bash

RACONF="/etc/radvd.conf"

tmp=`sudo ifconfig eth1 | grep global | awk -F " " '{ print $2 }'`
if [ "$tmp" ]; then
	echo "Active IPv6 Prefix found"
	CURRENT_INET6=${tmp::-1}
fi
if [ "$CURRENT_INET6" ]; then
	echo $CURRENT_INET6 > ~/CURRENT_INET6
	if [ -f ~/LAST_INET6 ]; then
		LAST_INET6=`cat ~/LAST_INET6`
		if [ "$CURRENT_INET6" != "$LAST_INET6" ]; then
			sed '$d' $RACONF > /var/tmp/radvd.conf
			mv /var/tmp/radvd.conf $RACONF
			echo "Different IPv6 Prefix found"
			echo "    prefix "$LAST_INET6"/64 {" >> $RACONF
			echo "        AdvOnLink on;" >> $RACONF
			echo "        AdvPreferredLifetime 0;" >> $RACONF
			echo "        AdvAutonomous on;" >> $RACONF
			echo "        AdvValidLifetime 0;" >> $RACONF
			echo "    };" >> $RACONF
			echo "};" >> $RACONF
			/etc/init.d/radvd reload
			echo $CURRENT_INET6 > ~/LAST_INET6
		else
			echo "Same prefix as before"
		fi
	else
		echo "Copying..."
		cp ~/CURRENT_INET6 ~/LAST_INET6
	fi
fi

exit 0
Anschließend muss es noch ausführbar gemacht werden:

Code: Alles auswählen

chmod ugo+rx /config/scripts/dhcpv6-pd-check
Ebenso muss ein Cronjob eingerichtet werden, welcher alle paar Minuten das Script ausführt.

Code: Alles auswählen

set system task-scheduler task dhcpv6pd executable path /config/scripts/dhcpv6-pd-check
set system task-scheduler task dhcpv6pd interval 1m
Getestet wurde das Script mit EdgeOS v2.0.6 an einem EdgeRouter 6P und einem einfachen Windows 10 Client. Viel Spass mit IPv6 ;-)

Antworten