Kefk Network Home Kefk Network : Kefk Network GNU/Linux GNU/Linux | Über Kefk Network GNU/Linux About | Kefk Network GNU/Linux Wiki Wiki. Changelog | Index | Inhalt | Site Map | Suchen
Administration | Akteure | Anwendungen | Berlin | Business | Chronik | Counter | Desktop | Development | Distributionen | Dokumentation | Hardware | Jobs | Kernel | Lernen | Literatur | Meinung | Microsoft Windows | Netmarks | News | PDA | Praxis | Reviews | Server | Shell | Shopping | Software | Standards | Tagebuch | Theorie | Window Manager | Worldwide | X11.

 

Bandbreiten-, Traffic- und Packet-Shaping unter GNU/Linux

Administration : NetworkingTraffic Shaping : Übersicht
18-Dec-2004/09-Jan-07


Übersicht

Traffic Shaping ist ein Verfahren in der Telekommunikation, bei dem beim Senden der Fluss von IP-Paketen, ATM-Zellen, Ethernet-Frames oder anderen Transfer-Einheiten nach definierten Kriterien gesteuert wird. Er ist unidirektional, d.h. er arbeitet im Gegensatz zur Datenflusskontrolle ohne Steuerinformationen der Gegenseite. Kriterien können z.B. Prioritäten sein oder auch der Zell-Jitter. Traffic Shaping kann erforderlich werden, um bestimmte Dienste wie Voice-over-IP störungsfrei nutzen zu können.

Um den Netzwerkverkehr kontrollieren zu können, ist eine Klassifikation der Inhalte des Datenstroms erforderlich (z.B. mit Iptables); Bandbreiten-, Traffic- und Packet-Shaping sind daher eng verwandt mit Congestion Management und Quality of Service (QoS).

Der Linux-Kernel unterstützt seit der Version 2.2 Traffic Shaping; seit Version 2.4.20 wurde die Unterstützung so weit verbessert, dass es meist nicht mehr notwendig sein dürfte, den Kernel zu patchen. Die wichtigsten Shaping-Tools sind im Paket Iproute2 enthalten; mit Tcng kann die Konfiguration von Tc vereinfacht werden.

Tools

Das Paket Iproute2 bzw. Tc (Traffic Control) besteht im Wesentlichen aus folgenden Tools:

  • tc: The main command
  • ip: The main command
  • tc-bfifo: Byte limited First In First Out (redirect to pbfifo)
  • tc-filter: tc filters in depth
  • tc-cbq: The Class Based Queueing qdisc
  • tc-cbq-details: The Class Based Queueing qdisc in gory detail
  • tc-dsmark: The DiffServ qdisc
  • tc-htb: The Hierarchy Token Bucket qdisc
  • tc-pbfifo: Packet & byte limited First In First Out
  • tc-pfifo: Packet limited First In First Out (redirect to pbfifo)
  • tc-pfifo_fast: Default three-band scheduler
  • tc-prio: N-band classful scheduler
  • tc-red: Random Early Detection
  • tc-sfq: Stochastic Fairness Queueing
  • tc-tbf: Token Bucket Filter

Weitere Hilfsmittel (bei Debian GNU/Linux installierbar über apt-get):

  • iprelay: User-space bandwidth shaping TCP proxy daemon
  • libapache-mod-iptos: Modify IPTOS bits on outbound data for fine-tuned traffic shaping
  • shaper: Traffic shaper init script (cbq.init) for Linux
  • shorewall: Shoreline Firewall (Shorewall), unterstützt Traffic Shaping
  • wondershaper: Easy to use traffic shaping script

Konfiguration

Mit dem Userspace-Kommando ip kann man die aktuelle Konfiguration anzeigen lassen.

Links

Anzeigen der Links:

gw:~# ip link list
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:04:76:1b:52:34 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:01:02:f0:96:9b brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 30
link/ppp

IP-Adressen

Anzeigen der IP-Adressen:

