Pozdravujem Vas,

na uvod:
pravidla, ktore uvadzam nizsie mi fungovali par rokov (od verzie 5.5 do 7.4). Po implementacii do verzie FreeBSD 8.3-p3 sa to sprava velmi cudne. Rozbor/popis za pravidlami

Cast vypisu firewallu:
*****************************************************************************************
[...]
### Privatny interface
priif="em0"
prinet="192.168.1.0"
primask="255.255.255.0"
priip="192.168.1.3"
### Verejny interface
pubif="fxp0"
pubnet="X.X.X.160"
pubmask="255.255.255.248"
pubip="X.X.X.162"
[...]

[...]
##### DUMMYNET #####
# Rury, pre pocitac kde mam 100 Mbitovu linku, bez front (bez front ako parameter)
${fwcmd} pipe 10 config bw 100MBit/s #download pre X.X.X.163
${fwcmd} pipe 20 config bw 100MBit/s #upload pre X.X.X.163

# Rury, vseobecne pre internet, s frontami (s frontami ako parameter)
${fwcmd} pipe 30 config bw 15Mbit/s #download z internetu 15 Mbit/s - 1920 KByte/s ${fwcmd} pipe 40 config bw 544Kbit/s queue 68KBytes #upload do internetu 512 Kbit/s - zamerne davam viac na 544 Kbit/s

# Podrury rury 40 pre SMTP a FTP-DATA, s frontami (s frontami ako parameter)
${fwcmd} pipe 50 config bw 416Kbit/s queue 52KBytes #upload SMTP 416 Kbit/s
${fwcmd} pipe 60 config bw 448Kbit/s queue 56KBytes #upload FTP-DATA 448 Kbit/s

# ...no, a tu uz mam zadefinovane pravidla pre rury. Vsetky e-maily z vnutornej siete,
# tlacim do internetu maximalnou rychlostou zadanou v rure 50
${fwcmd} add 1030 pipe 50 tcp from any to any 25,465 out via ${pubif}

# Ftp-data z vnutornej siete, tlacim do internetu (okrem ...163) maximalnou rychlostou
# zadanou v rure 60
${fwcmd} add 1040 pipe 60 tcp from any to not X.X.X.163 20,49152-65535 out via ${pubif}

# Fronty, ktore smerujem do rur pre pocitac, kde mam 100 Mbitovu linku bez front (bez # front ako parameter), s rovnomernym rozdelenim pasma rur podla zdrojovej a cielovej # IP adresy, s uplatnenim rozdelenia pasma napr. aj pri odosielani e-mailov viacerymi
# uzivatelmi v jednom okamihu
${fwcmd} queue 10 config pipe 10 mask dst-ip 0xffffffff
${fwcmd} queue 20 config pipe 20 mask src-ip 0xffffffff
${fwcmd} add 1049 queue 20 ip from 192.168.1.0/24 to X.X.X.163 out via ${pubif}

# Fronty, ktore smerujem do rur vseobecne pre internet, s frontami (s frontami ako # parameter), s rovnomernym rozdelenim pasma rur podla zdrojovej a cielovej IP adresy, # s uplatnenim rozdelenia pasma napr. aj pri odosielani e-mailov viacerymi uzivatelmi v
# jednom okamihu
${fwcmd} queue 30 config pipe 30 mask dst-ip 0xffffffff
${fwcmd} queue 40 config pipe 40 mask src-ip 0xffffffff queue 68KBytes
${fwcmd} add 1050 queue 40 ip from 192.168.1.0/24 to not X.X.X.163 out via ${pubif}

##### NAT #####
${fwcmd} add 1100 divert natd ip from any to any via ${natd_interface} #NAT

# ...no, a tu samozrejme, zakonite nasleduju pravidla pre prichodze pakety z internetu ${fwcmd} add 1149 queue 10 ip from X.X.X.163 to 192.168.1.0/24 in via ${pubif} ${fwcmd} add 1150 queue 30 ip from not X.X.X.163 to 192.168.1.0/24 in via ${pubif}
[...]

*****************************************************************************************

SYSCTL
"net.inet.ip.fw.one_pass=0"
*****************************************************************************************

ROZBOR/POPIS:

- PC s IP adresou X.X.X.163 je susediaci pocitac, za NAT-kom pocitaca s ip-kou X.X.X.162 na 100MBit linke, zjednodusena schema zapojenia:

---- inet - router -lan 100MBit ---- X.X.X.163
-lan 100MBit ---- X.X.X.162 --- NAT/PrivatIP - 192.168.1.1

Ked som aplikoval vyssie uvedene pravidla na FreeBSD 8.3-p3, pakety prestali tiect. Zacal som monitorovat tcpdump-om pakety a: - na verejnom interface (X.X.X.162) ziadna aktivita paketov smerujucich do internetu
 - komunikacia so susednym PC X.X.X.163 OK
 - SMTP smerujuce do netu OK
Kedze som tieto pravidla roky nemenil, casom cloveku ciastocne vysumi podstata. Samozrejme, vratil som sa k man a zacal si opatovne preluskavat, ako som to v zadani pravidiel myslel. Popritom som som skusil upravit/modifikovat zopar parametrov, nie som si vsak isty vsetkym. 1) Odstranenie parametra 'queue' v pravidlach 'pipe' 40, 50, 60 a ponechanie to na defaultne hodnoty (50 slotov). Po tejto zmene sa to rozbehlo, a vyzera, ze vsetko tecie ako ma. Je vsak pravdou, ze som v 'pipe 40', zadal realnu hodnotu 512KBit/s, namiesto 544KBit/s. Nemyslim si, ze by vyssia hodnota mala na to vplyv, kedze Upload je sice kolisavy, ale viac ako casto mam na Uploade vacsiu rychlost nez zmienenych 512KBit/s. 2) Zaujimavostou je vsak 'net.inet.ip.fw.one_pass=0', ktory som skusil nastavit aj na hodnotu '1' a pakety mi tecu (zatial som sa k hlbsej analyze nedostal, testujem/skusam priebezne). Na hodnote '0' som to mal doteraz nastavene z toho dovodu, ze mam v PC 'X.X.X.162' dva interface (privatny a verejny, verejny je zarovne NAT-kom) a potreboval som zabezpecit, aby dummynet/traffic shaper fungoval pri vstupe aj vystupe. Aspon tak to chapem z man ipfw/dummynet.

Momentalny stav je teda taky, ze mam aplikovany bod 1 s Upload 512KBit/s a pakety tecu aj pri 'net.inet.ip.fw.one_pass=0' a aj pri hodnote '1'. Zatial riesim, aby mi to vobec tieklo, bez shapingu, a vyzera, ze tecie. Aby shaping fungoval korektne, predpokladam, ze pri mojom modeli (dva interface) ma byt 'net.inet.ip.fw.one_pass=0'.

No a na zaver este spomeniem rury 50 a 60, ktore vnimam ako PODRURY RURY 40. Myslim, ze su spravne zadefinovane, ale nie som si isty pravidlami 1030 a 1040, pretoze by som mal na na jednej strane napajat rury na fronty a ja napajam ruru na ruru, ale zasa na druhej strane su rury 50 a 60 podrurami rury 40.

        Poprosil by som Vas, vyjadrujte sa k meritu veci. Dakujem.


Lubo M.
--
~~~~~~~~~~~~~~~~~~~~
http://LuMaX.acom.sk
~~~~~~~~~~~~~~~~~~~~
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem