FortiGate Traffic Shaping per Application / Application Category / URL Category

Neben reinem Traffic Shaping auf Source-/Destination-Basis lässt sich ein Traffic Shaping auch basierend auf einzelnen Anwendungen, Anwendungskategorieren und URL-Kategorien realisieren. Im folgenden Beispiel zeige ich eine solche Konfiguration für ein Shaping von Media-Streaming Diensten wie Netflix und Amazon Video.

Traffic Shaper

Im ersten Schritt lege ich 2 Shared Traffic Shaper an, einen für den Upstream, einen für den Downstream (mediastreaming-down) und einen für den Upstream (mediastreaming-up). Im Downstream stelle ich als Bandbreite 16 MBit / 24 MBit garantiert / maximal ein, im Upstream 3 MBit / 4 MBit.

config firewall shaper traffic-shaper
   edit mediastreaming-down
     set guaranteed-bandwidth 16000
     set maximum-bandwidth 24000
     set priortiy high
   next
   edit mediastreaming-up
      set guaranteed-bandwidth 3200
      set maximum-bandwidth 4800
      set priortiy high
   next
end
Traffic Shaping Policy

Im Anschluss erstelle ich eine Traffic Shaping Policy. In diese baue ich Application-Category-Filter für Video/Audio, Application-Filter für Netflix/Amazon und URL-Category-Filter für Streaming Media and Download ein (ist doppelt/dreifach gemoppelt, dient hier auch lediglich der Anschauung – eine Filtertyp reicht in der Regel).

config firewall shaping-policy
   edit <ID>
      set srcaddr all
      set dstintf wan1
      set dstaddr all
      set service ALL
      set traffic-shaper mediastreaming-down
      set traffic-shaper-reverse mediastreaming-up
      set app-category 5
      set application 28046 18155 38500 30184 2884
      set url-category 25
   next
end
Firewall Policy

Abschließend muss noch eine Firewall Policy erstellt werden, die ein Application-Filter-Profil enthält und die App-Categories der Shaper-Policy matcht, falls diese nicht schon existiert.

config firewall policy
   edit <ID>
      set srcintf internal
      set srcaddr all
      set dstintf wan1
      set dstaddr all
      set service ALL
      set action accept
      set schedule always
      set appfilter-profile <Media-AppFilter-Profile>
      set nat enable
   next
end

4 Antworten

  1. Wir sind eine Schule und bekommen nächste Woche an einer GigaBit-Leitung eine Firewall Fortigate-80E-S. Dort werden zwei Kanäle geschaltet, an denen zwei verschiedene lokale Netze hängen. Ist es möglich, die Fortigate so zu konfigurieren, dass im Konfliktfall die Datenpakete des 1. Kanals mit 80% Gewicht durchkommen und die Datenpakete des 2. Kanals nur mit 15%. Die Prozentsätze sind nicht in Stein gemeißelt, könnten auch anders gewählt werden. Es geht nur darum, ob so ein Verfahren prinzipiell möglich ist. Für eine Hilfe wären wir sehr dankbar. Uns wurde nämlich gesagt, dass das nicht möglich wäre.

    • Verstehe ich dich richtig, 3 Ports (Kanäle?), einer WAN, einer LAN1, einer LAN2? LAN1 zu WAN 80% Bandbreite, LAN2 zu WAN 15% Bandbreite, falls die Leitung am Limit ist? Das geht so meines Wissens nach nicht. Ein Traffic Shaper in FortiOS arbeitet mit Prioriäten, nicht mit prozentualen Werten. Prinzipiell greift in FortiOS ein Traffic Shaper eh nur, wenn die Leitungsressourcen ausgelastet sind (das wäre ja quasi dein „Konfliktfall“). Was dann eben möglich ist, ist den Traffic von LAN1 hoch zu priorisieren und LAN2 niedrig zur priorisieren. Das kann aber auch dazu führen, das von LAN2 überhaupt kein Traffic mehr akzeptiert wird, je nach Auslastung. Das ist jetzt natürlich etwas „vereinfacht“ erklärt. Einen guten Artikel dazu findest du hier: https://blog.boll.ch/traffic-shaping-auf-der-fortigate/ (ist zwar für FortiOS 5.4, gilt aber Stand 7.0 immer noch).

      • Joseph Deventer sagt:

        Vielen Dank für die schnelle Antwort und den Link!

        • Ein Update hierzu nochmal.
          Mit FortiOS 7 hat Fortinet sog. Traffic Shaping Profiles eingeführt. Hierin können „Class IDs“ konfiguriert werden und es könnten auch Prozentwerte statt absolute Werte verwendet werden. Das ist aber so neu, dass ich das selbst noch nicht ausprobiert habe und auch noch nicht weiß, wie das genau funktioniert.
          Wenn du das ausprobierst, würde ich mich über ein Feedback in diesem Beitrag natürlich freuen :-).
          Gruß
          Andreas

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.