Fortigate und Swisscom TV – zum dritten

Unser letzter Beitrag zur Konfiguration einer Fortigate, um zuhause auch Swisscom TV durch die Fortigate zu bekommen, ist schon eine zeitlang her. Deswegen hier mal wieder ein aktueller Beitrag mit einer Fortigate auf FOS 7.0.0 (der auch mit 6.4.5 getestet wurde).

Aber Vorsicht, mit dem Swisscom Centro Business oder Centro Business 2.0 im Bridge (oder PPPoE Passthrough) mode, funktioniert dies nicht. Swisscom hat dies hier im Abschnitt 1.3 unter “Einschränkungen” dokumentiert.

In diesem Beispiel hängt die Swisscom TV Box am DMZ Port der Fortigate und bezieht von dort eine DHCP Adresse, welche per DHCP Reservation fixiert wird:

config system interface
     edit "dmz"
          set ip 10.10.10.1 255.255.255.0
     next
end

config system dhcp server
     edit 2
         set dns-service default
         set default-gateway 10.10.10.1
         set netmask 255.255.255.0
         set interface "dmz"
         config ip-range
             edit 1
                 set start-ip 10.10.10.2
                 set end-ip 10.10.10.254
             next
         end
     next
 end

Mittels der DHCP Reservation kann man ein IP-basiertes Addressobjekt auf der Fortigate erstellen, so dass man diese für “schöne” Firewall-Policies nutzen kann (man in den Firewall-Policies also nicht das ganze interne DMZ-Netz öffnen muss).

config system dhcp server
     edit 2
         config reserved-address
             edit 1
                 set ip 10.10.10.2
                 set mac e0:51:63:xx:xx:xx
             next
         end
     next
end

config firewall address
     edit "Swisscom-TV-Box"
         set subnet 10.10.10.2 255.255.255.255
     next
     edit "Swisscom_213.3_subnet17"
         set subnet 213.3.0.0 255.255.128.0
     next
     edit "Swisscom Router intern"
         set subnet 192.168.0.1 255.255.255.255
     next
end

Klar – es hätte auch ein MAC-Address-basiertes Firewall-Adressobjekt erstellt werden können, allerdings nutzt das bei den Multicast-Policies nichts, da hier nur IP-basierte Source-Adressobjekte verwendet werden dürfen.

Firewall-technisch braucht die Swisscom TV Box zunächst mal generellen Internetzugang (DNS, NTP, HTTP, HTTPS). Weiterhin verbindet sich die Swisscom TV Box über diverse Ports (tcp/554, 8443, 12700 und udp/4098) zu Adressen aus einem public Swisscom Netz (213.3.0.0/17):

config firewall policy
     edit 2
         set name "general traffic"
         set srcintf "dmz"
         set dstintf "wan1"
         set srcaddr "Swisscom-TV-Box"
         set dstaddr "all"
         set action accept
         set schedule "always"
         set service "DNS" "HTTP" "HTTPS" "NTP"
         set logtraffic all
         set nat enable
     next
     edit 3
         set name "traffic to swisscom"
         set srcintf "dmz"
         set dstintf "wan1"
         set srcaddr "Swisscom-TV-Box"
         set dstaddr "Swisscom_213.3_subnet17"
         set action accept
         set schedule "always"
         set service "ALL"
         set logtraffic all
         set nat enable
     next
 end

Nun geht’s an die Multicast Konfiguration. Zunächst müssen wir auf der Fortigate das Mulitcast Forwarding einschalten (dieses ist in 7.0 bereits per default eingeschaltet). Weiterhin ist es ratsam die TTL der Multicast Paketen nicht zu verändern. Und da wir gleich noch Mulicast-Policies erstellen müssen, bringen wir die hier auch gleich ins GUI:

config system settings
     set multicast-forward enable
     set multicast-ttl-notchange enable
     set gui-multicast-policy enable
end

Bevor wir mit den Multicast Policies starten, hier mal die verwendeten Adressobjekte:

 config firewall multicast-address
     edit "all_hosts"
         set start-ip 224.0.0.1
         set end-ip 224.0.0.1
     next
     edit "all_routers"
         set start-ip 224.0.0.2
         set end-ip 224.0.0.2
     next
     edit "igmp"
         set start-ip 224.0.0.22
         set end-ip 224.0.0.22
     next
     edit "MC_239.186"
         set start-ip 239.186.0.0
         set end-ip 239.186.255.255
     next
     edit "MC_225.0.71.1"
         set start-ip 225.0.71.1
         set end-ip 225.0.71.1
     next
     edit "MC_239.255.255.250"
         set start-ip 239.255.255.250
         set end-ip 239.255.255.250
     next
 end

Je nach Sender wird für den RTP-Stream eine andere Multicast Adresse und ein anderer Port genutzt. Wollt Ihr den Multicast Traffic nicht von/zu jeder Adresse erlauben, müsst Ihr für Eure Sender die passenden IP-Adressen/Ports herausfinden. Aktuell finden wir dafür diese Webseite recht hilfreich: ptv-ch.github.io. (Aber Achtung – die Sender und IPs können über die Zeit natürlich ändern.)

Ausgehend nutzt die Swisscom TV Box IGMP auf nachfolgende Multicast Adressen:

config firewall multicast-policy
     edit 1
         set name "igmp-outbound"
         set logtraffic enable
         set srcintf "dmz"
         set dstintf "wan1"
         set srcaddr "Swisscom-TV-Box"
         set dstaddr "all_routers" "igmp" "MC_239.186" "MC_239.255.255.250" "MC_225.0.71.1"
         set snat enable
         set protocol 2
     next
 end 

Nun geht’s an den eingehenden Traffic. Hierfür müssen wir zum einen eingehendes IGMP vom Swisscom Router selber bis zur Swisscom TV Box erlauben. Und zum zweiten müssen wir noch die eingehenden RTP-Streams fürs TV zulassen. Folgende Firewall Policies funktionieren bei uns:

config firewall multicast-policy
     edit 2
         set name "igmp-inbound"
         set logtraffic enable
         set srcintf "wan1"
         set dstintf "dmz"
         set srcaddr "Swisscom Router intern"
         set dstaddr "igmp" "all_hosts" "MC_239.186"
         set protocol 2
     next
     edit 3
         set name "udp_10000"
         set logtraffic enable
         set srcintf "wan1"
         set dstintf "dmz"
         set srcaddr "Swisscom_213.3_subnet17"
         set dstaddr "MC_239.186"
         set protocol 17
         set start-port 10000
         set end-port 10000
     next
 end

Diese Anleitung funktioniert wahrscheinlich auch mit anderen TV Providern. Prüft einfach über die oben genannte Webseite die genutzten Multicast Adressen und Ports und passt diese entsprechend an.

Und jetzt Glotze an und viel Spass!

Update – Fortinet hat noch einen allgemeinen, aber dennoch interessanten KB-Artikel zum Thema Allowing streaming services over FortiGate veröffentlicht.

 3,300 total views,  6 views today

7 thoughts on “Fortigate und Swisscom TV – zum dritten

  1. JB Reply

    Hallo,

    Funktioniert es bei jemandem?

    Ich denke es gibt ein kleinen Fehler:
    edit “MC_225.0.71.1”
    set start-ip 255.0.71.1
    set end-ip 255.0.71.1
    next

    Es muss sein:

    edit “MC_225.0.71.1”
    set start-ip 225.0.71.1
    set end-ip 225.0.71.1
    next

    Aber ich habe noch nicht geschafft es zu konfigurieren, so dass es funktioniert.

    • sy Post authorReply

      Hi – yes, you are totally right. This is a typo :-(. I will correct it immediately. Thanks for your feedback!

      • JB Reply

        So, it works for the majority of channels, but not for specific ones like RTL HD / SAT.1 / RTL 2 / VOX HD

        The IP addresses for multicasting are in new ranges that I updated. The sound is good, but the image is missing.

        Any advice ?

        • sy Post authorReply

          Is the image missing for all channels or just for the specified ones? Are the channels with the missing image all HD channels?
          Maybe you can use a packet sniffer in the CLI (verbose level 4) to see which packets are beeing blocked by the firewall (CLI: diag sniffer packet any 4)

  2. SA Reply

    Wie ist es vom Setup her mit der Swisscom Internet Box, habt ihr diese vor der Forti geschalten oder konntent ihr die Internet Box der Swisscom komplett durch die Fortigate ersetzten?

  3. Christian Reply

    Ich habe mit dem Setup Swisscom Internet Box vor der Fortigate konfiguriert.
    Von Vorteil wenn DHCP Swisscom Anschluss Fix IP auf Interface machen.
    Da müsst ihr noch ein Address Objekt erstellen “Swisscom_213.3_subnet17”
    Getestet mit Fortigate 101 F und 80F mit Firmware stand 7.0.3

Leave a Reply

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