🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.bsd
Article #21869

Re: altq co zrobile zle - dlugie

#21869
From: Tomasz Sowa
Date: Sat, 16 Oct 2010 00:54
116 lines
5161 bytes
Dnia Thu, 14 Oct 2010 12:53:36 +0200, KZ napisał(a):

> dopadlem w necie taka konfiguracje na router

Lubie ludzi z poczuciem humoru.

> # Kolejki defaultowe:
> queue def bandwidth 1% hfsc(default upperlimit 8192Kb)
> queue defu bandwidth 1% hfsc(default upperlimit 630Kb)

Upewnij się że te limity masz lekko mniejsze niż fizyczne możliwości,
tak na około 5-10 procent wystarczy, w przeciwnym wypadku pakiety
zaczną się kolejkować po stronie providera i nici z twojego 
priorytetowania.

> queue _2               bandwidth 1%  hfsc( upperlimit 850Kb )
> queue _2u              bandwidth 1%  hfsc( upperlimit 180Kb )
> queue _3               bandwidth 1%  hfsc( upperlimit 900Kb )
> queue _3u              bandwidth 1%  hfsc( upperlimit 185Kb )
> queue _4               bandwidth 1%  hfsc( upperlimit 800Kb )
> queue _4u              bandwidth 1%  hfsc( upperlimit 185Kb )
> queue _5               bandwidth 1%  hfsc( upperlimit 800Kb )
> queue _5u              bandwidth 1%  hfsc( upperlimit 185Kb )
> queue _6               bandwidth 1%  hfsc( upperlimit 800Kb )
> queue _6u              bandwidth 1%  hfsc( upperlimit 185Kb )

Nie odróżnisz limitu downloadu 850Kb i 900Kb, nie masz wielkiego 
wpływu na download, ile wysyłający do ciebie będzie chciał wysłać
tyle wyśle, w przypadku tcp poprostu nie dostanie w odpowiedniej
szybkości odpowiedzi (pakietów kontrolnych) i przestanie na chwile
wysyłać. Ale już w przypadku udp i icmp to będzie słał ile fabryka
dała.

> #pass in quick on $ext_if inet proto udp from any port 53 to any label "DNS-in"

co chciałeś tą regułką złapać?

> pass in quick on $int_if inet proto tcp from $prv_hosts to $int_if port 22 label "ssh-int"

taki ruch aż się prosi o priorytet, nie wygodnie jest mieć
płynną konsole?

> pass in quick on $ext_if inet proto tcp from 0.0.0.0/0 to $ext_if port 22 label "ssh-ext"

a tą regułą co chcesz złapać?

[ciach]

> pass in quick on $int_if inet proto {tcp,udp} from 192.168.0.2 to any port $ports $flag queue _2u  label _2u
> pass out quick on $int_if from any to 192.168.0.2  $flag queue _2  label _2

nie zadziała, źle przypisujesz pakiety do kolejek
pierwsza reguła stworzy regułkę stanu (masz flagę keep state) 
i przy pakietach powracających zostanie wykorzystana reguła stanu
która nic nie będzie wiedziała o priorytecie downloadu
i wrzuci wszystko do domyślnej kolejki
(firewall nawet nie użyje drugiej reguły)

W skrócie to się robi tak:
pass in  quick on $int_if inet proto tcp from 192.168.0.2 to any port $ports $flag queue _2
pass out quick on $ext_if inet proto tcp from $ext_if to any port $ports $flag queue _2u

Dla reguły zezwalającej na interfejsie wewnętrznym pakiety przypisujesz
do kolejki _2 (download). One wpadną tam jak będą wracać z uwagi że pf to
state-full firewall. Przy pakiecie wyjściowym jawnie ustawiasz kolejkę
wyjściową. 

Możesz także użyć tagowania (parametry: tag, tagged)

[reszta kolejek też do poprawy]


> -altq dodane i skopilowane do jadra
> device          pf
> device          pflog
> device          pfsync

dobrze

> #ALTQ
> options         ALTQ
> options         ALTQ_CBQ
> options         ALTQ_RED
> options         ALTQ_RIO
> options         ALTQ_HFSC
> options         ALTQ_CDNR
> options         ALTQ_PRIQ

z powyższego wykorzystujesz tylko ALTQ i ALTQ_HFSC

> #FIREWALL
> options         IPFIREWALL
> options         IPFIREWALL_VERBOSE
> options         IPFIREWALL_FORWARD
> options         IPFIREWALL_VERBOSE_LIMIT=100
> options         IPFIREWALL_DEFAULT_TO_ACCEPT
> #options         IPV6FIREWALL
> #options         IPV6FIREWALL_VERBOSE
> #options         IPV6FIREWALL_VERBOSE_LIMIT=100
> #options         IPV6FIREWALL_DEFAULT_TO_ACCEPT
> options         IPSTEALTH
> options         IPFILTER
> options         IPFILTER_LOG
> options         IPDIVERT

> wszystko niby dziala tylko nie tnie to podanych wartosci
> moze podacie mi kilka uwag co jest zle 

Zdecyduj się którego firewalla używasz. IPFIREWALL ci 
nie potrzebny, usuń te ostatnie reguły i przekompiluj jądro.
Nie widzę reguł do natowania, więc w tej chwili coś 
innego zaczeło ci robić nata. Podsumowując: wszystko do poprawy.

-- 
Tomek
http://www.ttmath.org
Technical Details
Message-ID: <5he47ed4px54.dlg@torpi.slimaczek.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.dialog.net.pl!not-for-mail
References: <19xf4jfw8bz2d.1mbnznwx0bxq$.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.dialog.net.pl!not-for-mail
From: Tomasz Sowa <ts@ttmath.NOSPAM.org>
Newsgroups: pl.comp.os.bsd
Subject: Re: altq co zrobile zle - dlugie
Date: Sat, 16 Oct 2010 02:54:55 +0200
Organization: Dialog Net
Lines: 119
Message-ID: <5he47ed4px54.dlg@torpi.slimaczek.pl>
References: <19xf4jfw8bz2d.1mbnznwx0bxq$.dlg@40tude.net>
Reply-To: ts@ttmath.NOSPAM.org
NNTP-Posting-Host: dynamic-62-87-242-126.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1287190506 15397 62.87.242.126 (16 Oct 2010 00:55:06 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Sat, 16 Oct 2010 00:55:06 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit