Pytanie o mechanizm dowiązania komputera klienta do taryfy (zapytanie SQL)
Witam,
tak się bawię własnym skryptem generującym rc.limits i zastanawiam się nad rozwiązaniem problemu dowiązania komputera klienta do taryfy. W czym rzecz. Oto przykład:
Klient BB Aa (np ID 1240) ma trzy komputery:
komputer A - osobna taryfa 128kbps komputer B - osobna taryfa 128kbps komputer C - osobna taryfa 610kbps
na chwilę obecną lms-traffic-htbiptlimits generuje coś mniejwięcej takiego:
/usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.88.183 -j MARK --set-mark 964 /usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.89.4 -j MARK --set-mark 964 /usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.89.5 -j MARK --set-mark 964 /sbin/tc class add dev eth1 parent 1:19999 classid 1:482 htb rate 264kbit ceil 866kbit burst 33kbit /sbin/tc filter add dev eth1 protocol ip parent 1: handle 964 fw classid 1:482
czyli sumuje downceil/downrate i tworzy z tego jedną klasę. Czy w w/w przypadku nie lepiej było by zrobić coś w ten deseń ?
/usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.88.183 -j MARK --set-mark 964 /usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.89.4 -j MARK --set-mark 965 /usr/sbin/iptables -t mangle -A LIMITS -s xx.xx.89.5 -j MARK --set-mark 966 /sbin/tc class add dev eth1 parent 1:19999 classid 1:482 htb rate 264kbit ceil 866kbit burst 33kbit /sbin/tc class add dev eth1 parent 1:482 classid 1:483 htb rate 128kbit ceil 128kbit burst 33kbit /sbin/tc class add dev eth1 parent 1:482 classid 1:484 htb rate 128kbit ceil 128kbit burst 33kbit /sbin/tc class add dev eth1 parent 1:482 classid 1:485 htb rate 8kbit ceil 610kbit burst 33kbit /sbin/tc filter add dev eth1 protocol ip parent 1: handle 965 fw classid 1:483 /sbin/tc filter add dev eth1 protocol ip parent 1: handle 966 fw classid 1:484 /sbin/tc filter add dev eth1 protocol ip parent 1: handle 964 fw classid 1:485
dla wielu komputerów w jednej taryfie generuje poprawnie. Sam algorytm budowania klas w klasie jest prosty, o tyle mam problem z zapytaniem SQL, które wiąże komputery klienta z odpowiednią taryfą.
w pliku lms-traffic-htbiptlimits "zauważyłem", że jest tam robiona suma wartości downceil/downrate - to samo tyczy się z wartościami dla uploadu.
I teraz moje pytanie - o odpowiednie zapytanie SQL, które mogło by dopasować odpowiedni "IP" do danej taryfy. Jak rozwinąć ten przykład ?
mysql> SELECT tariffid FROM assignments WHERE customerid = 1240; +----------+ | tariffid | +----------+ | 44 | | 44 | | 32 | +----------+ 3 rows in set (0.00 sec)
widzę, ze customerid = 1240 to trzy osobne taryfy - odpowiednio 44, 44, 32 dla różnych komputerów. Jednakże jak to "dowiązać" wyciągająć z BAZY dopisane do taryfy komputery klienta ? (jeśli są dwie "taryfy" te same z osobna ?)
uczestnicy (1)
-
Krzysztof Taraszka