Mittwoch, 13. Juni 2012

pfSense 2.1 mit Swisscom Access

pfSense 2.1

Was ist pfSense?

pfSense ist eine freie, open source Firewall, basierend auf freeBSD. Als Paketfilter verwendet man pf. Daher auch der Name pfSense. Diese Distribution kann und wird, als Router und Firewall für kleine Heimnetzwerke, wie auch für grosse Unternehmen gebraucht.
pfSense startete als Fork von M0n0wall. Während M0n0wall vor allem auf embedded Systeme ausgerichtet ist, wurde pfSense auch für grössere PC Architekturen konzipiert um zusätzliche Leistungen zu erbringen. Trotzdem ist pfSense auch noch als Image für embedded Systeme zu haben. Mein Blog Post bezieht sich auf ein solches System. Für den Test verwende ich ein ALIX Board 2D13 und beschränke mich auf Routing und Firewalling Funktionen. Proxy, IDS/IDP usw. wäre für die pfSense auch kein Problem. Hierzu habe ich leistungsfähigere Systeme zur Hand.
Als Heimrouter ist ALIX aber auch heute noch eine gute Wahl.

pfSense 2.1

pfSense 2.1 ist momentan noch in der Entwicklung. Die Entwickler von pfsense hofften bis zum IPv6 Launch Day den offiziellen Release bereit zu haben. Leider hat dies nicht geklappt.
Die Snapshots sind hier erhätlich. Auf Produktivsystemen ist der Einsatz dieser Snapshots nicht empfohlen. Grundsätzlich gibt es hier mehrere Releases pro Tag! Darunter gibt es auch Tage bei denen man ein schlechtes Ei erwischen kann :)
Für den Heimgebrauch gibt es beim Einsatz dieser Snapshots nichts einzuwenden. Hier ist jeder sein eigener König.
Gerade der volle IPv6 Support in dieser Version hat schon seinen Reiz. Und genau darum geht es in diesem Blog Post.


 IPv6 mit Swisscom

Die grundlegende Konfiguration einer pfSense um IPv6 Konnektivität mit Swisscom zu erlangen ist relativ simpel. Der Spielplatz dahinter aber umso grösser :)
Ich führe hier die nötigen Schritte auf.
Wie schon erwähnt muss das System mit der Version 2.1 laufen. Der aktuelle Release 2.0.1 ist dazu noch nicht fähig. 


WAN


Zuerst wird das WAN Interface konfiguriert. Wie bereits bekannt, verwendet Swisscom momentan das Tunnelprotokoll 6RD. Dementsprechend setzt man den IPv6 Configuration Type auf 6rd.



Dadurch öffnet sich innerhalb der WAN Interface Konfiguration ein neuer Abschnitt: "6RD Rapid Deployment". Diesen füllt man mit den Swisscom relevanten Daten aus.
6RD Prefix: 2a02:1200::/28
6RD Border Relay: 193.5.122.254 193.5.29.1 (Wechselt per 09.04.2013)
6RD IPv4 Prefix lenght: 0


 Save und Apply, WAN ist erledigt.

LAN

Damit IPv6 auch im LAN bekannt wird, muss nun das LAN Interface konfiguriert werden.
Auch bei diesem hat es in Version 2.1 einen Punkt mit IPv6 Configuration Type. Diesen setzt man im Falle eines Tunnels wie 6to4 oder eben 6RD auf Track Interface.



Dadurch wird der Abschnitt Track IPv6 Interface verfügbar. In unserem Fall tracken wir das WAN Interface und geben als IPv6 Prefix ID 0 an.


Save und Apply!
Im Dashboard sollte nun bereits die IPv6 Verbindung ersichtlich sein. Falls nicht, hilft ein release / renew des WAN Interfaces oder ein simpler Reboot.

Firewall Regeln

pf blockt per Default sämtlichen nicht aus dem LAN initiierten Verkehr. Damit surfen via IPv6 möglich ist, muss wie bei IPv4, im Minimum eine Regel erstellt werden, welche den ausgehenden Verkehr erlaubt.



