V-Smart - Twój partner w biznesie internetowym

LMS Router – Pytania i odpowiedzi czyli FAQ

W tym dziale znajdziemy najczęściej zadawane przez Was pytania i odpowiedzi dotyczące mojej kompilacji LMS z routerem na Debianie, o której mowa była tutaj. Oprócz FAQ przedstawię tu kilka trików, które są moimi dziwnymi pomysłami, jak usprawnić sobie robotę w sieci zarządzanej przez omawiany projekt 😉

Q: Dlaczego klient zawsze ma 512/128 prędkość? Przecież przypisuje mu prawidłowe zobowiązanie!

A: Jednak niekoniecznie. Zobacz jak to powinno wyglądać klikając tutaj. Musisz wybrać taryfę z prędkością i zaznaczyć komputer klienta oraz fakturę przy zobowiązaniu.

Q: A co z trybem Access Point Client? Jak podłączyć trzech klientów pod jednym adresem MAC?

A: Trochę teorii najpierw. Tryb APC (Intfrastructure Client, Client itd...) polega na tym, że w warstwie trzeciej na poziomie adresów IP apek maskuje rzeczywisty adres MAC klienta, który znajduje się za apekiem. W efekcie do autoryzacji MAC + IP, z jakiej korzysta mój LMS potrzeba MAC apeka a nie klienta. Żeby było trudniej to w warstwie drugiej na poziomie ramek apek nic nie maskuje zatem DHCP zobaczy rzeczywisty MAC komputera klienta (niezamaskowany) znajdującego się za APC. Teraz jak to zrobić w moim LMSie, żeby zadziałało:

  • Osprzęt sieciowy -> Nowe urządzanie: wybierz mu TYP: APC oraz dodaj jakas nazwę, następnie dodaj mu IP oraz jego MAC
  • Dodaj komputer klienta z jego rzeczywistym adresem MAC oraz wybierz mu punkt podłączenia z listy rozwijanej jako powyżej dodane urzadzenie
  • I tak możesz dowolną ilość komputerów podłączać do tego samego AP w trybie Client :)
  • Wyglądać to ma tak (kliknij).

Z trybem APC wiąże się swoista dziura w zabezpieczeniach sieci. Otóż jeśli w LMSie mamy autoryzację na jakiś komputer klienta, który podłączony jest do APc to niezależnie od adresu MAC komputera klienta będzie działać mu net jeśli tylko wpisze poprawny IP ręcznie. Dlatego dla grup klientów stosuje się tryb WDS, który MACów nie maskuje!

Q: Nie działa mi sprawdzanie czy komputer klienta jest włączony.

A: Wykonaj:

apt-get install fping

i zacznie. Chyba, że klient ma firewalla,  który blokuje pingi to nie zacznie.

Q: Dlaczego nie działa mi Webmin po instalacji tego twojego systemu?

A: Wieśmin nie działa ponieważ używa portu 10000 tcp, który jest domyślnie zamknięty przez firewall. Do pliku /serwer/skrypty/firewall.sh należy po sekcji:

# autoryzowany dostep tylko z pliku dostep.conf
grep "^[^#]" ${DOSTEP} | while read IP OPIS; do

dopisać następująca linijkę:

$IPTABLES -A INPUT -s $IP -m state --state NEW -p tcp --dport 10000 -j ACCEPT

i odpalić ten skrypt. UWAGA! Nie używajcie firewalla z Wieśmina, ponieważ pogryzie się na 100% z moim. Nie zmieniajcie również adresów IP na interfejsach poprzez niego. Korzystajcie z moich opisów do tego.

Q: Jak wyłączyć ograniczenia prędkości w LANie?

