Telia IPTV utan Thompson-pryl (med egen router)

Har nyligen flyttat till ett teliahus och får därför både internet och TV via fiber. Till detta fick jag en vedervärdig produkt från Thompson skulle skulle användas för att “splitta” signalerna för bredband, tv och telefoni.

Efter lite läsande på internet kommer man ganska snabbt fram till att Telia använder taggade vlan för att dela upp dessa tre, men däremot hade jag väldigt svårt att hitta någon som löst problemet utan att skaffa någon brandad switch ifrån Telia. Men eftersom det hela baserades enbart på vlan antog jag att det bode vara rätt enkelt att göra detta i min egen FreeBSD-router… Vilket det också var.

Enligt de forumtrådar som finns runt om på internet är det dessa vlan-taggar som gäller:

voip2   237
iptv2   243
mgmt    294
iptv    845
voip    855

Det enda jag behövde göra var att på mitt externa interface skapa ett vlan med rätt tag och sedan brygga detta med det interna interfacet som är anslutet till IPTV-boxen. En viktig detalj är att IPTV-boxen själv inte pratar IEEE 802.1q, se därför till att trafiken till boxen går otaggat.

Såhär configurerade jag min router för att brygga vlan #845 (som är det vlan IPTV går över som taggad trafik)

Interface: em0 (externt), em1 (internt internet), em2 (internt IPTV),  vlan0 (externt vlan #845)

rc.conf:

gateway_enable="YES"
ifconfig_em0="DHCP"
ifconfig_em1="up"

cloned_interfaces="bridge1 vlan0"

ifconfig_em2="up"
ifconfig_bridge1="addm em2 addm vlan0 up"
ifconfig_vlan0="vlan 845 vlandev em0 up"
# ifconfig vlan0
vlan0: flags=8943 metric 0 mtu 1500
	options=103
	ether 00:00:24:ce:69:a8
	inet6 fe80::200:24ff:fece:69a8%vlan0 prefixlen 64 scopeid 0x13
	nd6 options=29

	media: Ethernet autoselect (1000baseT )
	status: active
	vlan: 845 parent interface: em0

# ifconfig bridge1
bridge1: flags=8843 metric 0 mtu 1500
	ether 02:e8:ea:15:66:01
	nd6 options=29

	id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
	maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
	root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
	member: vlan0 flags=143
	        ifmaxaddr 0 port 19 priority 128 path cost 55
	member: em2 flags=143
	        ifmaxaddr 0 port 11 priority 128 path cost 200000

Sen är det bara att starta boxen och köra.

En alternativ lösning om man inte har en router som går att configurera med vlan är att köpa en switch med stöd för taggade vlan. Till exempel en HP 1810-8G. Konfigurera sedan porten där du ansluter inkommande internet att ta emot otaggad (internet) trafik OCH taggad trafik för vlan 845 (IPTV). Konfigurera sedan den port du ansluter TVn till att köra ut vlan 845 otaggat.

11 Comments

  1. patrik

    Snyggt, men nu har du väl bryggat in utsidan till insdan, dvs du har ingen brandvägg mellan internet(vlan845) och ditt interna nät.

  2. Peter

    Det stämmer inte, för det första natas den otaggade trafiken från em0 till det interna nätet och jag filtrerar denna trafik med pf(4). Detta är dock inget jag beskriver i artikeln. Men å andra sidan så beskriver jag inte någon brygga mellan em0 och em1 heller.

  3. Peter

    Jaha, ursäkta. vlan845 bryggas ja! Men jag har bradväggsregler där med (direkt på vlan0) även om jag inte är överdrivet orolig då det är enbart min tv som är ansluten. Men jag släpper bara in den trafik som är nödvändig för att tvn skall fungera, såsom dhcp, de multicastadresser som själva videoströmmen går på osv.

  4. Tommi B

    Hej!

    Tror du att du skulle kunna posta din bryggkonfiguration / brandväggsregler? Jag brottas med exakt samma problem fast på en MikroTik Routerboard 750GL och får inte till det. Funderar på om det är något jag missat att tänka på.
    Har samma konfiguration som du, dvs VLAN845 på externa interfacet, bryggat till den nätverksport som är ansluten till TV-boxen. Just nu inget annat, inga brandväggar eller NAT-regler. Hur har du gjort med DHCP? Får ditt VLAN-interface en egen adress från Telia?

  5. Stellan

    Äntligen! Tack!
    Har just fått fiber indragen och hur jag kopplar in det hela så att jag kan köra både tv och data på samma lan har varit ett litet mysterium. Kanske är detta svaret!?
    Teliasupporten är ju ett skämt i denna fråga.
    Dock är jag inte helt säker på vad jag behöver, men ett steg på rätt väg hoppas jag.
    Antar någon ny router först med vlan möjligheter (typ UBIQUITI EDGEROUTER LITE 3) plus några vlanswitchar (så det räcker hela vägen till tv:n).
    Men, behöver man alls Telia Routern som kopplar mot iptvboxen? Eller kopplas iptvboxen direkt mot vlan-switchen?

  6. Peter

    Hej Tommi,

    Eftersom min brygga är en direktlänk mellan IPTV-box och telias IPTV-nät inbillar jag mig att man inte behöver vara så noga med brandväggen, det kan nog få vara öppet. Vad gäller bryggningen så är det som ses i posten. Bara en bridge med vlan0 på ena sidan och porten som är ansluten till IPTV-boxen på andra sidan. DHCP förfrågningar passerar bryggan ut på tv-nätet hos telia och kommer tillbaka samma väg.

  7. Peter

    Hej Stellan,

    Egentligen behöver du nog bara en vlankapabel switch lite beroende på hur du tänker sätta upp det hela.
    Men nej, man behöver inte telias router öht. Det enda som behövs är en router eller switch som förstår sig på vlan. Sen kan man dela upp det i switchen och spotta ut som otaggad trafik på olika portar.

  8. Pingback: Wireless router project | www.pean.org

  9. Pingback: Secure wireless FreeBSD router | [²fram:kan:t]

  10. Josef

    Hmm, fick problem med min brandvägg.

    Vet ej om det är följande rad som stör eller om det är “block in” som stör:

    nat on $ext_if from !($ext_if) to any -> ($ext_if)

    Borde inte vara “block in” som bråkar då jag satt följande:

    pass quick on em2
    pass quick on vlan0
    pass quick on bridge1

    En temporär lösning som fungerar för mig är att lägga till följande rader, men det känns inte rätt (= säkert):

    set skip on {vlan0}
    set skip on {bridge1}
    set skip on {em2}

  11. peter

    Hehe. Utan att se hela din pf.conf så har jag svårt att avgöra vad som kan gått fel. Du kan ju skicka den per mail om du vill.

Leave a Reply

Your email address will not be published. Required fields are marked *