1 changed files with 136 additions and 0 deletions
			
			
		| @ -0,0 +1,136 @@ | |||||||
|  | <b>XS4All and PFSense</b> | ||||||
|  | 
 | ||||||
|  | This part is in dutch because XS4All is a dutch internet provider and it's not | ||||||
|  | really intresting for people without a XS4All connection. | ||||||
|  | 
 | ||||||
|  | Ik ga er vanuit dat de mensen die dit lezen enig idee hebben van netwerken en | ||||||
|  | eventueel PFSense. Uitleggen hoe bijvoorbeeld IPV6 in elkaar zit lijkt me niet | ||||||
|  | echt nuttig en buiten de scoop van dit verhaal. | ||||||
|  | 
 | ||||||
|  | <i>Het idee</i> | ||||||
|  | Het idee was het volgende. We plaatsen de router van XS4All, een Fritzbox 7360 | ||||||
|  | in bridgemode. Daarachter draaien we een PFSense systeem welke dan mijn | ||||||
|  | core-router zou gaan worden. Dus: | ||||||
|  | 
 | ||||||
|  |          _                                         +---------+ | ||||||
|  |       __( )_       +---------+    +---------+    +---------+ | | ||||||
|  |     _(      )_     |         |    |         |    |         | | | ||||||
|  |    ( Internet )--->| Fritzbox|--->| PFSense |--->| PC's    | | | ||||||
|  |   (____________)   | modem   |    | router  |    |         |-+ | ||||||
|  |                    +---------+    +---------+    +---------+ | ||||||
|  |     | ||||||
|  | <i>De modem</i> | ||||||
|  | De Fritzbox kun je aanpassen via de telnet interface. Zorg ervoor dat de modem | ||||||
|  | gewoon normaal werkt. Als er hier al problemen zijn met je internet, gaat de | ||||||
|  | rest al helemaal niet werken. | ||||||
|  | 
 | ||||||
|  | 1) Sluit een analoge telefoon aan op je fritzbox. Bel het nummer <b>#96*7*</b> | ||||||
|  |    Dit kun je ook doen door een nieuwe siptelefoon aan te sluiten in de | ||||||
|  |    webinterface en via de click-to-dail dit nummer laten bellen. | ||||||
|  |    Er is ook een URL welke hetzelfde zou moeten doen, echter die heb ik niet | ||||||
|  |    terug kunnen vinden. | ||||||
|  |    Deze actie zal de telnet interface enabelen. | ||||||
|  |     | ||||||
|  | 2) Telnet naar de fritzbox en pas het bestandje /var/flash/debug.cfg aan. | ||||||
|  |     | ||||||
|  |    telnet 192.168.178.1 | ||||||
|  |    --> inloggen met je admin wachtwoord | ||||||
|  |    cd /var/flash/ | ||||||
|  |    echo > debug.cfg | ||||||
|  |    nvi debug.cfg | ||||||
|  |    --> en vul dit met onderstaande. nvi is bijna hetzelfde als vim | ||||||
|  |    sleep 120 | ||||||
|  |    killall dsld telefon voipd pbd | ||||||
|  |    sleep 10 | ||||||
|  |    brctl addif lan ptm_vr9 | ||||||
|  |    ifconfig ptm_vr9 up | ||||||
|  | 
 | ||||||
|  | 3) Reboot de router. Je kunt bovenstaande ook met de hand uitvoeren. Het effect | ||||||
|  |    is hetzelfde. | ||||||
|  | 
 | ||||||
|  | <i>De router op IPV4</i> | ||||||
|  | Ik neem aan dat niemand problemen heeft met het installeren van een pfsense | ||||||
|  | router. | ||||||
|  | 
 | ||||||
|  | 1) We maken voor de WAN interface eerst een nieuw VLAN aan op VLAN 6. Deze | ||||||
|  |    nieuwe interface hangen we aan de WAN. (interfaces -> assign) | ||||||
|  | 
 | ||||||
|  | 2) Deze WAN interface zetten we voor IPV4 op PPPOE. Hiervoor kan je alles | ||||||
|  |    invullen als username/wachtwoord, als er maar iets staat. | ||||||
|  | 
 | ||||||
|  | 3) Reboot en je IPV4 XS4All netwerk werkt. Dit kun je zien bij | ||||||
|  |    Diagnostics -> interfaces. Je zult hier 2 adressen te zien krijgen. Je eigen | ||||||
|  |    en een extra helper adres van de pppoe verbinding. | ||||||
|  | 
 | ||||||
|  | 4) Stel je router verder in zoals je wilt qua routering en firewalling. | ||||||
|  | 
 | ||||||
|  | <i>De router op IPV6</i> | ||||||
|  | Tot zo ver ging alles naar wens. Internet werkte prima en ook mijn ipsec tunnels | ||||||
|  | waren geen enkel probleem om in te stellen. Echter ik heb redelijk veel werken | ||||||
|  | met IPV6, en dat wilde ik dus ook op mijn PFSense doosje. Hier begon de elende. | ||||||
|  | Ik had dit aan kunnen zien komen aangezien als je googled naar | ||||||
|  | 'pfsense xs4all ipv6', dan zijn de eerste twee meldingen links naar het | ||||||
|  | bug-systeem van PFSense... | ||||||
|  | 
 | ||||||