A: Rozjaśnijmy trochę sytuację. Cięcie prędkości w LAN występuje jeśli ruch przechodzi przez router. Co za tym idzie, jeśli nie używamy PPPoE to komputery w jednej podsieci w LAN mogą bez ograniczeń prędkości przesyłać dane między sobą. Wynika to z samej zasady działania protokołu IP, który nie potrzebuje bramy domyślnej do komunikacji z hostami w tej samej podsieci. Inaczej wygląda sytuacja, kiedy korzystamy z PPPoE (ruch zawsze idzie przez koncentrator) oraz próbujemy ściągnąć coś lokalnie z routera. W przypadku mojego systemu domyślnie zadziałają tu ograniczenia prędkości z taryf dla klientów. Zanim zaczniemy je wyłączać, sprawdźmy czy faktycznie tak jest. Ściągnijmy i zamontujmy darmowy tester:

wget http://www.speedtest.pl/app/speedmini.zip
unzip speedmini.zip -d /var/www/

Możemy go otworzyć przez przeglądarkę spod adresu:

http://adres_ip_routera/speedmini

i sprawdzić aktualną prędkość. Powinno być jak pisałem wyżej 😛 Następnie weźmy sobie na tapetę plik /serwer/skrypty/firewall.sh i znajdźmy w nim linijki:

$IPTABLES -t mangle -A PREROUTING -i $INTDEV1 -j IMQ --todev 1
$IPTABLES -t mangle -A POSTROUTING -o $INTDEV1 -j IMQ --todev 2
$IPTABLES -t mangle -A PREROUTING -i ppp+ -j IMQ --todev 1
$IPTABLES -t mangle -A POSTROUTING -o ppp+ -j IMQ --todev 2

które odpowiadają za kierowanie ruchu z/do interfejsów LAN i ppp do interfejsów IMQ, na których odbywa się LANowy podział pasma. Zmieńmy PREROUTING i POSTROUTING na FORWARD:

$IPTABLES -t mangle -A FORWARD -i $INTDEV1 -j IMQ --todev 1
$IPTABLES -t mangle -A FORWARD -o $INTDEV1 -j IMQ --todev 2
$IPTABLES -t mangle -A FORWARD -i ppp+ -j IMQ --todev 1
$IPTABLES -t mangle -A FORWARD -o ppp+ -j IMQ --todev 2

a następnie odpalmy /serwer/start_all i ograniczenia dla LAN powinny zniknąć.

Q: A co jak mam dwa lub więcej łączy WAN?

A: Dużo roboty. Za dużo żeby opisać w FAQ. Powstał na ten temat nowy artykuł (kliknij).

Q: A jak wygląda sprawa z przekierowaniami portów?

A: Panel LMS nie przewiduje tego w swoim interfejsie a na razie skończył mi się czas na przeróbki. W najnowszej wersji macie pliczek:

/serwer/forward.conf

gdzie wpisujecie 3 parametry:

  • port od strony WAN
  • adres IP w LAN
  • port od strony LAN

Przekierowanie zadziała dla protokołu TCP i UDP.

Q: Jak włączyć logowanie połączeń do sysloga?

A: Należy do pliku:

/serwer/skrypty/firewall.sh

dopisać po limitach połączeń następującą linijkę:

$IPTABLES -A FORWARD -o $EXTDEV -s $INTNET1 -p tcp -m state --state NEW -j LOG --log-level info --log-prefix "SYN-INTNET1 "

Domyślnie logowanie jest wyłączone bo tak :)

Q: Jak ustawić kiedy włącza się taryfa nocna a kiedy dzienna?

A: W pliku /etc/cron.d/vsmart masz wszystko opisane. Wartości prędkości dla lanowych taryf nocnych definiujemy z poziomu panelu LMS. Dla wanowych znajdują się w pliku /serwer/serwer.conf

Q: A jak poradzić sobie w wypadku gdy mamy 3 karty ethernetowe 1WAN +2LAN?

A: Trochę zabawy będzie. Załóżmy, że chcemy na drugim interfejsie o nazwie eth2 dodać podsieć 192.168.102.0/24 z bramą 192.168.102.254:

  • w panelu LMS: Sieci IP -> Nowa podsieć -> Dodajemy:
    • Nazwa Sieci: LAN2
    • Adres sieci: 192.168.102.0 / 24 (256-adresów)
    • Interfejs: eth2
    • Gateway: 192.168.102.254
    • Serwery DNS: 192.168.102.254, 8.8.8.8
  • w panelu LMS: Sieci IP -> Nowa podsieć -> Dodajemy (jeszcze raz):
    • Nazwa Sieci: LAN2-NOWI
    • Adres sieci: 10.10.11.0 / 24 (256-adresów)
    • Interfejs: eth2
    • Gateway: 10.10.11.254
    • Serwery DNS: 10.10.11.254 , 8.8.8.8
    • Zakres DHCP: 10.10.11.1 do 10.10.11.253
  • w pliku /etc/rc.local dopisujemy pod wpisem /usr/sbin/ip link set eth1 up

    /usr/sbin/ip a a 192.168.102.254/24 brd 192.168.102.255 dev eth2
    /usr/sbin/ip a a 10.10.11.254/24 brd 10.10.11.255 dev eth2
    /usr/sbin/ip link set eth2

  • w pliku /etc/rc.local dopisujemy na samym dole:

    /usr/sbin/pppoe-server -I eth2 -L 192.168.102.254 -N 1000 -k

  • w pliku /serwer/serwer.conf dopisujemy w sekcji # interfejs(y) LAN:

    INTDEV2=eth2
    INTNET2=192.168.102.0/24

  • w pliku /serwer/serwer.conf dopisujemy w sekcji #nieautoryzowani klienci:

    NOWI2=10.10.11.0/24

  • w pliku /serwer/skrypty/firewall.sh oraz /serwer/skrypty/nat.sh znajdujemy wszystkie wpisy zawierające zmienne $INTDEV1, $INTNET1 oraz $NOWI a następnie kopiujemy je poniżej miejsca, gdzie występują i zmieniamy odpowiednio na $INTDEV2, $INTNET2 oraz $NOWI2 np:

    $IPTABLES -t mangle -A PREROUTING -i $INTDEV1 -j IMQ --todev 1
    $IPTABLES -t mangle -A POSTROUTING -o $INTDEV1 -j IMQ --todev 2
    $IPTABLES -t mangle -A PREROUTING -i $INTDEV2 -j IMQ --todev 1
    $IPTABLES -t mangle -A POSTROUTING -o $INTDEV2 -j IMQ --todev 2

    $IPTABLES -A INPUT -s $INTNET1 -m state --state NEW -p tcp --sport 1024: --dport 53 -j ACCEPT
    $IPTABLES -A INPUT -s $INTNET2 -m state --state NEW -p udp --sport 1024: --dport 53 -j ACCEPT

    $IPTABLES -t nat -A POSTROUTING -s $NOWI -o $EXTDEV -j MASQUERADE
    $IPTABLES -t nat -A POSTROUTING -s $NOWI2 -o $EXTDEV -j MASQUERADE

    itd...

  • do /serwer/skrypty/firewall.sh pod linią $IPTABLES -A FORWARD -m state --state invalid -j DROP dopisujemy

    $IPTABLES -A FORWARD ! -o ${EXTDEV} -j ACCEPT

  • następnie reboot i powinno działać :)

Q: Ile waży router po pełnej instalacji?

A: Zależy od wagi zastosowanego komputera. Myślę, ze od 1 kg do 100 kg. Natomiast dane na dysku zajmują 1.3 GB hehe.

Q: A co z limitami ilości połączeń TCP dla userów? Jest coś takiego?

A: Jest. W /serwer/serwer.conf zmienna CONNLIMIT odpowiada za to. Domyślnie to 100 na głowę.

Q: Jak zmienić dane sprzedawcy na fakturze?

