Uruchmianie się skryptu pod VoIP na routerze
|
aksimoN |
Dodano 25-05-2009 10:56
|
User
Posty: 11
Dołączył: 23/10/2008 15:55
|
Witam mam router Linksys WAG54GX2 chcialbym sie dowiedziec czy istnieje mozliwosc automatycznego uruchamiania się skryptu dzielacego lacze i kolejkujacego pakiety w taki sposob że:
- rozpoczyna się rozmowa VoIP
- zostaje ona wykryta za pomoca layer7
- uruchamia sie skrypt ktory dzieki layer7 rozpoznaje pakiety VoIP i odpowiednio je kolejkuje
- rozmowa zostaje zakonczona
- podzial lacza i jego kolejkowanie zostaje wylaczone...
- router wraca do normalnej pracy
prosze o jakies info na ten temat(czy wogole sie to da zrobic a jak tak to jak i na czym, czy da sie na tym routerze)
jakies pomocne linki tez byly by wskazane
ps. nie ukrywam ze zalezy mi na czasie,
aksimoN
|
|
|
|
shibby |
Dodano 25-05-2009 16:32
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
a w czym problem bo nie rozumiem?
robisz sobie wysoka klase QoS dla voipa. jak zacznie sie rozmowa to pakiety beda w nia wpadaly i beda odpowiednio priorytetowane. jak sie skonczy to nic wiecej w ta klase nie wpadnie... proste
tak samo dla w przypadku zastosowania skryptow HTB.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
aksimoN |
Dodano 25-05-2009 18:01
|
User
Posty: 11
Dołączył: 23/10/2008 15:55
|
no ja mam tego swiadomosc ale dostalem przykaz zeby to zrobic tak ze napisany przezemnie skrypt ma sie odpalac na routerze i tylko wtedy gdy jest jakas rozmowa VoIP gdy jej nie ma skrypt ma byc dezaktywowany...
nie wnikajcie w slusznosc takiego rozumowania tylko niech mi ktos napisze czy idzie cos takiego odpalic na routerze i w jaki sposob to mozna zrobic
aksimoN
|
|
|
|
obsy |
Dodano 25-05-2009 18:12
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Krótko: nie. iptables nie umożliwia uruchamiania czegokolwiek jak zaliczy okreslony pakiet.
Po pierwsze: jakie oprogramowanie? Jeżeli oryginalne to masz małe szanse na zrobienie czegokolwiek. Ma być właśnie tak jak shibby napisał: ustawione całość, jak przychodzi rozmowa to wpada w określoną klasę i ma swoje ustawienia.
|
|
|
|
aksimoN |
Dodano 25-05-2009 18:54
|
User
Posty: 11
Dołączył: 23/10/2008 15:55
|
1. mam na nim tomato
2. oprogramowanie nie jest wiazace bo moge tam postawic co chce
3. czyli rozumiem ze na tym routerze nie idzie zainstalowac layer7 i kolejkowania htb?
4. glownie chodzi mi o to ze zrobilem skrypt z kolejkowaniem i rozpoznawianiem pakietow przez layer7 i to calkiem niezle smiga na serwerze... chodzi teraz tylko o to czy istnieja jakiekolwiek sposoby zeby szlo odpalic to na routerze
5. jak rozumiem nie idzie zrobic tak ze w sytuacji gdy przez router przechodzi rozmowa voip skrypt z podzialem lacza odpala sie na routerze lub tez dopiero wtedy odpala sie na serwerze i po zakonczeniu rozmowy sie wylacza...
aksimoN
|
|
|
|
obsy |
Dodano 25-05-2009 19:00
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Kombinujesz. Pewnie że się da skrypt uruchomić - z dokładnością do nazw interfejsów.
Zrobiłeś sobie kolejkowanie - super. Po prostu uruchom to na tomato i będzie sobie ruch voip wpadał do odpowiednich klas. To wszystko. Nie możesz natomiast uruchomić skryptu jak wpadnie Ci pakiet w layer7 żeby skrypt ten rozpoznawał pakiety dzięki layer7 (tak napisałeś).
|
|
|
|
aksimoN |
Dodano 25-05-2009 19:04
|
User
Posty: 11
Dołączył: 23/10/2008 15:55
|
moze tak bedzie latwiej... skrypt wyglada tak:
modprobe imq
modprobe ipt_IMQ
modporbe ipt_mark
modprobe ip_conntrack_netlink
modprobe ipt_layer7
iptables -F -t mangle
tc qdisc del root dev imq0
tc qdisc del root dev imq1
ifconfig imq0 down
ifconfig imq1 down
sleep=1;
ip link set imq0 up
ip link set imq1 up
iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0
iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1
eth_zew="eth1"
#upload
max_upload="500kbit"
up_reszta="50kbit"
up_ssl="30kbit"
up_ssh="30kbit"
up_http="130kbit"
up_dns="50kbit"
up_ftp="20kbit"
up_smtp="60kbit"
up_VoIP="100kbit"
up_p2p="30kbit"
#download
max_download="3000kbit"
down_reszta="300kbit"
down_ssl="80kbit"
down_ssh="80kbit"
down_http="1000kbit"
down_dns="300kbit"
down_ftp="300kbit"
down_pop3="500kbit"
down_VoIP="320kbit"
down_p2p="120kbit"
tc qdisc add dev imq0 root handle 1: htb default 10
tc class add dev imq0 parent 1: classid 1:1 htb rate $max_upload ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:10 htb rate $up_reszta ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:19 htb rate $up_ssl ceil 120kbit
tc class add dev imq0 parent 1:1 classid 1:20 htb rate $up_ssh ceil 80kbit
tc class add dev imq0 parent 1:1 classid 1:30 htb rate $up_http ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:40 htb rate $up_dns ceil 200kbit
tc class add dev imq0 parent 1:1 classid 1:50 htb rate $up_ftp ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:70 htb rate $up_smtp ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:80 htb rate $up_p2p ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:90 htb rate $up_VoIP ceil $max_upload
tc qdisc add dev imq1 root handle 1: htb default 10
tc class add dev imq1 parent 1: classid 1:1 htb rate $max_download ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:10 htb rate $down_reszta ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:19 htb rate $down_ssl ceil 300kbit
tc class add dev imq1 parent 1:1 classid 1:20 htb rate $down_ssh ceil 300kbit
tc class add dev imq1 parent 1:1 classid 1:30 htb rate $down_http ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:40 htb rate $down_dns ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:50 htb rate $down_ftp ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:70 htb rate $down_pop3 ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:80 htb rate $down_p2p ceil $max_download
tc class add dev imq1 parent 1:1 classid 1:90 htb rate $down_VoIP ceil $max_download
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ssl -j MARK --set-mark 190
ptables -t mangle -A POSTROUTING -m layer7 --l7proto ssh -j MARK --set-mark 200
iptables -t mangle -A POSTROUTING -m layer7 --l7proto snmp -j MARK --set-mark 200
iptables -t mangle -A POSTROUTING -m layer7 --l7proto telnet -j MARK --set-mark 200
iptables -t mangle -A POSTROUTING -m layer7 --l7proto http -j MARK --set-mark 300
iptables -t mangle -A POSTROUTING -m -p tcp --sport 80 -j MARK --set-mark 300
iptables -t mangle -A POSTROUTING -m -p tcp --dport 80 -j MARK --set-mark 300
iptables -t mangle -A POSTROUTING -m layer7 --l7proto dns -j MARK --set-mark 400
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 500
iptables -t mangle -A POSTROUTING -m layer7 --l7proto tftp -j MARK --set-mark 500
iptables -t mangle -A POSTROUTING -m layer7 --l7proto smtp -j MARK --set-mark 700
iptables -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 800
iptables -t mangle -A POSTROUTING -m layer7 --l7proto imesh -j MARK --set-mark 800
iptables -t mangle -A POSTROUTING -m layer7 --l7proto mute -j MARK --set-mark 800
iptables -t mangle -A POSTROUTING -m layer7 --l7proto openft -j MARK --set-mark 800
iptables -t mangle -A POSTROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 800
iptables -t mangle -A POSTROUTING -m layer7 --l7proto h323 -j MARK --set-mark 900
iptables -t mangle -A POSTROUTING -m layer7 --l7proto sip -j MARK --set-mark 900
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypeout -j MARK --set-mark 900
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 900
iptables -t mangle -A PREROUTING -m layer7 --l7proto ssl -j MARK --set-mark 190
iptables -t mangle -A PREROUTING -m layer7 --l7proto ssh -j MARK --set-mark 200
iptables -t mangle -A PREROUTING -m layer7 --l7proto snmp -j MARK --set-mark 200
iptables -t mangle -A PREROUTING -m layer7 --l7proto telnet -j MARK --set-mark 200
iptables -t mangle -A PREROUTING -m layer7 --l7proto http -j MARK --set-mark 300
iptables -t mangle -A PREROUTING -m layer7 --l7proto dns -j MARK --set-mark 400
iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j MARK --set-mark 500
iptables -t mangle -A PREROUTING -m layer7 --l7proto tftp -j MARK --set-mark 500
iptables -t mangle -A PREROUTING -m layer7 --l7proto pop3 -j MARK --set-mark 700
iptables -t mangle -A PREROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 800
iptables -t mangle -A PREROUTING -m layer7 --l7proto imesh -j MARK --set-mark 800
iptables -t mangle -A PREROUTING -m layer7 --l7proto mute -j MARK --set-mark 800
iptables -t mangle -A PREROUTING -m layer7 --l7proto openft -j MARK --set-mark 800
iptables -t mangle -A PREROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 800
iptables -t mangle -A PREROUTING -m layer7 --l7proto h323 -j MARK --set-mark 900
iptables -t mangle -A PREROUTING -m layer7 --l7proto sip -j MARK --set-mark 900
iptables -t mangle -A PREROUTING -m layer7 --l7proto skypeout -j MARK --set-mark 900
iptables -t mangle -A PREROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 900
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 190 fw classid 1:19
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 200 fw classid 1:20
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 300 fw classid 1:30
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 400 fw classid 1:40
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 500 fw classid 1:50
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 700 fw classid 1:70
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 800 fw classid 1:80
tc filter add dev imq0 parent 1: protocol ip prio 1 handle 900 fw classid 1:90
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 190 fw classid 1:19
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 200 fw classid 1:20
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 300 fw classid 1:30
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 400 fw classid 1:40
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 500 fw classid 1:50
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 700 fw classid 1:70
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 800 fw classid 1:80
tc filter add dev imq1 parent 1: protocol ip prio 1 handle 900 fw classid 1:90
tc qdisc add dev imq0 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:19 handle 19:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:40 handle 40:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:50 handle 50:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:70 handle 70:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:80 handle 80:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:90 handle 90:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:19 handle 19:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:40 handle 40:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:50 handle 50:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:70 handle 70:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:80 handle 80:0 sfq perturb 10
tc qdisc add dev imq1 parent 1:90 handle 90:0 sfq perturb 10
1. teraz pytanie czy idzie zrobic tak jak pisalem ze bedzie sie on wlaczal i wylaczal w momencie kiedy pojawi sie rozmowa VoIP
2. jak go przebudowac zeby smigal na routerze i jak go na nim odpalic
3. wszelkie uwagi co do skryptu mile widziane
--
aksimoN
|
|
|
|
shibby |
Dodano 25-05-2009 19:08
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
tomato ma juz obsluge htb i layer7 w sobie. wystarczy tylko stworzyc sobie klasy. czy to QoS czy HTB to juz wsio ryba.
robisz klase gdzie Layer7=oip i jezeli nikt nie rozmawia to w klase nic nie wpada (twoje zalozenie skrypt wylaczony), zaczyna ktos rozmowe to pakiety trafiaja dzieki L7 w odpowiedni przydzial predkosci i priorytet (twoje zalozenie skrypt sie uruchamia)
czego wiecej chciec!?!
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
obsy |
Dodano 25-05-2009 19:08
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
1. Nie. Ile razy mam to jeszcze napisać? Uruchomisz go raz na starcie i tyle. O ile jest właściwie napisany to ruch voip wejdzie w odpowiednią klasę i tyle. One nie będzie się "uruchamiał" jak pojawi się rozmowa voip.
|
|
|
|
shibby |
Dodano 25-05-2009 19:35
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
masz to nawet zrobione, wystarczy rzucic okiem na to co wkleiles.
ogolnie skrypt troche bez sensu bo na wszystko dajesz MAX. nawet na p2p.
zamiast uzywac gotowcow udaj sie do dzialu download, przydatne programy i sciagnij generator skryptow. ustaw wszystko tak jak chcesz i wklej to co ci wyjdzie. proste...
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
aksimoN |
Dodano 25-05-2009 19:39
|
User
Posty: 11
Dołączył: 23/10/2008 15:55
|
tam jest ceil MAX czyli ze moze skorzystac z maxa jesli nic innego nie potrzebuje jesli zas ktos potrzebuje lacza to dane pasmo jest przycinane do okreslonej wczesniej wartosci
aksimoN
|
|
|
|
Art79 |
Dodano 26-05-2009 08:07
|
User
Posty: 65
Dołączył: 25/03/2009 08:40
|
Podepnę się pod temat....
Posiadam łącze 2MB/512, za Linksysem WRT54GL + tomato 1.23 będzie pracować bramka VOIP FritzBOX i 3 telefony analogowe.
Zastanawiam się jak najlepiej podzielić łącze, czy poprzez Qos czy też poprzez zastosowanie skryptu Robsona i przypisanie do IP Bramki odpowiedniego pasma???
W przypadku przydziału pasma do IP - dla 3 telefonów na kodeku G711 bez kompresji potrzeba około 3 x 90 kbps = 270 kbs. W tym przypadku 270 kbps pasma będzie zawsze zarezerwowane dla VOIP i pozostałe 200 mi zostanie na upload...
Poza tym w sieci będzie pracować kilka stacji.
Ma ktoś może jakieś sugestie?
ART
|
|
|