handleidingen:netwerk:openwrt-freedom-vdsl

Deze pagina is ook beschikbaar in het Engels.


Dit artikel beschrijft hoe ik VDSL heb ingesteld voor Freedom.nl, terwijl ik gebruik maak van mijn eigen modem en router. Ik heb deze setup bij mijn ouders thuis. Ze gebruiken alleen de internetverbinding; ze kijken geen “ouderwetse” TV, en ze hebben ook geen vaste telefoon. Dus het netwerk is relatief eenvoudig.

Ik heb ervoor gekozen om Freedom's Fritzbox niet te ontvangen, omdat ik niet de intentie had die ooit te gebruiken. Die dingen bieden veel te veel functionaliteit naar mijn zin, zonder enige broncode vrij te geven. Alles dat ik wil is een dom modem dat zo min mogelijk doet. Het moet de DSL omzetten naar een ethernet-trunk, en verder niets.

Gelukkig is Freedom één van de weinige ISP's in de wereld die haar klanten geen verplichte apparaten opdringt. Sterker nog, ze laten je tijdens het bestelproces kiezen of je hun hardware wilt gebruiken, en geven je zelfs een kleine korting als je dat niet wilt.

Ik ben een uitgesproken voorstander van modem- en routervrijheid, dus ik ben het niet eens met de huidige situatie dat bijna alle ISP's hun klanten modemrouters opdringen. De Duitsers noemen dit Routerzwang. (Natuurlijk hebben zij er een woord voor…)

Als modem gebruik ik een DrayTek Vigor 165, welke ik als een volledig transparante bridge heb geconfigureerd, wat betekent dat hij zelf geen internettoegang heeft. Jammer genoeg lijken er geen FOSS DSL-modems te bestaan, dus dit lijkt het beste compromis te zijn. Ik vertrouw de Vigor helemaal niet, maar hij kan in ieder geval volledig gesandboxt worden.

Al het echte werk wordt gedaan door mijn vertrouwde TP-Link TL-WDR4300 die OpenWrt draait. Omdat dit apparaat een Atheros AR9344-chipset heeft, heeft hij geen blobs nodig om te werken.



De Vigor 165 moet ingesteld worden op MPoA Full Bridge Mode. In tegenstelling tot de Vigor 130, welke in Bridge Mode moest worden gezet om je router de 802.1Q VLAN-tags af te laten handelen, werkt dit helemaal niet met de Vigor 165. Sterker nog, ik ben erachter gekomen dat Bridge Mode op de Vigor 165 alle 802.1Q-headers stript, dus in plaats daarvan moet Full Bridge Mode worden gebruikt.

In tegenstelling tot wat DrayTek's documentatie beweert, moet er helemaal geen VLAN tag insertion door de Vigor worden gedaan. Alles kan uitgeschakeld blijven, en de OpenWrt-router kan het internetverkeer taggen en tegelijkertijd nog steeds in staat zijn om de Vigor's webinterface en SSH-server te benaderen, mits juist geconfigureerd.

In de volgende stappen zal ik beschrijven hoe ik de Vigor 165 als transparante bridge heb ingesteld. Ik wilde dat de volgende zaken zouden werken:

  • De LAN 1-poort op de Vigor 165 zou effectief een ongefilterde ethernet-trunk moeten zijn;
  • De Vigor 165 moet zelf niet in staat zijn om het internet te bereiken: aangezien ik geen broncode heb, kan hij niet worden vertrouwd;
  • De OpenWrt-router moet de 802.1Q-tags en de PPPoE-encapsulatie afhandelen;
  • De OpenWrt-router moet RFC 4638 / Baby Jumbo Frames kunnen gebruiken;
  • De Vigor's webinterface en SSH-server moeten nog benaderbaar zijn vanaf het LAN op de OpenWrt-router;
  • De Vigor's klok moet over NTP gesynchroniseerd worden vanaf mijn LAN;
  • Alle andere functionaliteit van de Vigor 165 moet volledig worden uitgeschakeld.


VLAN-tagging instellen

VLAN-tagging moet niet door de Vigor worden gedaan. Dus zet onder Internet Access > General Setup alle drie de keuzevakken op Disable.
Ik heb ook meteen DSL Mode op VDSL2 Only gezet omdat ik er toch was, maar dat zou niet uit moeten maken.

Sla de instellingen op, maar reboot nog niet.

MPoA full bridge mode instellen

Zet onder Internet Access > MPoA / Static or dynamic IP de optie MPoA (RFC1483/2684) op Enable en vink het vakje voor Enable Full Bridge Mode aan.

Terwijl ik er toch was, heb ik ook meteen de ADSL-configuratie goed ingesteld, maar dat is niet nodig voor VDSL. Freedom heeft haar instellingen hier gedocumenteerd.

Sla de instellingen op, maar reboot nog niet.

Het LAN instellen zodat het modem nog kan worden bereikt

Verander onder LAN > General Setup de optie 1st IP Address naar 192.168.200.1 en zet DHCP Server configuration op Disable.
Op het LAN 1 IPv6 Setup-tabblad zet je DHCPv6 Server op Disable Server.

Sla de instellingen op, maar reboot nog niet.

NTP-tijdsynchronisatie instellen

Omdat de Vigor zelf geen internettoegang zal hebben, moet hij zijn NTP-klok van de OpenWrt-router krijgen.

Zet onder System Maintenance > Time and Date de optie Time Server op 192.168.200.2.

Sla de instellingen op, maar reboot nog niet.

Jumbo Frames inschakelen

Dit kan niet via de GUI worden gedaan, dus we moeten naar de Vigor SSH'en:

ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 -o Ciphers=+aes128-cbc admin@192.168.1.1

Zet vervolgens Jumbo Frames aan:

port jumbo on
port jumbo 9022


Het modem herstarten

Ga naar System Maintenance > Reboot en selecteer Using current configuration. Klik dan Reboot Now-knop.



De OpenWrt-router zal als het daadwerkelijke endpoint in het IP-netwerk dienen. Alle pakketten zullen onveranderd door het modem gaan.

Dit betekent dat de router zal moeten werken als VLAN-switch, PPPoE-client, NAT-gateway, DHCPv4- en DHCPv6-server, een IPv6 RA-server voor SLAAC en een caching DNS-server. En hij zal ook als NTP-server moeten dienen zodat de Vigor zijn klok kan instellen, waarvoor we een apart (untagged) VLAN moeten maken. Op dat VLAN kunnen we ook de Vigor's configuratiepagina's en SSH-server benaderen.

VLAN's instellen

Als eerste moeten we de switch configureren. Verander in /etc/config/network het onderste gedeelte config switch_vlan als volgt:

# Dit is het LAN-VLAN, dat de vier gele LAN-poorten verbindt
config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0t 2 3 4 5'
 
# Dit is het niet-getagte WAN-VLAN om de Vigor te benaderen via de blauwe WAN-poort
config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0t 1'
 
# Dit is het getagte WAN-VLAN om het internet te benaderen, door de Vigor heen
config switch_vlan
	option device 'switch0'
	option vlan '6'
	option ports '0t 1t'



De WAN-interfaces instellen

Hogerop in /etc/config/network verander je de wan- en wan6-interfaces als volgt.

# Dit zet de MTU van de ethernet-adapter op 1508, zodat we MTU 1500 in de PPPoE-tunnel kunnen gebruiken
config device
	option name 'eth0'
	option mtu '1508'
 
# Zet de MTU van LAN op 1500
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
 
config interface 'lan'
	option device 'br-lan'
	option mtu '1500'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
 
# Dit is de niet-getagte interface om met de Vigor te praten
config interface 'modem'
	option device 'eth0.2'
	option mtu '1500'
	option proto 'static'
	option ipaddr '192.168.200.2'
	option netmask '255.255.255.0'
	option force_link '0'
 
# Dit is het getagte WAN-VLAN om het internet te benaderen, door de Vigor heen
# Zet de MTU op 1508, omdat PPPoE 8 bytes overhead heeft
config interface 'wan'
	option device 'eth0.6'
	option mtu '1508'
	option proto 'pppoe'
	option username 'fake@freedom.nl'
	option password '1234'
	# Niet noodzakelijk, maar ik heb graag extra logging
	option pppd_options 'debug'

Let op dat je de wan6-interface volledig verwijdert, aangezien die niet nodig is. De PPPoE-tunnel zal automatisch een virtuele IPv6 WAN-interface aanmaken.

Voeg in /etc/config/dhcp de modem-interface toe:

config dhcp 'modem'
	option interface 'modem'
	option ignore '1'
 
config dhcp 'wan'
	option interface 'wan'
	option ignore '1'



De firewall instellen

Voeg in /etc/config/firewall de modem-zone toe en sta toe dat de lan-zone er toegang toe heeft:

config zone
	option name 'modem'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option network 'modem'
 
config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	option network 'wan'
 
config forwarding
	option src 'lan'
	option dest 'modem'
 
config forwarding
	option src 'lan'
	option dest 'wan'



De NTP-server instellen

Voeg in /etc/config/system de enable_server-parameter toe:

config timeserver 'ntp'
	option enabled '1'
	option enable_server '1'
	list server '0.openwrt.pool.ntp.org'
	list server '1.openwrt.pool.ntp.org'
	list server '2.openwrt.pool.ntp.org'
	list server '3.openwrt.pool.ntp.org'


Voeg in /etc/config/firewall een regel toe om inkomend NTP-verkeer toe te staan:

config rule       
	option name 'Allow NTP from modem'
	option src 'modem'
	option src_ip '192.168.200.1'
	option family 'ipv4'
	option dest_port '123'
	option proto 'udp'
	option target 'ACCEPT'



De instellingen toepassen

Tenslotte herstart je een aantal daemons:

service network restart
service firewall restart
service dnsmasq restart
service odhcpd restart
service sysntpd restart

Of simpelweg:

reboot



Als je alles correct hebt gevolgd, zou je nu een /32 IPv4-adres en een /48 IPv6-prefix op je pppoe-wan-interface moeten ontvangen.

Verbonden LAN-clients zouden een DHCPv4-lease, een DHCPv6-lease en een SLAAC-adres moeten ontvangen.

Je zou je Vigor op http://192.168.200.1/ moeten kunnen benaderen, en je Vigor zou de tijd moeten kunnen oppikken van je router.