Moderator: SlashBeast
Code: Select all
iptables -t mangle -A POSTROUTING -s 192.168.0.2/24 -d 192.168.0.10 -j MARK --set-mark 2
Code: Select all
Try 'iptables -h' or 'iptables --help' for more information.
'ad argument `

Code: Select all
iptables v1.4.12: MARK: trailing garbage after value for option "--set-mark".
dość arogancko się odnosiłeś do kolegi w tym wątku, więc trochę cię wyrównam do poziomu:Belliash wrote:To dowodzi tylko temu ze kopiujesz wszystko bezmyslnie...
EOT bo szkoda czasu i nerwow.
2. po co priorytety? Bez nich cięcie pasma też działa doskonale. Czyżbyś nie do końca rozumiał, o co w tym wszystkim chodzi?To nie ma prawa zadzialac
[...]
2. Nie wprowadzasz priorytetow
3. Ostatecznie wcale nie ograniczasz przeplywnosc. Tworzysz tylko jakies klasy ktorych wcale nie wykorzystujesz.
jeśli serwer ma działać wyłącznie w LAN i ma jeden interfejs (nigdzie nie pisze, że to router), to jak ograniczać pasmo na interfejsie WAN?Rozumiem ze masz LAN 8.7mbps?
Ja myslalem ze sa sieciowki 10/100/1000mbps...
Ograniczasz dostepne pasmo na interfejsie WAN, a nie LAN. Jezeli masz internet 8 mega, to CALE=8192kbit
Jak nie wykorzystuje, jak ja w poście wcześniej widzę, że są klasy i filtry wrzucające coś do tych klas:W dalszym ciagu to nie ma prawa dzialac. Powielasz ciagle te same bledy. Tworzysz tylko klasy, nawet bez priorytetow, ale ich nigdzie nie wykorzystujesz.
Code: Select all
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 9mbit ceil 90mbit
...
tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 192.168.0.10 flowid 1:2
czegoś nowego się dowiedziałem. Więc mówisz, że QoS bez iptables nie będzie działać? Masz ze sobą jakieś wsparcie?1) Jak chcesz aby to dzialalo, to powinienes wykorzystac IPTABLES
Czepiłeś się tych priorytetów jak, za przeproszeniem, kupa buta.Wtedy priorytety powinny byc takie same dla wszystkich.
Skoro miałeś skonfigurować iptables - czyli zrobić firewalla warstwy 3, to po co grzebałeś przy QoS? Czyżbyś nie do końca rozróżniał te wszystkie skomplikowane pojęcia?Ale na studiach robilem tez projekt na BSI (Bezpieczenstwo Systemow Informatycznych) w ramach ktorego mialem odpowiednio skonfigurowac iptables i takze wykorzystywalem tam HTB do ograniczania pasma.
użycie ceil=rate nie jest błędem. Jeśli podasz samo rate, to tc z góry zakłada, że ceil ma mieć identyczną wartość (i sobie uzupełni). Wytykanie tego komuś jako błąd i czepianie się świadczy wyłącznie o zupełnym braku zrozumienia tematu...Po co ceil? Masz mu w tym miejscu "powiedziec" tylko jaka przepustowoscia dysponujesz. Nic ponad to. Widzisz cos takiego u mnie?
A rozumiesz zapis 192.168.0.2/32? Jest pojedynczy host? Jest CIDR? Można?Jezeli chcesz ograniczac przepustowosc tylko pomiedzy serwerem a pozostalymi komputerami, to nie rozumiem po co uzywasz notacji CIDR?
Ale pytanie kolegi dotyczyło akurat markowania pakietów. Więc okazuje się, że oprócz odrzucana lub przepuszczania pakietów, iptables potrafi jeszcze coś robić, prawda? W tym wypadku markuje pakiety, które następnie htb umieszcza w odpowiednich klasach. Coś zupełnie niepotrzebnego, bo przy tym stopniu komplikacji łatwiej i wygodniej było jednak użyć filtru u32 (jak to było w pierwotnym skrypcie).iptables to firewall, wiec odwala tutaj brudna robote. Przepuszcza albo odrzuca pakiety. Poza tym, jakbys chcial to juz dawno znalazl bys odpowiedz na to pytanie.
Code: Select all
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:3
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:4
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:5
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:6
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:7
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:8
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:9
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:10
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:11
tc filter add dev eth0 protocol ip preference 1 parent 1:0 u32 match ip srcS$IP_SERWER flowid 1:12
Code: Select all
użycie ceil=rate nie jest błędem. Jeśli podasz samo rate, to tc z góry zakłada, że ceil ma mieć identyczną wartość (i sobie uzupełni). Wytykanie tego komuś jako błąd i czepianie się świadczy wyłącznie o zupełnym braku zrozumienia tematu... Code: Select all
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 90mbit ceil 90mbit Bawię się z mniejszymi lub większymi przerwami od około 10 lat. Zabawy nie ograniczam do domowego routera, ale do małych sieci ISP (ponad 1 tys. użytkowników pewnie w tym będzie).Belliash wrote:Bawiles sie kiedys przez dluzszy czas HTB?
Spróbujmy:1) Z moich osobistych obserwacji moge powiedziec, ze jak nie ustawisz priorytetow, nawet takich samych, to nie zawsze efekt jest taki jak bysmy sie spodziewali. Wyglada to tak, jakby HTB domyslnie nie przyznawal takich samych priorytetow, mimo ze powinien.
Code: Select all
# tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Mbit
# tc class add dev eth0 parent 1: classid 1:10 htb rate 5Mbit
# tc class add dev eth0 parent 1: classid 1:11 htb rate 5Mbit prio 0
Code: Select all
# tc -s class show dev eth0
class htb 1:11 root prio 0 rate 5000Kbit ceil 5000Kbit burst 1600b cburst 1600b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 40000 ctokens: 40000
class htb 1:10 root prio 0 rate 5000Kbit ceil 5000Kbit burst 1600b cburst 1600b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 40000 ctokens: 40000
[...]
Przypadek? Placebo? Plamy na słońcu? Ruchy tektoniczne?Bo jak wytlumaczysz fakt, ze 1 host pobiera dane z predkoscia 200KB/s a inny z predkoscia 30KB/s? Natomiast po dodaniu priorytetow oba pobieraja dane z porownywalna predkoscia (czyt. zmniejszaja sie dysproporcje).
Fascynujące...Spedzilem nad tym troche czasu i cos jest na rzeczy, a wszystko rozbija sie wlasnie o te priorytety.
I to jest powód żeby się na nim wyżywać? Jeśli tak, to można powiedzieć, że trafiła kosa na kamień...2) Jak pisalem w jednej ze swoich wczesniejszych wypowiedzi, skrypt pochodzi z mojego domowego rutera. Skopiowalem go i wkleilem, a autor watku zrobil ponownie to samo, calkowicie bezmyslnie, wprowadzajac jakies dziwne negacje, w ogole nie dostosowane do wlasnych realiow (a raczej zostawiajac te ode mnie). Bylo to na tyle bezmyslne, ze skopiowal wszystko, wraz z pustymi znakami na koncach linii, ktore jak widac byly powodem problemow. Malo tego, polaczyl fragment mojego skryptu i fragment tego co skopiowal prawdopodobnie z jakiejs strony.
Co ma internet lub jego brak do jednostek?3) Owszem. masz racje co do jednostek i wielkosci. Autor jednak nie pisze nic o internecie, ani o jego braku.
a dlaczego akurat 128 a nie 125? 1Mbit to zawsze 1000kbit. Tak nawet tc sobie przelicza domyślnie (popatrz na mój listing - jest 5000kbit zamiast 5120, a ja przecież wpisałem kolejki o wielkości 5Mbit).Mniejsza jednak z tym. Jak slusznie zauwazyles sieciowki sa 10/100/1000Mbps; nie 1024 tylko rowny 1000. Jednak w odniesieniu do uslugi powszechnego dostepu do internetu, zaklada sie ze 1M = 1024K. Masz 1mega i pobierasz dane z predkoscia 128KB/s. Reszte mysle sobie przeliczysz.
To że można wykorzystać netfilter w warstwie 3 i wyższych do kształtowania ruchu, wiem i stosuję zapewne znacznie dłużej niż ty. I nie odsyłaj mnie proszę do lektury, bo po twoich kompromitujących tekstach widać, że przydałoby ci się poczytać to wszystko jeszcze raz, tym razem ze zrozumieniem...4) Proponuje abys poczytal o wykorzystaniu iptables przy konfiguracji htb. Najwyrazniej masz jakies braki.
PorównującPomijam juz kwestie wygody, a autor raczej nie chcialby sie bawic z U32, ktory jest bardziej skomplikowany.
Code: Select all
# tc filter add dev eth0 parent 1: protocol ip u32 match ip src 192.168.0.1 flowid 1:10
Code: Select all
# iptables -t mangle -A POSTROUTING -s 192.168.0.1 -j MARK --set-mark 1
# tc filter add dev eth0 parent 1: protocol ip handle 1 fw flowid 1:11
Ja tego powiedzieć nie mogę o tobie. Fajne uczucie zostać publicznie zjechanym?Trzeba wiedziec i rozumiec co sie robi, czego raczej nie moge powiedziec o lukpio3.
Wszystko zależy od stopnia komplikacji rozwiązania QoS. Ja też w jednym z moich rozwiązań korzystałem z markowania pakietów, modułów ipp2p, layer7 i innych cudów. Tylko po co to robić w tak prostym zadaniu, które wygląda na jakiś projekt? (choć to dziwne, bo sierpień mamy). Cud że nie KAZAŁEŚ koledze użyć filtrów haszującychA tak pozatym, zastanow sie dlaczego wszedzie wykorzystywany jest do tego celu iptables (np. w *wrt) i na prawde pomijam kwestie wygody.
Dokładnie tak samą jak pisać parent 1:0 zamiast parent 1:Ponadto napisales:
A wiesz do czego odnioslem swoje slowa? Dokladnie do tej linii (podpowiem, to 3 linia w calym skrypcie):Code: Select all
użycie ceil=rate nie jest błędem. Jeśli podasz samo rate, to tc z góry zakłada, że ceil ma mieć identyczną wartość (i sobie uzupełni). Wytykanie tego komuś jako błąd i czepianie się świadczy wyłącznie o zupełnym braku zrozumienia tematu...
Jaki jest jej cel? Zalozyc glowna klase na glownej kolejce z maksymalna przepustowoscia jaka mamy do dyspozycji. W praktyce podawac tutaj jednoczesnie rate i ceil jest kompletna pozbawiona sensu bzdura.Code: Select all
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 90mbit ceil 90mbit
Użyję twojej metody: wezmę największą spawarkę, jaką świat stworzył i zespawam je. Tłumacząc, żebyś zrozumiał: użyję narzędzi nieadekwatnych do wagi problemu.Wiec Twoje uwagi maja sie jak tu jak kij w oko. Poza tym nie chodzi chyba tylko o to by dzialalo na jakichs prowizorkach. Porownam to do innej sytuacji. Bedziesz chcial zlaczyc 2 przewody to je ze soba skrecisz czy zastosujesz tzw. "kostke"?
A ja napisalem ze ograniczam?Raku wrote:Zabawy nie ograniczam do domowego routera
I? Wskazania wskazaniami, a praktyka nie raz swoje. Nie musisz wierzyc - Twoja sprawa. Zycze Ci bys sie z tym kiedys spotkal.Raku wrote:Widzisz jakąś różnicę? Bo ja nie. Obie klasy mają ten sam priorytet (0).
Na prawde jestes taki tepy czy udajesz? Nie kompromituj sie juz, bo kazdy kto chodzil do szkoly wie ze mega to 10^6. Co nie oznacza ze w praktyce kazdy to tak przelicza, wiec nie blaznuj juz. Nikt Ci nie kaze wpisywac 5Mbit jak mozesz wpisac 5120Kbit, co moze byc bardziej precyzyjne. Mowie MOZE bo to zalezy glownie od ISP, a jak juz wspomnialem w Polsce wiele (wiekszosc?) ISP przyjmuje ze 1Mbit = 1024Kbit. Ba, spotkalem sie nawet z tym ze niektorzy nie podaja wartosci w mbps tylko w kbps, aby ludzie Twojego pokroju nie mieli watpliwosci i problemow ze zrozumieniem.Raku wrote:a dlaczego akurat 128 a nie 125? 1Mbit to zawsze 1000kbit.
Twoje teorie mnie akurat najmniej interesuja. Rozumiem ze jak chcesz stworzyc regule dla kilku(...) portow to przeliczasz maski? Gratuluje... tylko nie wiem czego. Chyba glupoty. Ale jak kto woli...Raku wrote:To co załatwia jeden filtr u32, ty na siłę próbujesz zrobić filtrem (w teorii wolniej działającym niż u32) + regułą netfiltra. Pytanie - po co sobie komplikować życie?
Powiem inaczej. Dlaczego nie pisze sie calego programu w 1 linii (a raczej dlaczego nie powinno sie tak robic mimo, ze w wielu jezykach mozna? Choc Ty pewnie bys tak zrobil)?Raku wrote:Dokładnie tak samą jak pisać parent 1:0 zamiast parent 1:
Skoro lubisz. Ja nie moge Ci zabronic.Raku wrote:Sikać też można pod wiatr.
Ja o Tobie tez nie. Cwaniakujesz poprostu w tym momencie.Raku wrote:Ja tego powiedzieć nie mogę o tobie.
To brzmi jak nabór do jakiejś sekty...Belliash wrote:I? Wskazania wskazaniami, a praktyka nie raz swoje. Nie musisz wierzyc - Twoja sprawa. Zycze Ci bys sie z tym kiedys spotkal.Raku wrote:Widzisz jakąś różnicę? Bo ja nie. Obie klasy mają ten sam priorytet (0).
A masz jakieś statystyki potwierdzające twoje wywody, czy to tylko twoje "osobiste odczucia"? I tu masz rację - udaję, czepiam się. Wkurza cię to? To przemyśl swój styl bycia na forum i cfaniakowanie wobec innych.Na prawde jestes taki tepy czy udajesz? Nie kompromituj sie juz, bo kazdy kto chodzil do szkoly wie ze mega to 10^6. Co nie oznacza ze w praktyce kazdy to tak przelicza, wiec nie blaznuj juz. Nikt Ci nie kaze wpisywac 5Mbit jak mozesz wpisac 5120Kbit, co moze byc bardziej precyzyjne. Mowie MOZE bo to zalezy glownie od ISP, a jak juz wspomnialem w Polsce wiele (wiekszosc?) ISP przyjmuje ze 1Mbit = 1024Kbit. Ba, spotkalem sie nawet z tym ze niektorzy nie podaja wartosci w mbps tylko w kbps, aby ludzie Twojego pokroju nie mieli watpliwosci i problemow ze zrozumieniem.
Rozumiem, że w tym wątku kolegia lukpio3 miał ten problem i dlatego zaproponowałeś mu zmianę typu filtra, żeby mu pomóc... Nie zrozumiałeś aluzji, więc napiszę ją w prostszych słowach: wybór filtra to może być kwestia gustu. Czasami łatwiej jest użyć jednego filtra, czasami innego. W twoim wypadku, nachalne wręcz najechanie na kolegę, bo użył działającego filtra u32 i narzucenie mu własnego rozwiązania jako jedynego słusznego wyboru było po prostu żenujące.Twoje teorie mnie akurat najmniej interesuja. Rozumiem ze jak chcesz stworzyc regule dla kilku(...) portow to przeliczasz maski? Gratuluje... tylko nie wiem czego. Chyba glupoty. Ale jak kto woli...
Czyli ty się możesz czepiać innych, a jak się ktoś czepi ciebie o to samo, to już źle? Myślę, że takimi tekstami wyrabiasz sobie doskonałą opinię wśród forumowiczów...Powiem inaczej. Dlaczego nie pisze sie calego programu w 1 linii (a raczej dlaczego nie powinno sie tak robic mimo, ze w wielu jezykach mozna? Choc Ty pewnie bys tak zrobil)?Raku wrote:Dokładnie tak samą jak pisać parent 1:0 zamiast parent 1:
Piszę dokładnie w takim stylu, jak ty do lukpio3. Nie podoba ci się mój styl? To spójrz w lustro i zastanów się, czy nie warto zmienić podejścia do ludzi z forum.Ja o Tobie tez nie. Cwaniakujesz poprostu w tym momencie.
Czyli jednak przyznajesz, ze zapis parent 1:0 jest błędny? Cieszę się, że potrafisz się przyznać do błędu.Usilujesz na sile pokazac ze kazdy zapis jest dobry, ale to ze dziala (nawet prawidlowo) nie znaczy ze powinno sie tak robic.
Dużo pieniędzy zgarnąłeś za poprawianie w skryptach "rate=x ceil=x" na "rate=x"?I dziwic sie potem jakich mamy w Polsce fachowcow, skoro kazdy stosuje pol srodki i swoje "fachowe" sposoby. A pozniej trzeba po nich poprawiac.
Nie wiem, nie spotkałem się z negatywnymi opiniami. Próbujesz mi przypadkiem czymś dogryźć i nie możesz znaleźć argumentów? Przykre...Tak swoja droga... To uzytkownicy sieci ktora TY administrujesz tak wylewaja zale po forach, ze internet nie dziala?
Zenujace sa Twoje wypowiedzi. Powinienes wiedziec, ze u32 jest bardziej skomplikowany, a przy tym wcale nie szybszy. Ogolnie netfilter jest bardziej przyjazny poczatkujacym. Poza tym, gdy raz poznamy jego skladnie i zasade dzialania, to zrobimy praktycznie wszystko. W przypadku u32, zaczynaja sie wtedy schodki. Daleko szukac nie musze - zakres portow. O ile ustawienie maski dla 1 z nich wielkim wyzwaniem nie jest, to w przypadku zakresu moze stwarzac problemy. Takie rozwiazanie dla wielu jest po prostu trudne i nie wygodne, a niekiedy przysparza nawet problemy osobom zaznajomionym w temacie. To ze mniej pisania. wcale nie swiadczy o prostocie. Takze Twoje zachwalanie u32 jest raczej bezzasadne w tym przypadku.Raku wrote:Rozumiem, że w tym wątku kolegia lukpio3 miał ten problem i dlatego zaproponowałeś mu zmianę typu filtra, żeby mu pomóc... Nie zrozumiałeś aluzji, więc napiszę ją w prostszych słowach: wybór filtra to może być kwestia gustu. Czasami łatwiej jest użyć jednego filtra, czasami innego. W twoim wypadku, nachalne wręcz najechanie na kolegę, bo użył działającego filtra u32 i narzucenie mu własnego rozwiązania jako jedynego słusznego wyboru było po prostu żenujące.
Czyli dalej nie widzisz roznicy? Skoro autor prosi o pomoc i zadaje pytania, w konsekwencji czego otrzymuje porady, to powinien sie raczej do nich zastosowac, a juz na pewno poczytac troche. Dopiero wtedy gdyby czegos nie zrozumial zadawac dodatkowe pytania. Niestety nie rozumiem dlaczego pierw prosi o pomoc a gdy ja otrzyma w dalszym ciagu kopiuje to samo, albo skleja w calosc kilka skryptow z nadzieja ze moze zadziala. Jezeli nie chce pomocy, to niech robi sam, ale jesli juz o nia prosi to wypadaloby, aby sie zastanowil nad swoim problemem i do niego porzadnie przysiadl, zastosowal sie do rad i wskazowek a nie po 10x wklejal to samo. Ostatecznie Jego caly naklad pracy sprowadzal sie do uzywania kombinacji klawiszy ctrl+c i ctrl+v. Jezeli myslal ze dostanie gotowca to byl w bledzie. Masz racje, to wyglada na projekt. A z racji ze mamy sierpien, to smiem nawet twierdzic ze projekt na zaliczenie w ramach sesji poprawkowej. I tu tym bardziej powinien sie do zadania przylozyc, albo bedzie kolejnym "fachowcem nie potrafiacym wkrecic zarowki". A takich delikwentow pelno na studiach i chyba kazdy sie z kims takim spotkal.Raku wrote:Czyli ty się możesz czepiać innych, a jak się ktoś czepi ciebie o to samo, to już źle?
Widze nadal nie rozumiesz. Na wielu forach ludzie nawet nie zaglebiaja sie w problem, tylko oczekuja poprawy formatowania i czytelnosci. Zapewne robia to bo sa czepialscy prawda? Pewnych rzeczy, mimo ze dzialaja sie po prostu nie stosuje. Jedni dziwia sie dlaczego nie powinno sie mieszac kodu HTML z PHP, a inni dlaczego powinno sie pisac 1:0 zamiast 1: Komu jak komu ale Tobie tego tlumaczyc chyba nie musze? A ludzie powinni sie uczyc dobrych nawykow - mimo wszystko.Raku wrote:Czyli jednak przyznajesz, ze zapis parent 1:0 jest błędny?
Przestalbys sie juz kompromitowac.Raku wrote:Dużo pieniędzy zgarnąłeś za poprawianie w skryptach "rate=x ceil=x" na "rate=x"?
(...)
Próbujesz mi przypadkiem czymś dogryźć i nie możesz znaleźć argumentów?