gw:~# ip address show
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:04:76:1b:52:34 brd ff:ff:ff:ff:ff:ff
inet 192.168.101.1/24 brd 192.168.101.255 scope global eth0
inet6 fe80::204:76ff:fe1b:5234/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:01:02:f0:96:9b brd ff:ff:ff:ff:ff:ff
inet6 fe80::201:2ff:fef0:969b/64 scope link
valid_lft forever preferred_lft forever
4: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1492 qdisc pfifo_fast qlen 30
link/ppp
inet 62.158.3.127 peer 217.5.98.87/32 scope global ppp0

Routen

Anzeigen der Routen:

gw:~# ip route show
217.5.98.87 dev ppp0 proto kernel scope link src 62.158.3.127
192.168.101.0/24 dev eth0 proto kernel scope link src 192.168.101.1
default via 217.5.98.87 dev ppp0

Zum Vergleich die Ausgabe des alten Route-Kommandos:

gw:~# route -n
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
217.5.98.87     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.101.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         217.5.98.87     0.0.0.0         UG    0      0        0 ppp0

ARP

Anzeigen der aktuellen ARP-Tabelle (vgl. Address Resolution Protocol, RFC 826, www.faqs.org/rfcs/rfc826.html):

gw:~# ip neigh show
2001:6c8:6:1::3 dev eth0 nud failed
192.168.101.129 dev eth0 lladdr 00:0c:6e:1f:2a:76 nud reachable

Rules

Aneigen der Routing policy database (Rules):

gw:~# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

Einfaches Source Policy Routing

Lokale Routing-Tabelle:

gw:~# ip route list table local
broadcast 192.168.101.255 dev eth0 proto kernel scope link src 192.168.101.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.101.0 dev eth0 proto kernel scope link src 192.168.101.1
local 192.168.101.1 dev eth0 proto kernel scope host src 192.168.101.1
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 62.158.3.127 dev ppp0 proto kernel scope host src 62.158.3.127
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1

»Main«-Tabelle:

gw:~# ip route list table main
217.5.98.87 dev ppp0 proto kernel scope link src 62.158.3.127
192.168.101.0/24 dev eth0 proto kernel scope link src 192.168.101.1
default via 217.5.98.87 dev ppp0

Kernel

Thomas M. Eastep, Autor der Shoreline Firewall (Shorewall), beschreibt unter www.shorewall.net/traffic_shaping.htm ausführlich die von ihm eingesetzte Konfiguration für Traffic Shaping/ Control. Er verwendet dazu folgende Kernel-Parameter:

Abbildung: Screenshot von einer exemplarischen QoS-Konfiguration des Linux-Kernels (Quelle: www.shorewall.net/images/QoS.png; Zugriff: 18-Dec-2004; Lizenz: GNU FDL)

Anwendungsbeispiel

Beim TCP/IP-Datenverkehr muss der Empfang einer bestimmten Menge an Daten von der Gegenseite bestätigt werden, bevor der Sender neue Daten versenden darf. Kommen diese Empfangsbestätigungen nicht schnell genug, muss der Sender warten und es kommt zu Verzögerungen und Einbrüchen der Transferrate. Gerade bei ADSL kann es passieren, dass man einen Download ausbremst, indem man den Rückkanal (der ohnehin die kleinere Bandbreite hat) mit einem Upload verstopft, so dass nicht mehr genügend Bandbreite für die Empfangsbestätigungen des Downloads zur Verfügung steht. Verzögerungen innerhalb der DSL-Strecke tun ihr übriges, sodass durch Uploads die Transferrate der Downloads einbricht.

Um diesen Effekt zu kompensieren, erhöhen einige DSL-Treiber bzw. Tuning-Programme die TCP Window-Größe, so dass der Sender mehr Daten verschicken darf, bevor er auf eine Empfangsbestätigung warten muss. Dieser Vorteil wird aber durch eine deutliche Erhöhung der Latenz (Ping-Zeiten) erkauft, so dass das Surfen während eines Datentransfers ungewöhnlich langsam ist. Messungen haben ergeben, dass Werte für die TCP Window-Größe über 64k sowieso "nichts mehr bringen", d.h. trotz riesiger Windows kommt man nicht auf den vollen Datendurchsatz.

