Skip to content

fw.sh shaper

Dariusz Kowalczyk edited this page Sep 17, 2018 · 3 revisions

fw.sh shaper_stop|shaper_start|shaper_restart|shaper_stats

ta opcja przydaje się jeśli mamy skonfigurowany LMS w ten sposób, że komputerom przypisane zostały taryfy. Skrypt obsługuje także taryfe nocną (opcja shaper_restart). Dzialanie Shapera jest zoptymalizowane dla duzych ilości komputerów i taryf.

fw.sh shaper_stop

Zatrzymuje Shaper

fw.sh shaper_stop

Uruchamia Shaper

fw.sh shaper_restart

Pobiera plik konfiguracyjny Shapera ze zdalnego serwera (LMS) a nastepnie zatrzymuje i ponownie uruchamia Shaper z nową konfiguracją.

Aby dostosować ustawienia zadań wykonywanych przez moduł shaper w cron do własnych potrzeb, należy wyedytowac funcję fw_cron w pliku fwfunction, a jeśli już skrypt pracuje (został uruchomiony produkcyjnie) to także plik /etc/cron.d/fw_sh

Domyślne wartości ustawione dla funkcji fw_cron:

Terminy przeładowania skryptu ./fw.sh z opcją shaper_restart dla taryfy nocnej od 22:00 do 10:00:

"00 22 * * * /opt/gateway/scripts/fw.sh shaper_restart" "00 10 * * * /opt/gateway/scripts/fw.sh shaper_restart"

Format pliku konfiguracyjnego dla modułu Shapera, którego nazwę określa się w zmiennej "shaper_file" w pliku fw.conf:

Plik musi zaczynać się od deklaracji poniższych parametrów. Jeśli te parametry nie zostaną podane, zostaną użyte domyślne parametry określone w pliku fw.conf.

ISP_RX_LIMIT=470000kbit

ISP_TX_LIMIT=470000kbit

GW_TO_LAN_RATE_LIMIT=100kbit

GW_TO_LAN_CEIL_LIMIT=200000kbit

GW_TO_WAN_RATE_LIMIT=100kbit

GW_TO_WAN_CEIL_LIMIT=50000kbit

LAN_UNCLASSIFIED_RATE_LIMIT=16kbit

LAN_UNCLASSIFIED_CEIL_LIMIT=128kbit

WAN_UNCLASSIFIED_RATE_LIMIT=16kbit

WAN_UNCLASSIFIED_CEIL_LIMIT=128kbit

GW_TO_LAN_PRIORITY=2

GW_TO_WAN_PRIORITY=2

LAN_UNCLASSIFIED_PRIORITY=7

WAN_UNCLASSIFIED_PRIORITY=7

LAN_HOSTS_PRIORITY=2

WAN_HOSTS_PRIORITY=2

ISP_RX_LIMIT oraz ISP_TX_LIMIT to wynikające z kontraktu z operatorem nadrzędnym parametry łącza dostępowego do sieci Internet pomniejszone o ok 5-10% aby uniknąc zapełniania kolejki modemu operatora.

GW_TO_LAN_RATE_LIMIT to gwarantowana prędkość dla ruchu wychodzącego do sieci LAN, którego źródłem jest Gateway na którym pracuje skrypt fw.sh

GW_TO_LAN_CEIL_LIMIT to limit ruchu wychodzącego do sieci LAN, którego źródłem jest Gateway na którym pracuje skrypt fw.sh

GW_TO_WAN_RATE_LIMIT to gwarantowana prędkośc dla ruchu wychodzącego do sieci WAN, którego źródłem jest Gateway na którym pracuje skrypt fw.sh

GW_TO_WAN_CEIL_LIMIT to limit ruchu wychodzącego do sieci WAN, którego źródłem jest Gateway na którym pracuje skrypt fw.sh

LAN_UNCLASSIFIED_RATE_LIMIT to gwarantowana prędjość dla ruchu wychodzącego do sieci LAN nie sklasyfikowanego, czyli komputerów urządzeń nie ujętych w pliku konfiguracyjnym dla modułu Shaper

LAN_UNCLASSIFIED_CEIL_LIMIT to limit dla ruchu wychodzącego do sieci LAN nie sklasyfikowanego, czyli komputerów urządzeń nie ujętych w pliku konfiguracyjnym dla modułu Shaper

WAN_UNCLASSIFIED_RATE_LIMIT to gwarantowana prędkość dla ruchu wychodzącego do sieci WAN nie sklasyfikowanego, czyli komputerów urządzeń nie ujętych w pliku konfiguracyjnym dla modułu Shaper

WAN_UNCLASSIFIED_CEIL_LIMIT to limit dla ruchu wychodzącego do sieci WAN nie sklasyfikowanego, czyli komputerów urządzeń nie ujętych w pliku konfiguracyjnym dla modułu Shaper

W siedmiostopniowej skali od 1 do 7 gdzie 1 oznacza najwyższy prioryter a 7 najniższy okraślane sa także prirytety dla nastepującyh grup.

GW_TO_LAN_PRIORITY - proprytet dla pakietów wysyłanych z GW do sieci LAN.

GW_TO_WAN_PRIORITY - proprytet dla pakietów wysyłanych z GW do sieci WAN.

LAN_UNCLASSIFIED_PRIORITY - proprytet dla pakietów nie sklasyfikowanych wysyłanych do sieci LAN.

WAN_UNCLASSIFIED_PRIORITY - proprytet dla pakietów nie sklasyfikowanych wysyłanych do sieci WAN.

LAN_HOSTS_PRIORITY - proprytet dla pakietów wysyłanych do sieci LAN, kierowanych do hostów dla, których ruchem zarządza moduł shaper.

WAN_HOSTS_PRIORITY - proprytet dla pakietów wysyłanych do sieci WAN, kierowanych z hostów dla, których ruchem zarządza moduł shaper.

Następnie dla każdego hosta powinny być określone parametry klas UP/DOWN HTB, przy czym kilka hostów może być przypisanych do jednej pary klasy HTB.

Przykładowa konfiguracja dla jednego hosta przypisanego do jednej pary klas UP/DOWN:

#klient numer customer 1 class_up 8kbit 1024kbit class_down 8kbit 5120kbit filter 192.168.101.24

dla kilku hostów przypisanych do pary klas:

customer 2 class_up 8kbit 1024kbit class_down 8kbit 5120kbit filter 192.168.10.24 filter 192.168.10.25 filter 192.168.10.26

Klient może mieć kilka taryf (kilka umów na usługi) i przypisane do nich różne komputery. Wtedy dla każdej taryfy trzeba wygenerować odpowiedni zestaw rekordów. Np jeśli klient o id 1 miałby jeszcze dwie dodatkowe umowy/taryfy z przypisanymi do nich po po jednym modemie/komputerze, należy dodać następujące rekordy

customer 1 class_up 8kbit 1024kbit class_down 8kbit 5120kbit filter 192.168.101.30 customer 1 class_up 8kbit 1024kbit class_down 8kbit 5120kbit filter 192.168.101.34

Znak "#" oznacza komentarz i nie jest parsowany przez moduł shaper. Cyfra po słowie customer to unikalne id klienta w LMS. Wyrażenia class_up oraz class_down mają jako parametry rate oraz ceil, gdzie RATE to jest minimalna gwarantowana prędkość, a CEIL to maksymalna niegwarantowana prędkość. Wyrażenie filter jako parametr ma adres ip hosta, którego dotyczy konfiguracja.

Taki plik może wygenerować odpowiednio skonfigurowany LMS z wykorzystaniem instancji lmsd o nazwie tc-new.

shaper

fw.sh shaper_stats

Ta opcja modułu shaper dostarcza szczegółowe statystyki dla każdego hosta, poprzez odczyt z liczników iptables.

Jeśli chcemy zaimportować statystki ruchu naszych klientów do LMS, należy na maszynie z LMS uruchamiać cyklicznie np. co 5 minut skrypt zapisujący statystyki do bazy danych LMS. Mmusi to być taki sam czas jaki jest ustawiony w phpui LMS w parametrze stat_freq Czyli jeśłi wybierzemy uruchaminie co 5 minut to stat_freq=300 (sekund)

Skrypt powinien zawierac dwa polecenia:

ssh -p 222 [email protected] '/opt/gateway/scripts/fw.sh stats' > /var/log/traffic.log bash /var/www/html/lms/bin/lms-traffic

gdzie 192.168.100.1 to adres IP naszego rutera na którym pracuje skryp fw.sh.

Polecenie pierwsze uruchomi zdalnie skrypt fw.sh z modułem stats, który odczyta liczniki przesłanych danych dla wszystkich hostów i zapisze je do pliku. Zaś drugie polecenie uruchomi skrypt, który odczyta plik /var/log/traffic.log i zaimportuje wartości do tabeli stats w bazie danych LMS.