Natürlich lassen sich auch Regeln zum Erlauben von Services auf Host's oder Netzwerke einrichten. Hier bietet pfSense 2.1 volle IPv6 Unterstützung.

Damit steht dem sicheren surfen via IPv6 über die pfSense nichts mehr im Wege.


Swisscom TV

Spricht man vom Swisscom Access, so ist auch Swisscom TV immer wieder mal ein wichtiges Thema.
Auch hier. pfSense lässt sich so konfigurieren, dass Swisscom TV dahinter betrieben werden kann!
Auch wenn es in den pfSense Foren offensichtlich nicht ganz klar ist, hier die funktionierende Konfiguration.
Damit Swisscom TV betrieben werden kann, ist ein IGMP Proxy von Nöten. Während dieser unter Linux schon lange hervorragend läuft, hatte man unter BSD ein wenig Mühe. Trotz allem. Seit der Version 2.0.1 hat auch pfSense einen IGMP Proxy und diesen sogar per Default mit an Bord.

IGMP proxy

Der IGMP Proxy ist unter Services > IGMP Proxy schnell konfiguriert.
Benötigt wird ein Upstream und ein Downstream Interface.
Dem Downstream weist man das LAN Interface zu und gibt das lokale Netzwerk oder falls man möchte, die entsprechende IP der Swisscom TV Box(en) an. Threshold ist 1.



Dem Upstream weist man das WAN Interface zu. Hier werden das Multicast Netz 224.0.0.0/4 und die Swisscom TV Infrastruktur 195.186.0.0/16 benötigt. Ergänzung: Für die neue TV 2.0 Plattform wird das Netz 213.3.72.0/24 benötigt!
Verwendet man anderer Service Strukturen oder andere Provider ist hier eine andere IP nötig.
Dies lässt sich aber problemlos ausfindig machen, indem man via ssh igmpproxy -d -c /tmp/igmpproxy.conf nach Source Adressen sucht, welche geblockt werden.
Threshold ist auch hier 1.


Damit ist der IGMP Proxy bereits konfiguriert.

Firewall Regel LAN

Damit Swisscom TV funktioniert muss man ausgehend Multicast erlauben. Am einfachsten geht dies, wenn man bei der Regel welche ausgehenden IPv4 Verkehr erlaubt, unter Advanced Options:"This allows packets with IP options to pass. Otherwise they are blocked by default. This is usually only seen with multicast traffic.", markiert.



Die LAN Regel Übersicht sollte nun so aussehen:


Firewall Regeln WAN

Zudem benötigt man 2 Regeln für WAN.
Gebraucht wird eine Regel welche UDP Traffic durchlässt. In diesem Fall am bestem noch auf die Beschränkung der Swisscom Infrastruktur.




Ebenfalls muss man noch IGMP erlauben. Auch hier aktiviert man unter Advanced Options:"This allows packets with IP options to pass. Otherwise they are blocked by default. This is usually only seen with multicast traffic."


Die WAN Regel Übersicht sollte sich nun so darstellen:


Wichtig! Bei sämtlichen Änderungen am Ruleset bezüglich Swisscom TV / Multicast ist es wichtig, danach einen sauberen Reboot der Firewall zu machen!

Somit steht ab sofort auch dem Swisscom TV Vergnügen nichts mehr im Wege.
Damit das Netzwerk nicht mit Multicast bzw eben Broadcast Traffic geflutet wird, empfiehlt sich so oder so ein Switch, welcher igmp snooping beherrscht.
Günstig und gut kann dies der GS105E von Netgear. Auch bei Swisscom erhältlich.

Ich hoffe ich konnte mit diesem Post ein wenig teuflisches Gedankengut verbreitet :D
Wenn nicht, who cares!



Special thanks to people like Seth Mos!









Kommentare:

Lars Bättig hat gesagt…

Hey, nice post!

Aber ich hab da ein problem mit dieser config.
Bei den Swisscom TV Boxen hab ich immer nur ca. 10-15sec. Bild dannach bleibt das Bild stehen, wenn ich den Sender wechsle hab ich wieder für 10-15 sec. Bild.

Hast du eine Idee an was das liegen könnte?

Tux0ne hat gesagt…

Hallo Lars