Das Traffic Shaping analysiert nun den anfallenden Datenverkehr in beide Richtungen und priorisiert die Datenpakete so, dass Uploads die DSL-Strecke nicht mehr verstopfen und Downloads sich nicht gegenseitig ausbremsen. Dies bringt folgende Vorteile:

  • Volle Download-Rate trotz Uploads,
  • Volle Download-Rate bei mehreren Downloads und Uploads,
  • Responsives Verhalten beim Surfen (bessere Ping-Zeiten)

Siehe auch

  • Quality of Service (QoS)

Netmarks

Iproute2,
www.tux.org/pub/net/ip-routing.

Netfilter/Iptables,
www.netfilter.org.

Shane Chen: Linux traffic shaping,
www.knowplace.org/shaper,
www.knowplace.org/shaper/protocols.html ,
www.knowplace.org/shaper/qdisc.html,
www.knowplace.org/shaper/requirements.html,
www.knowplace.org/shaper/examples.html,
www.knowplace.org/shaper/resources.html.

LARTC.org: Linux advanced Routing & Traffic Control HOWTO,
lartc.org (ASCII, HTML, PostScript, PDF).

ADSL Bandwidth Management HOWTO,
www.ibiblio.org/.../ADSL-Bandwidth-Management-HOWTO.html

Linux 2.2 Packet Shaping HOWTO,
svana.org/kleptog/Packet-Shaping-HOWTO.txt.

The Traffic Control HOWTO,
www.tldp.org/HOWTO/Traffic-Control-HOWTO.

Quality of Service Networking,
www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm.

Traffic Control using tcng and HTB HOWTO,
www.ibiblio.org/.../Traffic-Control-tcng-HTB-HOWTO.html.

Shorewall: Traffic Shaping/Control,
www.shorewall.net/traffic_shaping.htm.

Bert Hubert: The Wonder Shaper,
lartc.org/wondershaper.

Traffic Shaping unter Linux,
linuxwiki.org/TrafficShaper.

Jason Boxman: Installing and Using tcng under Debian GNU/Linux,
talk.trekweb.com/~jasonb/articles/tcng_shaping.html.

»Traffic shaping on Linux has been possible for ages, but the tools and syntax have always been arcane and the machinery behind them magic. In 2001, Werner Almesberger began work on tcng, a replacement for the arcane and poorly documented tc command that comes bundled with the iproute2 package used for traffic control in conjunction with the Linux kernel. What follows is an attempt to demystify traffic control with tcng, including installation, configuration, and monitoring«.

Quelle und Lizenz

Ein Teil dieses Artikels stammt aus Wikipedia, der freien Enzyklopädie:
Artikel | Versionen | Bearbeiten | Diskussion | Backlinks | Drucken.
Stand: 13. Aug 2004 21:37.
Lizenz: Der Inhalt dieser Seite steht unter der GNU Free Documentation License.

Anmerkungen

Forum: (Anmerkungen in diesem Forum: )

Neue Anmerkung verfassen
Darstellungsmodus : Alle | Voransicht | Nur Titel | Aktualisieren
Besuchen Sie 2eNetWorX und Open Source & Free Software für weitere freie Software-Projekte unter Win32.

Traffic Shaping:
Nach oben
Wer ist online?
Name: Besucher.
Online: 4 aktive User.
Login | Logout
Monitoring:
Benachrichtigen bei Änderungen:

mi.gif (12x15 -- 70 bytes)Top-Distributionen:
Debian GNU/Linux 3.1 »Sarge«,
mit Debian-Anwenderhandbuch.


DVD-ROM +
Bonus-DVD
amazon_small.gif (55x15 -- 576 bytes)EUR 49,90
(versandkostenfrei)


Debian GNU/Linux Power Pack.
von Peter H. Ganten und Wulf Alex.

3540432507.03.MZZZZZZZ.jpg (93x140 -- 3556 bytes)
946 Seiten, zwei DVDs
amazon_small.gif (55x15 -- 576 bytes)EUR 69,95
(versandkostenfrei)

mi.gif (12x15 -- 70 bytes)Ubuntu:
Ubuntu/Kubuntu 5.10,
mit Handbuch.


