Rogier Neeleman
10 years ago
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