Dies geschieht, wenn der Multicast Traffic geblockt wird.

Es fehlte im post noch der Hinweis, dass bei der WAN IGMP Regel ebenfalls Pakete mit IP Options erlaubt werden müssen. Dies habe ich nun angepasst und zudem noch jeweils einen Screenshot der Regelübersicht eingefügt.

Falls bei dir eine Quelle geblockt werden würde, würdest du dies im System Log Firewall sehen.

Besseren Support könnte ich oder andere in der Support Community geben.
http://supportcommunity.swisscom.ch/t5/Swisscom-Support-Community-de/ct-p/community_de

Viel Erfolg!

Ihsan Dogan hat gesagt…

Wie gut funktionert das bei dir die Umstellung von Unicast auf Multicast? Ich hatte damit vor 1.5 Jahren rumgespielt gehabt und ich hatte immer wieder das Problem, dass das Umschalten von Sendern recht hart von statten ging (der Teil, wo nach dem Unicast Traffic auf Multicast gestellt wird) und der Multicast Traffic ab und zu abbrach.

Funktioniert das bei dir sauber?

Tux0ne hat gesagt…

Ja das funktioniert nahtlos.

Ihsan Dogan hat gesagt…

Ich habe das mal so eingerichtet wie du das beschrieben hast, allerdings funktioniert der Mutlicast Teil nicht. Ich sehe auch keien Pakete die geblockt werden.

Gibt es da noch etwas, was man beachten sollte?

Ihsan Dogan hat gesagt…

Hab den Fehler gefunden. Auf dem entsprechenden Switch Port war IGMP geblockt. Tut jetzt.

Jetzt muss nur noch die Live Pause funktion auf der zweiten Box funktionieren.

Michael Waehli hat gesagt…

Hallo TuxOne

Vielen Dank für Deine super Anleitungen und Deinen guten Support. Ich habe meinen Alix mit FireIP mittlerweilen umgerüstet auf einen Soekris 6501 mit pfsence. Es funktioniert bis jetzt alles gut. Auch IPv6 habe ich nach Deiner Anleitung eingestellt. Die beiden Interfaces WAN und LAN scheinen auch eine gültige IPv6 Adresse zu haben. Allerdings ist der Gateway offline für WAN_6rd. Was mache ich dort falsch? Ich kann zwar trotzdem surfen, allerdings werden IPv6 Testseiten nicht erreicht. Das heisst, ich habe keine IPv6 Verbindung.
Ausserdem lassen sich komischerweise keine Packages auf pf sense mehr aktualisieren. Sobal ich die IPv6 Geschichte aktiviert habe, hat pf sense keine Verbindung mehr ins Internet. An der FW sollte es nicht liegen, dort habe ich alle Verbindungen geöffnet für IPv6. Oder müsste ich auf dem WAN Interface auch noch eine Allow All machen?
Danke für Deinen Support.

Tux0ne hat gesagt…

Hi Michael
Ich habe vor kurzem mal Release 2.1 installiert um zu schauen wie das so tut :)
Dabei bemerkte ich das die IPv6 Regel nun automatisch erstellt wird, lustigerweise exakt so wie hier beschrieben.
Ich habe die genau gleichen Probleme festgestellt. Ich bin aber der Meinung das es wohl im Zusammenhang mit der IP Weiterleitung des Centro Piccolo etwas zu tun haben könnte.
Mangels Zeit kann ich dies momentan nicht wirklich nachverfolgen.

sag ich nicht hat gesagt…

Hallo TuxOne

Ich bin seit kurzem stolzer Besitzer eines APU1C4 Boards. Die PfSense Software in der neusten Version (2.1.3-RELEASE (amd64)) konnte ich ohne Probleme installieren. Meinen Centro Picolo habe ich auf Version nbxvw786r13.bin downgradet.
Nun kommt mein Problem:
Ich habe den Centro in den Bridge Mode im CLI gestellt und neu gestartet. Leider bezieht meine pfSense keine IP via DHCP, auch ein Laptop den ich zum testen angeschlossen habe bezieht nichts.
Ist es möglich, dass ich noch etwas einstellen muss auf dem Centro Picolo. Ausser Ihn zu "bridgen". Natürlich habe ich die Firewall und den Router mehrmals neu gestartet.
Die IP Weiterleitung / IP Passthrough funktioniert hingegen einwandfrei. Ich würde aber lieber bridgen.