A: Ostatni raz na takie pytania odpowiadam. Od tego macie manual LMSa. A więc: Konfiguracja -> Firmy i odpowiednia edycja danych.

Q: Jak zrobić aby user po podłączeniu do sieci dostał komunikat o braku autoryzacji a następnie po połączeniu PPPoE otrzymał dostęp do Internetu?

A: Należy komputerowi klienta wpisać następujący adres MAC: 00:00:00:00:00:00 (trudny nie? :P). Klient wtedy otrzyma autoryzację tylko dla PPPoE natomiast TCP/IP będzie niedostępne dla jego adresu IP oraz wykluczone z DHCP.

Q: W jaki sposób mogę zmienić tę beznadziejną adresację 192.168.100.x i 192.168.101.x dla LAN?

A: Trzeba wykonać kilka kroków aby zmienić te adresacje:

  1. /etc/rc.local - modyfikujemy wpisy odnośnie dodawania adresów IP na interfejs eth1
  2. /serwer/serwer.conf - to samo co wyżej
  3. /serwer/skrypty/nat.sh - zmieniamy 192.168.100.254 na nowy adres bramy dla klientów
  4. /etc/pptpd.conf - tak jak wyżej
  5. w panelu LMS: Sieci IP -> lista a następnie wykonujemy modyfikacje podsieci
  6. reboot i powinno działać

W przyszłości dorobię automatyczną synchronizację adresacji z LMSem :)

Q: Może coś więcej na temat komunikatów dla klientów?

A: Mamy ich 3 rodzaje:

  • Komunikat dla nowych klientów - pojawia się tylko w przypadku korzystania z protokołu TCP/IP (nie PPPoE, nie PPtP). Jest uruchomiony poprzez Apache na porcie nr 202. Polega na wykonaniu nata docelowego (DNAT) dla portu nr 80 oraz sieci źródłowej 10.10.10.0/24 na socket 192.168.100.254:202. W efekcie nowy klient widzi w przeglądarce powitanko.
  • Przypomnienie o płatnościach - pojawia się w przypadku załączenia żółtego trójkąta przy komputerze klienta w LMS. Chodzi na porcie nr 200. W momencie włączenia przez klienta przeglądarki, widzi on przypomnienie, które w tle ściąga mu blokadę. Komunikat wyświetla się raz na określony czas, który można zmienić w pliku: /etc/cron.d/vsmart. Domyślnie jest 1 */3 * * * co oznacza "załączaj co 3 godziny w pierwszej minucie tej godziny". Polega na wykonaniu nata docelowego (DNAT) dla portu nr 80 oraz adresu IP klienta na socket 192.168.100.254:200.
  • Całkowita blokada klienta - pojawia się, kiedy klient ma wyłączoną żarówkę przy komputerze w LMS (tzw. komputer odłączony). Port 201. Klient ma zablokowane wszystkie usługi - widzi tylko komunikat i nie ma możliwości samodzielnego odblokowania. Polega na wykonaniu nata docelowego (DNAT) dla portu nr 80 oraz adresu IP klienta na socket 192.168.100.254:201.

Q: Jak modyfikować treść komunikatów dla klientów?

A: Musisz wiedzieć cokolwiek o HTML. Komunikaty znajdują się w następujących miejscach:

  • Komunikat dla nowych klientów: /var/www/info/202/index.php
  • Przypomnienie o płatnościach: /var/www/info/200/index.php (nie wywalać iframe bo przestanie działać odblokowywanie!)
  • Całkowita blokada klienta: /var/www/info/201/index.php

Pamiętaj! Przed modyfikacjami zrób backup modyfikowanych skryptów!

Q: Jak działa dynamiczny podział pasma od strony WAN?

