Mathias Brodala: Zwei Netzwerkverbindungen optimal nutzen

Hallo.

Seit heute stehen mir hier zwei Möglichkeiten zur Verfügung, mich mit dem Internet zu verbinden. Die Verbindung über das Uni-Netzwerk ist zwar enorm schnell, aber auf 3GB für die jeweils letzten 7 Tage beschränkt. Mein T-DSL (3000er) hat dagegen zwar unbegrenzt Traffic ist aber langsamer, was sich insbesondere Upstream bemerkbar macht.

Zum besseren Verständnis hier einmal die Konfiguration:

eth1      Protokoll:Ethernet  Hardware Adresse 42:42:42:42:42:42
          inet Adresse:141.XXX.XXX.XXX  Bcast:141.XXX.XXX.255  Maske:255.255.255.0
          […]

eth2      Protokoll:Ethernet  Hardware Adresse 21:21:21:21:21:21
          inet Adresse:192.168.0.1  Bcast:192.168.255.255  Maske:255.255.0.0
          […]

Hierbei ist „eth1“ die Verbindung zum Uni-Netzwerk und „eth2“ in Verbindung mit „ppp0“ mein T-DSL.

Nun möchte ich gerne die beiden Verbindungen so optimal wie möglich ausnutzen. Hierzu sollen Anfragen an IP-Adressen des Schemas 141.XXX.XXX.XXX ausschließlich über eth1 und alle anderen über eth2/ppp0 laufen. (Uni-Netzwerk-interner Datenverkehr wird nicht im Traffic berücksichtigt.)

Momentan fehlt mir hierzu jedoch ein brauchbarer Ansatz oder ein gutes HowTo. Vorschläge?

Langfristig fände ich es natürlich klasse, wenn sämtliche Anfragen über eth1 laufen würden, bis ein Datenvolumen von etwa 2.9GB erreicht ist. Dann soll diese Verbindung gekappt und eine PPPoE-Verbindung über eth2/ppp0 aufgebaut werden, worüber dann die Anfragen laufen. Nach 7 Tagen soll dann wieder auf eth1 zurückgeschaltet werden und das Spiel von neuem beginnen. Ist so etwas überhaupt machbar oder ein Hirngespinnst?