Danke im voraus

Tux0ne hat gesagt…

Evtl bist du auf der WARP Plattform.
Daher gemäss http://blog.dogan.ch/2013/10/20/pfsense-mit-swisscom-ftth/ die Datei /etc/inc/interfaces.inc bearbeiten:

$dhclientconf .= <<<EOD
interface "{$wanif}" {
send dhcp-class-identifier "100008,0001,,pfSense dhclient 2.1";
timeout 60;
retry 1;
select-timeout 0;
initial-interval 1

VLAN ID 10 ist für VDSL im Gegensatz zu ftth nich relevant.
Bitte um ein Feeback.
Grüess

sag ich nicht hat gesagt…

Guten Abend/Nacht Tuxone

Der Tip war genau mein Problem. Ich bin tatsächlich auf der WARP Plattform. Die eine Zeile mit dem "send dhcp ..." eingefügt und schon ist die öffentliche IP auf meiner pfSense Firewall.
Die Swisscom TV Box funktioniert perfekt. Hatte im Moment zwar keine IGMP Snooping fähigen Switch, darum habe ich die TV Box kurzerhand auf das DMZ Interface konfiguriert und dort direkt angeschlossen. Mit IPv6 bin ich noch ein wenig am kämpfen. Trotz Deiner super Anleitung will er nicht so recht. Das LAN Interface und der Client bekommen eine iPv6 doch wenn ich eine Testseite aufrufe sagt er mit ich hätte kein IPV6. Für meiner ersten Tag mit der Box bin ich jedoch sehr glücklich.
Nochmals vielen Dank.

Gruss Thomas McFly

sag ich nicht hat gesagt…

Guten Abend TuxOne

Mein Abenteuer mit der pfSense wir langsam sehr spannend. Leider habe ich noch das gleiche Problem wie Michael Waehli. Ipv6 und Packages. Wo ich jedoch noch ganz hänge ist die Swisscom IP Telefon Sache. Eigentlich funktioniert es sehr gut, ausser das ich immer ca. nach 5,5 Minuten aus der Leitung geworfen werde. Gibt es irgendwo ein "threshold" den ich übersehen habe.
Herausgefunden hat das mit dem Unterbruch meine Frau, die telefoniert anscheinend länger als ich.

Gruss Thomas McFly

Tux0ne hat gesagt…

IPv6 prüfe ich mal bzw. frag da mal nach. Habe ähnliche Probleme auf Linux Kisten...

Das mit der Telefonie muss ich mir mal anschauen. Mit was telefonierst du?

sag ich nicht hat gesagt…

Hi TuxOne

Ich habe die Swisscom Rousseau 310 Duo Telefone.

Gruss Thomas

sag ich nicht hat gesagt…

Hi TuxOne

habe gerade auf der pfSense unter Status Gateways gesehen das der IPv6 /WAN_6rd) Offline ist. Gateway ist 2a02:120b:c3ff:f6e0::193.5.29.1
Vielleicht hilft das weiter.
Beim Telefonproblem habe ich bemerkt, dass ich auch von aussen nicht immer erreichbar bin. Es schein als würde sich dieser Unterbruch auch beim nicht telefonieren wiederholen.

Gruss Thomas

wenga hat gesagt…

Hey Tux0ne

Danke für dieses super Tutorial.
Derzeit habe ich ein Problem mit IPTV via Centro Grande. Sobald ich den IGMP Up- und Downstream aktiviere, verabschiedet sich der Router (startet nach 10 Sekunden neu). Dies wiederholt er auch, solange der IGMP Proxy aktiv ist.

Hattest du schon mal so einen Effekt oder hast du vielleicht sogar eine Idee, wie ich dieses Problem beheben könnte?

thefrenchmatt hat gesagt…

On the router (alix/apu):
find / -name multicast_quer*_interval
cd _folder_where_info_bellow_is_stored_
echo '12' > multicast_querier_interval
echo '12' > multicast_query_response_interval
Otherwise I've seen see freezes after 1-5 Minute...