amazon_small.gif (55x15 -- 576 bytes)EUR 29,90
(versandkostenfrei)


mi.gif (12x15 -- 70 bytes)SuSE Linux:
SUSE Linux 10.0 deutsch.
von Novell


amazon_small.gif (55x15 -- 576 bytes)EUR 48,95
(versandkostenfrei)


SuSE Linux 9.3 Professional
von Novell.


amazon_small.gif (55x15 -- 576 bytes)EUR 82,99
(versandkostenfrei)


SuSE Linux 9.3 Professional Update.
von Novell


amazon_small.gif (55x15 -- 576 bytes)EUR 59,95
(versandkostenfrei)

mi.gif (12x15 -- 70 bytes)Red Hat Linux:
Red Hat Linux Professional Workstation.

3827207525.03.MZZZZZZZ.jpg (134x150 -- 5811 bytes)
amazon_small.gif (55x15 -- 576 bytes)EUR 99,95
(versandkostenfrei)


Red Hat Linux 9 Personal.
Red Hat Linux 9 Professional.

3827207479.03.MZZZZZZZ.jpg (116x140 -- 3312 bytes)
amazon_small.gif (55x15 -- 576 bytes)ab EUR 39,99
(versandkostenfrei)

mi.gif (12x15 -- 70 bytes)Literaturhinweise:
Linux Administration Handbook
von Evi Nemeth, Garth Snyder u.a.

0130084662.03.MZZZZZZZ.jpg (104x140 -- 6538 bytes)

Englische Originalausgabe - 850 Seiten - 2002
amazon_small.gif (55x15 -- 576 bytes)EUR 49,90 (versandkostenfrei)
Deutsche Ausgabe - 998 Seiten - 2003
amazon_small.gif (55x15 -- 576 bytes)EUR 39,95 (versandkostenfrei)


The Linux Cookbook
von Michael Stutz

1886411484.01.MZZZZZZZ.jpg (110x140 -- 6489 bytes)
Englische Originalausgabe - 306 Seiten - 2001
amazon_small.gif (55x15 -- 576 bytes)EUR 36,50 (versandkostenfrei)

Linux Cookbook
von Carla Schroder
Englische Originalausgabe (O'Reilly)
553 Seiten - 2004
amazon_small.gif (55x15 -- 576 bytes)EUR 40,90 (versandkostenfrei)


Linux Rute User's Tutorial and Exposition
von Paul Sheer

0130333514.01.MZZZZZZZ.jpg (106x140 -- 6836 bytes)
amazon_small.gif (55x15 -- 576 bytes)
Englische Originalausgabe - 630 Seiten - 2001

mi.gif (12x15 -- 70 bytes)Amazon.de:
Suchen in:
Suchbegriffe:
Über Amazon.de
Kefk Network:
Thematisch verwandte Subsites:
Apple, BSD, Hardware, Internet, Microsoft Windows, Networking, Open Content, Open Source & Free Software, Politik, Recht, Safety, Security, Shopping, Software, The Tark, Webworking, Wissen.
Kefk Network Home
Hacker Emblem glider.png (55x55 -- 724 bytes)

 

Zurück ] Weiter ]

URL: http://www.kefk.net/Linux/Administration/Networking/Traffic.Shaping/index.asp.
Translate this page to   Service provided by Google.
Website: About | Index | Inhalt | Site Map | Suchen | Wer ist online? | What's new?.
Thematisch verwandte Subsites: Apple | BSD | Open Source | Project »Tark« | Software | UNIX | Windows | Wissen.
Mirrors: Connected | DAHB | Debian-Howto | Jargon File | Linuxfibel | Linux-Buch | RUTE | SelfLinux | TeX.
Ergänzungen, Kommentare und Fragen: Kontakt | Foren | Wiki.
E-Mail: echo "asb at keNOSPAMfk.net"| sed -e "s/ at /@/" -e "s/NOSPAM//".
Registered Linux user: #34377 <http://counter.li.org>.
  Copyright | Credits | Disclaimer | Impressum | Rechtliche Hinweise | Wayback Machine.