|  | 1) Eerst de internetkant van de router instellen. Het idee is dat je een DHCP-PD | ||||||
|  |    doet over de PPPOE lijn heen en XS4All hierdoor weet waar het verkeer naartoe | ||||||
|  |    moet. Dus dit kunnen we instellen bij de WAN interface. FOUT. In vorige | ||||||
|  |    versies van PFSense bestond DHCP-PD wel, echter tegenwoordig niet meer. Das | ||||||
|  |    jammer aangezien XS4All dit wel vereist. Een gewoon DHCP6 request is niet | ||||||
|  |    genoeg. (<a href='https://redmine.pfsense.org/issues/3097' target='new'>https://redmine.pfsense.org/issues/3097</a> | ||||||
|  | 
 | ||||||
|  | 2) Gelukkig is er dus een BUG request welke op solved staat. Dus we upgraden de | ||||||
|  |    PFSense doos van stable naar development in de waan dat daar deze patch | ||||||
|  |    ondertussen in zit. Helaas bleek dit niet het geval. Wel konden we hierin wel | ||||||
|  |    een eigen DHCP6c configfile opgeven. Dus in /root/dhcp6c_xs4all.conf de volgende | ||||||
|  |    configuratie gezet: | ||||||
|  |     | ||||||
|  |    interface pppoe0 { | ||||||
|  |         send ia-pd 0; | ||||||
|  |         send rapid-commit; | ||||||
|  |         request domain-name-servers; | ||||||
|  |         request domain-name; | ||||||
|  |         script "/var/etc/dhcp6c_wan_script.sh"; | ||||||
|  |    }; | ||||||
|  |         id-assoc pd 0 { | ||||||
|  |    }; | ||||||
|  | 
 | ||||||
|  | 3) Dit is echter maar 1 deel van het verhaal. Het blijkt dat het proces dat de | ||||||
|  |    DHCP6c moet aansturen nu niet meer gestart word. Dit moeten we dus ook met de | ||||||
|  |    hand regelen. Hiervoor heb ik een scriptje gemaakt dat onderstaande uitvoert. | ||||||
|  |    Dat scriptje kan je vervolgens in je config.xml zetten als startup script. | ||||||
|  |     | ||||||
|  |    #!/bin/sh | ||||||
|  |     | ||||||
|  |    sleep 120 # Eerst alles laten opkomen | ||||||
|  |    killall -9 dhcp6c #  Mocht er nog iets draaien, dan draait het nu niet meer. | ||||||
|  |    sleep 10 | ||||||
|  |    /usr/local/sbin/dhcp6c -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0 & | ||||||
|  |     | ||||||
|  | 4) Dit werkte! We hebben een IPV6 adres en nadat we IPV6 aan de LAN kant hadden | ||||||
|  |    geconfigureerd in het goede subnet en de rtadvd, ofwel de router advertisment | ||||||
|  |    aan hadden gezet kreeg iedereen een IPV6 adres en konden we over IPV6 werken! | ||||||
|  |     | ||||||
|  | 5) Echter wat bleek, sommige adressen waren gewoonweg niet meer te benaderen. | ||||||
|  |    Facebook werkte niet meer. Youtube en google wel. Ik kreeg heel vreemd gedrag | ||||||
|  |    met netwerkverbindingen op IPV6. Met IPV4 was niets aan de hand. Eerst | ||||||
|  |    handmatig de MTU size op de router naar 1492 gezet (wat zowieso een goed idee | ||||||
|  |    is) maar de problemen bleven. Pas nadat ik mijn MTU size van mijn computer  | ||||||
|  |    ook naar 1492 had gezet, was het enigsinds werkbaar, maar nog niet geweldig. | ||||||
|  |     | ||||||
|  |    Blijkbaar is er ergens in het verhaal de path MTU discovery stuk gegaan, | ||||||
|  |    aangezien dit niet meer werkte. In tegenstelling tot een IPV4 router, waar | ||||||
|  |    een pakket word opgeknipt als het te groot is, stuurt een IPV6 router een | ||||||
|  |    ICMPv6 type 2 pakket terug zodat de computer weet dat er een lagere MTU size | ||||||
|  |    gekozen moet worden. Dit is mooi te zien met het commando 'tracepath6'. Elke | ||||||
|  |    IPV6 stack zou een path discovery moeten doen om de MTU size te bepalen, | ||||||
|  |    echter dit werkte dus niet meer. Geen idee hoe dit te fixen is. | ||||||
|  |     | ||||||
|  | Ondertussen was ik het redelijk zat en had het redelijk gehad met PFSense. Nu | ||||||
|  | heb ik <a href='http://m0n0.ch/wall/' target='new'>m0n0wall</a> erop draaien en die kent wel DHCP-PD. Dit werkte redelijk snel | ||||||
|  | als een zonnetje. De mogelijkheden hiermee zijn wel minder, maar het werkt | ||||||
|  | prima en stabiel nu. Later nog maar eens kijken of PFSense en XS4All samen | ||||||
|  | kunnen komen. | ||||||
|  | 
 | ||||||
|  | Met dank aan: | ||||||
|  | <a href='http://gjppp.home.xs4all.nl/vdsl-pppoe/' target='new'>gjppp</a> | ||||||
					Loading…
					
					
				
		Reference in new issue