Athos Staub hat gesagt…

Guten Tag und vielen Dank für die vielen guten Tipps. Ich habe die Einstellunggenutzt, um einen MikroTik RouterOS aufzusetzen, mit gutem Erfolg. Dazu hätte ich zwei Fragen, wenn ich darf:
1 - Nützt Sunrise die gleiche Infrastruktur wie Swisscom? Mit Ihren Einstellungen IGMP WAN-seitig für Multicast-Netz komme ich schön auf rtp://239.186.64.56:10000 aber nicht auf rtp://233.35.254.35:1234 - interessanterweise auf Sunrise Fiber und deren TV funktioniert tadellos, wenn direkt an der Fritzbox angeschlossen
2 - RouterOS nützt offenbar noch IGMP Proxy v2 :-( (http://wiki.mikrotik.com/wiki/Manual:Routing/IGMP-Proxy) - Haben Sie Erfahrung mit der Nutzung der kompexeren Lösungen (PIM?), sind sie überhaupt zweckmässig, und für einen ambitionierten Dillettanten ein Thema?

Ich verstehe auch sehr gut, wenn es zu weit geht. Merci und freundliche Grüsse - Athos

Tux0ne hat gesagt…

Sunrise ist in diesem Fall ein Kunde von Swisscom Wholesales. Daher läuft es auf grossen Teilen über das gleiche Netz.
Die Infrastruktur, Quelle der Streams ist aber nicht die Gleiche.
Im Artikel "IPTV auf dem PC schauen" wird erklärt wie man die Quelle einfach ausfindig macht.

Mit PIM habe ich in privaten Netzen keine Erfahrung. Der Rendezvous Point von Swisscom dürfte aber noch immer 1.1.1.1 sein.

Allan Witter hat gesagt…

Hi Tuxone,

I try to replace my Centro Grande router with a pfsense appliance.

My internet connection is using VDSL2.

In my Pfsense config, I already change the DHCP configuration file for the option 60. The specific line I added :
send dhcp-class-identifier "100008,0001,,pfSense dhclient 2.1";

When I connect my VDSL2 RJ45 cable into the WAN port of the firewall, nothing happen. However, when I connect to my Swisscom Router it's working fine.

I found that the Swisscom Router use VLAN 10 to access to the Internet but that's only for FTTH customer.

Which parameters I need to change for this to work ?

Thanks in advance

roli hat gesagt…

Sali Tuxone,
Immer noch eine super Anleitung. Hat bei mir auf Anhieb alles funktioniert: -Vielen Dank. Einzig beim Senderwechsel hab ich jedes mal nach gefühlten 4-5sec einen kurzen Bild und Ton Unterbruch. Denke das geschieht jeweils beim wechsel von unicast zu multicast. Hast du das bei dir auch? sonst muss ich wohl doch nochmals über meine Config hinweg gehen. Die Box ist bei mir direkt am pfsense angeschlossen.

Grüsse Roli

Tux0ne hat gesagt…

Hoi Roli
Danke für deinen Post.
Ich benutze als System ipfire. pfsense habe ich dazumals rein aus Interesse in Bezug auf 6rd als proof of concept aufgesetzt.
Ich mag mich da nicht mehr so genau erinnern. Habe aber hohe Ansprüche und das hätte mich genervt ;)
Wie sieht deine Switchkette aus. Ist die in Ordnung?

roli hat gesagt…

ipfire muss ich definitiv auch mal noch ausprobieren. ;-)
Die TV-Box ist bei mir direkt am Pfsense (appliance SG-2440) interface angeschlossen an dem ich den igmp Proxy konfiguriert habe. Der WAN Port ist direkt via media Converter angeschlossen. Denke daher nicht das es an dem liegt. Ich tippe auf den IGMP Proxy oder sogar an die box selbst, denn wenn ich den Proxy neu starte hab ich den Effekt eine Zeit lang nicht. Naja mal schauen ob ich das noch rauskrieg schlimm ists nicht. Vielen Dank für deine schnelle Antwort. und falls ich was finde werde ich das gerne hier Teilen.