Traffic Shaping

Consystor

New Member
Hallo Leute!

Habe da ein Problem mit Traffic Shaping. Es liegt weniger an FreeBSD und ipfw (dummynet) als an der ganzen Sache an sich. Diese sieht nämlich folgendermaßen aus:
Habe drei Systeme

Router
IP 192.168.0.254

FreeBSD-Gateway per Kabel am Router angeschlossen
IP 192.168.0.1
Gateway 192.168.0.254

Windows-Client per WLAN am Router angeschlossen
IP 192.168.0.7
Gateway 192.168.0.1

Wie anhand der Daten schon zu sehen ist möchte ich, dass der Windows-Client über den FreeBSD-Gateway ins Netz geht, damit der Windows-Client nicht die volle Bandbreite nutzt.
Dazu limitiere ich die Bandbreite per ipfw auf dem FreeBSD-Gateway, indem ich die folgenden Regeln setze:
ipfw add pipe 1 ip from 192.168.0.7 to any
ipfw add pipe 1 ip from any to 192.168.0.7
ipfw pipe 1 config bw 10KByte/s

Wenn ich nun mit dem Windows-Client im Netz surfe, dann kann ich wirklich nur mit knapp 10kB/s senden. Soweit so gut, ABER:
Leider kann ich am Windows-Client immernoch mit voller Bandbreite empfangen..
Dies liegt wohl daran, dass der Router die Pakete für den Windows-Client direkt an diesen weitergibt, anstatt diese nur dem FreeBSD-Gateway zu senden, der diese dann an den Windows-Client weitersenden würde.

Hat jemand eine andere Idee, wie ich die Bandbreite für den Windows-Client limitieren könnte, ohne die physische Struktur des Netzes zu ändern? Der Router ist außerdem eine FritzBox 7170 ohne QoS :-(

Consy
 
Vielleicht funktioniert es dem Windowsrechner eine IP in einem anderen Netz zu geben, und dem FreeBSDrechner zusätzlich ebenfalls eine IP aus diesem Netz, dann in Windows den Gateway auf die 2. Adresse im FreeBSDrechner.
 
Hallo!

So wollte ich das schon machen aber dazu müsste der FreeBSD zwei IPs haben und damit normalerweise zwei Netzwerkkarten. Oder kennst du ne einfache Methode, wie ich den FreeBSD Rechner mit einer Netzwerkkarte auf zwei IPs gleichzeitig hören lasse?

Consy

EDIT:
Habe da was für Linux? gefunden:
ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
ifconfig eth0:2 192.168.0.3 netmask 255.255.255.0 broadcast 192.168.0.255
Ich glaube da muss ich bisl googlen...

EDIT2:
O.K. Also mit alias gehts:
ifconfig rl0 192.168.1.1
ifconfig rl0 192.168.2.1 alias

Thanx Maledictus für die Anregung!!! Dann probier ich es nochmal so...

Consy
 
Zuletzt bearbeitet:
wenn dein interface zum beispiel fxp0 heist,

dann für die erste ip:
ifconfig fxp 192.168.0.2 netmask 255.255.255.0

und für die zweite:
ifconfig fxp 192.168.0.1 netmask 255.255.255.255 alias

gruss k33n
 
das passt schon,
The following parameters may be set with ifconfig:

alias Establish an additional network address for this interface. This
is sometimes useful when changing network numbers, and one wishes
to accept packets addressed to the old interface. If the address
is on the same subnet as the first network address for this
interface, a non-conflicting netmask must be given. Usually
0xffffffff is most appropriate.


k33n
 
man kann natürlich keine 2 Netzmasken für ein Netz angeben
(Netzmasken trennen diese ja schliesslich ;)


Pro Interface kann man allerdings soviele Netzwerke angeben wie man will.
(Ist bei Jails zb nötig)

If the address
is on the same subnet as the first network address for this
interface, a non-conflicting netmask must be given. Usually
0xffffffff is most appropriate.

ich habs grad nochmal probiert, ich kann jede Adresse aus dem selben oder einem anderen
Subnet angeben und alle problemlos erreichen.


Und solange kein Router diese Netze physikalisch trennt,
werden sich die Rechner auch untereinander erreichen, da der arp request scheinbar
nur nach der ip fragt, und nicht nach dem Netz.

Ich nehm mal an, das es nicht funktioniert, weil der Windows Client seine Pakete immer schön an die MAC
Adresse vom FBSD Gateway schickt, dieser aber nicht die MAC vom Windows Client ändert
und der Router beim zurücksenden den Windows Client direkt anspricht, da er seine MAC Adresse ja kennt.

Vielleicht hilft NAt auf dem Gateway?
 
Zurück
Oben