A: Normalnie :) W skrypcie /serwer/skrypty/htbwan.sh mamy 7 kolejek (podano od najwyższego priorytetu):

  • classid 1:2 - waga 15% - ack, icmp, sip-sygnalizacja
  • classid 1:3 - waga 30% - ssh, gg, vnc, vpn, https
  • classid 1:4 - waga 30% - smtp, smtps, http, pop3, pop3s, imap, shoutcast
  • classid 1:5 - waga 10% - http-video, ftp
  • classid 1:6 - waga 10% - klasa domyślna - wszystko co, nie sklasyfikowane
  • classid 1:7 - waga 5% - p2p złapane za pomocą layer-7

Wagi są ważne, gdy prędkość na interfejsie WAN osiąga to, co mamy wpisane w /serwer/serwer.conf. Wtedy dopiero tak na prawdę zaczyna działać kolejkowanie. Do kolejkowania zastosowałem mechanizm HTB oraz ESFQ, który korzysta z conntracka. Efekt jest taki, że mechanizm potrafi rozłożyć równo ruch pomiędzy adresami IP w LAN. Nie ważna jest ilość połączeń od/do danego adres IP w LAN tak jak to było w standardowych SFQ. Działanie mechanizmu można podejrzeć uruchamiając skrypty:

/serwer/diagnostyka/wan-down

/serwer/diagnostyka/wan-up

Q: Jak działa podział pasma per klient od strony LAN?

A: Również normalnie 😛 W skrypcie /serwer/skrypty/htblan.sh tworzone są statyczne kolejki z prędkościami dla IP klientów. Działanie mechanizmu można podejrzeć uruchamiając skrypty:

/serwer/diagnostyka/lan-down

/serwer/diagnostyka/lan-up

Q: Jak zrobić automatyczne załączanie blokad?

A: Jest zrobione, wystarczy dostosować toto do swoich potrzeb.

Na tapetę weźmy znów harmonogram zadań (cron) dla projektu czyli plik: /etc/cron.d/vsmart

Przypomnienie o płatnościach.

1 8 20 * *      root    /var/www/bin/lms-blok-light -q

oznacza, ze przypomnienie zostanie załączone o godzinie 8:01 20-go dnia miesiąca. Zaglądając do powyższego skryptu znajdźmy wpis:

HAVING balance < 0 AND balance > -100

który mówi nam, że blokadzie podlegają klienci o saldzie ujemnym do -100 PLN.

Blokada całkowita.

2 8 27 * *      root    /var/www/bin/lms-blok-hard -q

oznacza, ze przypomnienie zostanie załączone o godzinie 8:02 27-go dnia miesiąca. Zaglądając do powyższego skryptu znajdźmy wpis:

HAVING balance <= -100

który mówi nam, że blokadzie podlegają klienci o saldzie ujemnym niższym niż -100 PLN.

Q: Jakie sa parametry połączenia PPPoE oraz PPtP?

A: Następujące są:

  • PPPoE - uwierzytelnianie: chap, mschap lub mschap-v2, kompresja: brak, szyfrowanie: brak
  • PPtP - uwierzytelnianie: mschap-v2, kompresja: brak, szyfrowanie: mppe-128

Q: Jak przydzielić komputerowi prędkość testową, niezależną od zobowiązania?

A: Nie było takiej funkcji w LMS więc zrobiłem to trochę na około. Należy dodać grupę komputera, w opisie której wpisujemy coś w formacie:

download/upload

w jednostkach kbps np. 1024/1024. W szczególności możemy wpisać 0/0 co oznaczać będzie brak limitów prędkości LAN czyli użytkownik będzie korzystał z dynamicznego podziału pasma na WAN. Następnie komputer klienta należy przypisać do takiej grupy. Grupy maja pierwszeństwo nad zobowiązaniami.

A jak poradzić sobie w wypadku gdy mamy 3 karty ethernetowy 1WAN +2LANA jak poradzić sobie w wypadku gdy mamy 3 karty ethernetowy 1WAN +2LAN
Be Sociable, Share!
Tagged as: , , ,    autor: yarzombo Comments Off