Der Vollständigkeit halber: das System der Wahl ist Debian Sid.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules
  1. echo $begrüßung;

    eth1      Protokoll:Ethernet  Hardware Adresse 42:42:42:42:42:42
              inet Adresse:141.XXX.XXX.XXX  Bcast:141.XXX.XXX.255  Maske:255.255.255.0
              […]

    eth2      Protokoll:Ethernet  Hardware Adresse 21:21:21:21:21:21
              inet Adresse:192.168.0.1  Bcast:192.168.255.255  Maske:255.255.0.0
              […]

    Hierbei ist „eth1“ die Verbindung zum Uni-Netzwerk und „eth2“ in Verbindung mit „ppp0“ mein T-DSL.

    ethX/pppX klingt nach DSL-Modem ohne eingebauten Router in Zusammenarbeit mit PPPoE im Linux-Kernel oder dem röhrenden Pinguin. eth2 ist in dem Fall sehr uninteressant, da das nur den oE-Teil von PPPoE darstellt und nur für den PPPoE-Treiber wichtig ist. Der Netzwerkverkehr geht ja über ppp0, das bei jeder Einwahl andere Werte bekommt. Du kannst in deinen weiteren Betrachtungen das eth2 komplett außer Acht lassen.

    Nun möchte ich gerne die beiden Verbindungen so optimal wie möglich ausnutzen. Hierzu sollen Anfragen an IP-Adressen des Schemas 141.XXX.XXX.XXX ausschließlich über eth1 und alle anderen über eth2/ppp0 laufen. (Uni-Netzwerk-interner Datenverkehr wird nicht im Traffic berücksichtigt.)

    Erstelle eine Route, die 141.0.0.0/8 auf das Gateway eth1 leitet (warum fängst du bzw. dein System nicht mit eth0 an?). Der PPPoE erstellt bei einer Einwahl die Default-Route auf ppp0, somit geht der restliche Verkehr über den DSL nach draußen.

    Langfristig fände ich es natürlich klasse, wenn sämtliche Anfragen über eth1 laufen würden, bis ein Datenvolumen von etwa 2.9GB erreicht ist. Dann soll diese Verbindung gekappt und eine PPPoE-Verbindung über eth2/ppp0 aufgebaut werden, worüber dann die Anfragen laufen. Nach 7 Tagen soll dann wieder auf eth1 zurückgeschaltet werden und das Spiel von neuem beginnen. Ist so etwas überhaupt machbar oder ein Hirngespinnst?

    Da weiß ich nur, dass es Möglichkeiten gibt, sowas mit Linux/einem Paket zu realisieren, aber Mangels Notwendigkeit habe ich da kein weiteres Wissen/Erfahrungen.

    echo "$verabschiedung $name";

    1. Hallo dedlfix.

      Hierbei ist „eth1“ die Verbindung zum Uni-Netzwerk und „eth2“ in Verbindung mit „ppp0“ mein T-DSL.

      ethX/pppX klingt nach DSL-Modem ohne eingebauten Router in Zusammenarbeit mit PPPoE im Linux-Kernel oder dem röhrenden Pinguin.

      Exakt das ist der Fall.

      Nun möchte ich gerne die beiden Verbindungen so optimal wie möglich ausnutzen. Hierzu sollen Anfragen an IP-Adressen des Schemas 141.XXX.XXX.XXX ausschließlich über eth1 und alle anderen über eth2/ppp0 laufen. (Uni-Netzwerk-interner Datenverkehr wird nicht im Traffic berücksichtigt.)

      Erstelle eine Route, die 141.0.0.0/8 auf das Gateway eth1 leitet (warum fängst du bzw. dein System nicht mit eth0 an?).

      OK, ich werde mir Routing noch einmal eingehender anschauen.

      Zu eth0: dieser Anschluss ist defekt und das schon seit einigen Jahren. Das war auch der Grund, warum ich darüber zu meinen Anfangszeiten bei Debian keine oder nur eine instabile Verbindung aufbauen konnte. Schließe ich das DSL-Modem dort an, leuchtet die LAN-LED nicht auf, schließe ich sie an eth2 an, tut sie es. eth0 ist übrigens ein Onboard-Adapter von SiS und eth1 sowie eth2 Realtek-Karten.

      Einen schönen Freitag noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
  2. Hallo Mathias,

    Zum besseren Verständnis hier einmal die Konfiguration:

    eth1      Protokoll:Ethernet  Hardware Adresse 42:42:42:42:42:42
              inet Adresse:141.XXX.XXX.XXX  Bcast:141.XXX.XXX.255  Maske:255.255.255.0
              […]

    eth2      Protokoll:Ethernet  Hardware Adresse 21:21:21:21:21:21
              inet Adresse:192.168.0.1  Bcast:192.168.255.255  Maske:255.255.0.0

    interessant, es gibt Linux-Distributionen, die es nicht mögen, dass das Interface, über das die PPPoE-Verbindung aufgebaut werden soll, bereits hochgefahren ist. Wenn Du unter Debian auch darauf verzichten _kannst_, das Interface zu konfigurieren, dann _solltest_ Du es tun.

    Hierbei ist „eth1“ die Verbindung zum Uni-Netzwerk und „eth2“ in Verbindung mit „ppp0“ mein T-DSL.

    und was ist mit dem Interface eth0 [1]?

    Nun möchte ich gerne die beiden Verbindungen so optimal wie möglich ausnutzen. Hierzu sollen Anfragen an IP-Adressen des Schemas 141.XXX.XXX.XXX ausschließlich über eth1 und alle anderen über eth2/ppp0 laufen. (Uni-Netzwerk-interner Datenverkehr wird nicht im Traffic berücksichtigt.)

    Momentan fehlt mir hierzu jedoch ein brauchbarer Ansatz oder ein gutes HowTo. Vorschläge?

    Das ist überhaupt kein Problem. Konfiguriere ppp0 als Standardgateway (im Einwahlskript typischerweise drin), fertig.

    Für Anfragen an IP-Adressen aus dem Bereich des Uni-Netzwerks (141.xyz.abc/24) stellt Dein Kernel sowieso fest, dass er sie über eth1 verschicken kann. Solange Du keine statische Route definiert hast (man route), wird er das auch tun. Du musst in diesem Fall nur sicherstellen, dass eth0 auf _keinen_ Fall als Standardgateway konfiguriert wird :-)

    Eine statische Route (die hier aber überflüssig ist), soweit ich Dich verstehe, konfigurierst Du mit

    route add -net 141.xyz.abc.0 netmask 255.255.255.0 dev eth1

    route       # Aufruf des Programms :-)
    add         # füge den Routing-Tabellen des Kernels eine neue Route hinzu
    -net ziel   # Beim Ziel handelt es sich um ein Netzwerk
                # ziel hat hier den Wert 141.xyz.abc.0, Beachte die 0 am Ende,
                # die der verwendeten Netzwerkmaske entspricht.
    netmask Nm  # die zu verwendende Netzwerkmaske, hier 255.255.255.0
    dev If      # zur Angabe des zu nutzenden Netzwerkinterfaces, hier eth

    Falls Du hingegen für _alle_ Netzwerke, die mit 141 beginnen, den Verkehr über eth1 leiten willst, so gehe wie von dedlfix beschrieben vor:

    route add -net 141.0.0.0 netmask 255.0.0.0 dev eth1

    Langfristig fände ich es natürlich klasse, wenn sämtliche Anfragen über eth1 laufen würden, bis ein Datenvolumen von etwa 2.9GB erreicht ist. Dann soll diese Verbindung gekappt und eine PPPoE-Verbindung über eth2/ppp0 aufgebaut werden, worüber dann die Anfragen laufen. Nach 7 Tagen soll dann wieder auf eth1 zurückgeschaltet werden und das Spiel von neuem beginnen. Ist so etwas überhaupt machbar oder ein Hirngespinnst?

    Damit habe ich mich noch nie herumschlagen müssen. Ich gehe davon aus, dass es Software zur entsprechenden Netzwerkverkehrsanalyse gibt, z.B. darkstat oder Wireshark. Nehmen wir an, Du hättest eine solche Software. Dann gehst Du wie folgt vor:

    Standardgateway ist eth1
    Summiere den gesamten Netzwerkverkehr über eth1
    Ziehe davon das Volumen ab, das aus dem Verkehr mit 141.xyz.abc.0 entsteht.
    Wenn Limit erreicht wird, baue die PPPoE-Verbindung auf und konfiguriere ppp0 als Standardgateway.
    Wenn Dir wieder ein Datenvolumen im Uni-Netz zur Verfügung steht, kappe Dein T-DSL und richte wieder eth1 als Standardgateway ein.

    Allerdings würde ich mir Dein Konzept nochmals überdenken:

    Summiere täglich auf. Schalte ab, wenn 2,9 GB erreicht sind. Schalte wieder ein, wenn Du wieder ein Datenvolumen zur Verfügung hast. Du könntest Dir auch ein Tageslimit setzen, beispielsweise 1 GB. Lass Dir was einfallen ...
    Weiterhin wäre es doch günstig, den sowieso vorhandenen T-DSL-Vertrag entsprechend zu nutzen und den wirklich asymmetrischen Verkehr, für den Dein 3000er-DSL schnell genug ist (für mich wäre das ungefähr alles), mitzunutzen. Um so besser kannst Du die hohe Upload-Geschwindigkeit des Uni-Netzwerks nutzen. Verschwende nicht die hohe Bandbreite mit z.B. einfachem Surfen oder nicht zeitkritischen Downloads.

    Freundliche Grüße

    Vinzenz

    [1] Falls Du sonst irgendwo noch eth0 in meinem Text finden solltest,
        so ersetze eth0 durch eth1 :-)

    1. Hallo Vinzenz.

      Zum besseren Verständnis hier einmal die Konfiguration:

      eth1      Protokoll:Ethernet  Hardware Adresse 42:42:42:42:42:42
                inet Adresse:141.XXX.XXX.XXX  Bcast:141.XXX.XXX.255  Maske:255.255.255.0
                […]

      eth2      Protokoll:Ethernet  Hardware Adresse 21:21:21:21:21:21
                inet Adresse:192.168.0.1  Bcast:192.168.255.255  Maske:255.255.0.0

      interessant, es gibt Linux-Distributionen, die es nicht mögen, dass das Interface, über das die PPPoE-Verbindung aufgebaut werden soll, bereits hochgefahren ist. Wenn Du unter Debian auch darauf verzichten _kannst_, das Interface zu konfigurieren, dann _solltest_ Du es tun.

      Warum genau? Ich bin bisher immer wie oben beschrieben vorgegangen. Ist aber auch gut möglich, dass ich mir dies einfach von der Standardkonfiguration von pppoeconf übernommen habe.

      Hierbei ist „eth1“ die Verbindung zum Uni-Netzwerk und „eth2“ in Verbindung mit „ppp0“ mein T-DSL.

      und was ist mit dem Interface eth0 [1]?

      Siehe Antwort auf dedlfix: das ist tot.

      Für Anfragen an IP-Adressen aus dem Bereich des Uni-Netzwerks (141.xyz.abc/24) stellt Dein Kernel sowieso fest, dass er sie über eth1 verschicken kann.

      Interessant, war mir so nicht bewusst.

      Solange Du keine statische Route definiert hast (man route), wird er das auch tun. Du musst in diesem Fall nur sicherstellen, dass eth0 auf _keinen_ Fall als Standardgateway konfiguriert wird :-)

      BTW hier noch die Ausgabe von „route“:

      Kernel IP Routentabelle
      Ziel            Router          Genmask         Flags Metric Ref    Use »» Iface
      217.0.116.26    *               255.255.255.255 UH    0      0        0 ppp0
      141.XXX.XXX.0   *               255.255.255.0   U     0      0        0 eth1
      localnet        *               255.255.0.0     U     0      0        0 eth2
      default         *               0.0.0.0         U     0      0        0 ppp0

      Falls Du hingegen für _alle_ Netzwerke, die mit 141 beginnen, den Verkehr über eth1 leiten willst, …

      Exakt das ist mein Ziel.

      … so gehe wie von dedlfix beschrieben vor:

      route add -net 141.0.0.0 netmask 255.0.0.0 dev eth1

      Danke! Wie finde ich heraus, über welches Interface eine Verbindung geht?

      Allerdings würde ich mir Dein Konzept nochmals überdenken:

      Summiere täglich auf. Schalte ab, wenn 2,9 GB erreicht sind. Schalte wieder ein, wenn Du wieder ein Datenvolumen zur Verfügung hast.

      Stimmt, klingt brauchbar.

      Weiterhin wäre es doch günstig, den sowieso vorhandenen T-DSL-Vertrag entsprechend zu nutzen und den wirklich asymmetrischen Verkehr, für den Dein 3000er-DSL schnell genug ist (für mich wäre das ungefähr alles), mitzunutzen. Um so besser kannst Du die hohe Upload-Geschwindigkeit des Uni-Netzwerks nutzen. Verschwende nicht die hohe Bandbreite mit z.B. einfachem Surfen oder nicht zeitkritischen Downloads.

      Werde ich mir ebenfalls merken. (Bzw. das hiesige Archiv.)

      Einen schönen Freitag noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
  3. Hallo Mathias,

    in der Sache kann ich dir mangels Linux-Insiderwissen wohl nicht helfen. Aber ich kann dich möglicherweise auf einen kleinen Denkfehler aufmerksam machen.

    Die Verbindung über das Uni-Netzwerk ist zwar enorm schnell, aber auf 3GB für die jeweils letzten 7 Tage beschränkt.

    Bist du sicher, dass es sich hier um diskrete Abrechnungszeiträume von je 7 Tagen handelt? Ich glaube das nicht.

    Langfristig fände ich es natürlich klasse, wenn sämtliche Anfragen über eth1 laufen würden, bis ein Datenvolumen von etwa 2.9GB erreicht ist. Dann soll diese Verbindung gekappt und eine PPPoE-Verbindung über eth2/ppp0 aufgebaut werden, worüber dann die Anfragen laufen. Nach 7 Tagen soll dann wieder auf eth1 zurückgeschaltet werden und das Spiel von neuem beginnen.

    Ich würde eher annehmen, dass das 3GB-Limit "fließend" ist, d.h. innerhalb eines kontinuierlich fortgleitenden Zeitfensters darf die Transfermenge die 3GB nicht überschreiten. Das würde, vereinfacht ausgedrückt, bedeuten, dass du heute wieder so viel ziehen darfst wie du vor einer Woche genutzt hast - vorausgesetzt, du warst in der Zwischenzeit ständig am Limit.

    Übrigens: Was für transferintensive Anwendungen hast du denn da, dass dir rund 12GB/Monat nicht ausreichen? Ich habe ja mittlerweile auch eine Flatrate und nutze das Internet eifrig (finde ich jedenfalls). Aber mehr als 5..6GB/Monat sind es bei mir fast nie.

    Ist so etwas überhaupt machbar oder ein Hirngespinnst?

    Eine Art von Traffic Shaping? Sollte es doch eigentlich schon fertig geben ...

    Schönen Tag noch,
     Martin

    --
    F: Was sagt die kleine Kerze zur großen Kerze?
    A: Ich gehe heute nacht aus!
    1. Hallo Martin.

      Die Verbindung über das Uni-Netzwerk ist zwar enorm schnell, aber auf 3GB für die jeweils letzten 7 Tage beschränkt.

      Bist du sicher, dass es sich hier um diskrete Abrechnungszeiträume von je 7 Tagen handelt? Ich glaube das nicht.

      Das Trafficlimit wird in Hinsicht auf die vergangenen 7 Tage berechnet. Heute also vom 02.12 bis 08.12.

      Ich würde eher annehmen, dass das 3GB-Limit "fließend" ist, d.h. innerhalb eines kontinuierlich fortgleitenden Zeitfensters darf die Transfermenge die 3GB nicht überschreiten.

      Exakt.

      Übrigens: Was für transferintensive Anwendungen hast du denn da, dass dir rund 12GB/Monat nicht ausreichen?

      Bittorrent, Systemupdates (täglich), Youtube, Videos/Grafiken, Softwaredownloads allgemein, …

      Je höher die Bandbreite umso geringer die Hemmungen, sie auch maximal zu nutzen.

      Ich habe ja mittlerweile auch eine Flatrate und nutze das Internet eifrig (finde ich jedenfalls). Aber mehr als 5..6GB/Monat sind es bei mir fast nie.

      Aber auch nicht weniger, oder? Denn dann würden auch dir die 3GB nicht ausreichen.

      Ist so etwas überhaupt machbar oder ein Hirngespinnst?

      Eine Art von Traffic Shaping? Sollte es doch eigentlich schon fertig geben ...

      Sieht so aus (siehe dedlfix und Vinzenz). Ich werde später einmal sehen, ob ich dies irgendwie eingerichtet bekomme.

      Einen schönen Freitag noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
      1. Hallo nochmal.

        Übrigens: Was für transferintensive Anwendungen hast du denn da, dass dir rund 12GB/Monat nicht ausreichen?

        Bittorrent, Systemupdates (täglich), Youtube, Videos/Grafiken, Softwaredownloads allgemein, …

        … Newsfeeds, Mails. (Beides reichlich; täglich im Hunderter-Bereich.)

        Einen schönen Freitag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
      2. Hallo,

        Übrigens: Was für transferintensive Anwendungen hast du denn da, dass dir rund 12GB/Monat nicht ausreichen?
        Bittorrent, Systemupdates (täglich), Youtube, Videos/Grafiken, Softwaredownloads allgemein, …
        Je höher die Bandbreite umso geringer die Hemmungen, sie auch maximal zu nutzen.

        wenn du meinst ... das geht mir nicht so.

        Ich habe ja mittlerweile auch eine Flatrate und nutze das Internet eifrig (finde ich jedenfalls). Aber mehr als 5..6GB/Monat sind es bei mir fast nie.
        Aber auch nicht weniger, oder?

        Doch, der genannte Wert war als selten auftretender Spitzenwert gemeint. Normalerweise liege ich eher bei 2..3GB. Pro Monat, wohlgemerkt, nicht pro Woche!

        Eine Art von Traffic Shaping? Sollte es doch eigentlich schon fertig geben ...
        Sieht so aus (siehe dedlfix und Vinzenz). Ich werde später einmal sehen, ob ich dies irgendwie eingerichtet bekomme.

        Dann viel Erfolg dabei.

        Schönes Wochenende,
         Martin

        --
        Der Mensch denkt, Gott lenkt.
        Der Mensch dachte, Gott lachte.