Обсуждение статьи тематического каталога: Пример скрипта автоматической настройки dummynet во FreeBSD (ipfw freebsd traffic dummynet bandwidth shaper)Ссылка на текст статьи: http://www.opennet.me/base/net/ipfwdummynet.txt.html
а можно еще ipfw show и ipfw pipe show глянуть этого?
Чтобы посмотреть список правил которые скрипт сгенерить без их фактического применения:
chmod 744 rc.firewall
./rc.firewall testmodeПример данного скрипта с рабочей машины - все паблики начинаются на xxx.xxx
> ipfw -a list
00002 396 73846 allow ip from any to any via lo0 // loopback
00004 0 0 deny ip from any to 127.0.0.0/8 // loopback
00006 0 0 deny ip from 127.0.0.0/8 to any // loopback
00008 565 42064 deny ip from 192.168.0.0/16 to any in via xl0 // anti-spoofing
00010 0 0 deny ip from xxx.xxx.32.96/30 to any in via fxp0 // anti-spoofing
00012 19525400 11502876586 skipto 8000 ip from any to any in via xl0 // skip incoming traffic up to NAT
00014 81825 5934370 skipto 3000 icmp from 192.168.0.0/16 to any in via fxp0 // allow ICMP for any from inside
01000 56331294 13857877061 count ip from any to any // begin access control block
01002 20826854 1332421300 skipto 2000 ip from 192.168.0.0/16 to any in via fxp0 // allowed LAN IPs
01004 303 89178 deny ip from any to any in via fxp0 // deny not allowed LAN IPs
02000 56330991 13857787883 count ip from any to any // begin additional access control block
02002 0 0 skipto 3000 ip from 192.168.0.0/16 to xxx.xxx.32.35 dst-port 25 in via fxp0 // Anti-spambot - allowed servers
02004 21672 29028086 skipto 3000 ip from 192.168.0.0/16 to xxx.xxx.32.39 dst-port 25 in via fxp0 // Anti-spambot - allowed servers
02006 9461 12378108 skipto 3000 ip from 192.168.0.0/16 to xxx.xxx.32.102 dst-port 25 in via fxp0 // Anti-spambot - allowed servers
02008 448 30593 skipto 3000 ip from 192.168.0.0/16 to xxx.xxx.15.19 dst-port 25 in via fxp0 // Anti-spambot - allowed servers
02010 2527262 111111035 deny log ip from 192.168.0.0/16 to any dst-port 25 in via fxp0 // Anti-spambot - deny all other servers
02012 84240 9252541 deny ip from 192.168.0.0/16 to 192.168.0.0/16 dst-port 135,137-139,445 in via fxp0 // Stop windows flood from inside
03000 53801314 13743358677 count ip from any to any // begin shaper block |out|
03002 227595 15749679 skipto 8000 ip from 192.168.0.0/16 to xxx.xxx.32.35 in via fxp0 // skip not shaped resources |out|
03004 33520 29833821 skipto 8000 ip from 192.168.0.0/16 to xxx.xxx.32.39 in via fxp0 // skip not shaped resources |out|
03006 539738 35176151 skipto 8000 ip from 192.168.0.0/16 to xxx.xxx.32.102 in via fxp0 // skip not shaped resources |out|
03008 151750 15068892 skipto 8000 ip from 192.168.10.152 to any in via fxp0 // skip not shaped users |out|
03010 1886173 109144308 skipto 8000 ip from 192.168.10.155 to any in via fxp0 // skip not shaped users |out|
03012 181683 19277062 skipto 8000 ip from 192.168.10.150 to any in via fxp0 // skip not shaped users |out|
04000 50780855 13519108764 count ip from any to any // begin external resources shaper block |out|
04002 292049 13546118 skipto 5500 tag 1012 ip from 192.168.0.0/16 to xxx.xxx.32.114 in via fxp0 // tagging |out|
05500 50780855 13519108764 count ip from any to any // begin inject tagged to pipes block |out|
05502 292049 13546118 pipe 1012 ip from any to any in via fxp0 tagged 1012 // pipe (ExtFileServer:3Mbit/s:50) |out|
05504 292049 13546118 pipe 1902 tag 1902 ip from any to any in via fxp0 tagged 1012,1022,1032 // collective pipe (6Mbit/s:50) |out|
05506 292049 13546118 skipto 8000 ip from any to any in via fxp0 tagged 1902 // end of external resources shaper block |out|
06000 50488806 13505562646 count ip from any to any // begin users shaper block |out|
06002 14984669 980196063 skipto 7500 tag 2032 ip from 192.168.0.0/16 to any in via fxp0 // tagging |out|
07500 50488806 13505562646 count ip from any to any // begin inject tagged to pipes block |out|
07502 14984669 980196063 pipe 2032 ip from any to any in via fxp0 tagged 2032 // pipe (default:256Kbit/s:25) |out|
07504 12806442 866279867 pipe 2902 tag 2902 ip from any to any in via fxp0 tagged 2012,2022,2032 // collective pipe (768Kbit/s:50) |out|
07506 12806442 866279867 skipto 8000 ip from any to any in via fxp0 tagged 2902 // end of external resources shaper block |out|
08000 71148487 25132319067 count ip from any to any // begin NAT block
08002 16118950 1104075898 skipto 14000 ip from any to any in via fxp0 // skip outgoing traffic up to standart rules block
08004 37803555 12735522864 divert 8668 ip from any to any via xl0 // NAT
08006 403 21716 deny ip from any to xxx.xxx.32.96/30 dst-port 135,137-139,445 in via xl0 // Stop windows flood from outside
09000 55020797 24027263743 count ip from any to any // begin shaper block |in|
09002 266446 182425345 skipto 14000 ip from xxx.xxx.32.35 to 192.168.0.0/16 in via xl0 // skip not shaped resources |in|
09004 28338 13309899 skipto 14000 ip from xxx.xxx.32.39 to 192.168.0.0/16 in via xl0 // skip not shaped resources |in|
09006 910104 1136414287 skipto 14000 ip from xxx.xxx.32.102 to 192.168.0.0/16 in via xl0 // skip not shaped resources |in|
09008 232506 235662272 skipto 14000 ip from any to 192.168.10.152 in via xl0 // skip not shaped users |in|
09010 2755228 3667488392 skipto 14000 ip from any to 192.168.10.155 in via xl0 // skip not shaped users |in|
09012 266381 321156609 skipto 14000 ip from any to 192.168.10.150 in via xl0 // skip not shaped users |in|
10000 50561794 18470806939 count ip from any to any // begin external resources shaper block |in|
10002 556909 813704641 skipto 11500 tag 1011 ip from xxx.xxx.32.114 to 192.168.0.0/16 in via xl0 // tagging |in|
11500 50561794 18470806939 count ip from any to any // begin inject tagged to pipes block |in|
11502 556909 813704641 pipe 1011 ip from any to any in via xl0 tagged 1011 // pipe (ExtFileServer:3Mbit/s:50) |in|
11504 556909 813704641 pipe 1901 tag 1901 ip from any to any in via xl0 tagged 1011,1021,1031 // collective pipe (6Mbit/s:50) |in|
11506 556909 813704641 skipto 14000 ip from any to any in via xl0 tagged 1901 // end of external resources shaper block |in|
12000 50004885 17657102298 count ip from any to any // begin users shaper block |in|
12002 12227356 4993458561 skipto 13500 tag 2031 ip from any to 192.168.0.0/16 in via xl0 // tagging |in|
13500 50004885 17657102298 count ip from any to any // begin inject tagged to pipes block |in|
13502 12227356 4993458561 pipe 2031 ip from any to any in via xl0 tagged 2031 // pipe (default:256Kbit/s:25) |in|
13504 12134233 4911226417 pipe 2901 tag 2901 ip from any to any in via xl0 tagged 2011,2021,2031 // collective pipe (768Kbit/s:50) |in|
13506 12122949 4906116191 skipto 14000 ip from any to any in via xl0 tagged 2901 // end of external resources shaper block |in|
14000 71035340 25043997271 count ip from any to any // begin standart block
14002 30753704 22825599938 allow tcp from any to any established // allow packets RST or ACK bits set
14004 2674934 158251591 allow icmp from any to any icmptypes 0,3,4,8,11 // allow ICMP 0,3,4,8,11
14006 981 55036 deny log icmp from any to any // deny other ICMP
14008 0 0 allow ip from any to any frag // allow IP fragments
14010 2 96 allow tcp from 192.168.0.0/16 to 192.168.10.1 dst-port 22 in via fxp0 // allow SSH from LAN
14012 1474 88032 allow tcp from any to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14014 0 0 allow tcp from xxx.xxx.15.16/28 to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14016 0 0 allow tcp from xxx.xxx.15.32/28 to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14018 0 0 allow tcp from xxx.xxx.32.0/24 to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14020 0 0 allow tcp from xxx.xxx.169.50 to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14022 0 0 allow tcp from xxx.xxx.198.246 to xxx.xxx.32.98 dst-port 22 in via xl0 // allow SSH
14024 0 0 deny log tcp from any to xxx.xxx.32.98,192.168.10.1 dst-port 22 // deny SSH for all other
30000 37604245 2060002578 count ip from any to any // begin particular connection block
40000 37604135 2059995538 count ip from any to any // begin last block
40002 25676 1326016 deny log tcp from any to xxx.xxx.32.98 in via xl0 setup // reject all incoming TCP connection from outside
65534 37578459 2058669522 allow ip from any to any // allow from any to any - the end of rules
65535 2 138 allow ip from any to any> ipfw pipe show
02031: 256.000 Kbit/s 0 ms 25 sl. 47 queues (256 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
33 ip 0.0.0.0/0 192.168.10.113/0 7902 6027172 0 0 42
35 ip 0.0.0.0/0 192.168.10.115/0 119463 62192636 0 0 347
37 ip 0.0.0.0/0 192.168.10.117/0 91355 83927310 0 0 797
38 ip 0.0.0.0/0 192.168.10.118/0 38111 34713494 0 0 500
39 ip 0.0.0.0/0 192.168.10.119/0 38 41930 0 0 0
42 ip 0.0.0.0/0 192.168.10.122/0 33377 37013841 0 0 145
43 ip 0.0.0.0/0 192.168.10.123/0 40734 29842972 0 0 480
44 ip 0.0.0.0/0 192.168.10.124/0 479300 299105489 0 0 10499
45 ip 0.0.0.0/0 192.168.10.125/0 69995 56733582 0 0 586
47 ip 0.0.0.0/0 192.168.10.127/0 281799 60692003 0 0 96
52 ip 0.0.0.0/0 192.168.10.100/0 35409 25992834 0 0 689
54 ip 0.0.0.0/0 192.168.10.102/0 5357 5411853 0 0 58
57 ip 0.0.0.0/0 192.168.10.105/0 1076753 1490729416 18 25560 30202
59 ip 0.0.0.0/0 192.168.10.107/0 60964 57583647 0 0 1092
81 ip 0.0.0.0/0 192.168.0.1/0 14 632 0 0 0
82 ip 0.0.0.0/0 192.168.0.2/0 1 76 0 0 0
83 ip 0.0.0.0/0 192.168.10.3/0 15980 2841239 0 0 0
87 ip 0.0.0.0/0 192.168.10.7/0 3553 3341305 0 0 0
90 ip 0.0.0.0/0 192.168.10.10/0 10508 15558294 0 0 147
91 ip 0.0.0.0/0 192.168.10.11/0 94384 135793709 0 0 2215
128 ip 0.0.0.0/0 192.168.10.208/0 298668 226521489 0 0 981
129 ip 0.0.0.0/0 192.168.10.209/0 157540 147947417 0 0 199
153 ip 0.0.0.0/0 192.168.10.201/0 3377 256652 0 0 0
155 ip 0.0.0.0/0 192.168.10.203/0 184194 140010251 0 0 0
157 ip 0.0.0.0/0 192.168.10.205/0 236718 227892571 0 0 71
158 ip 0.0.0.0/0 192.168.10.206/0 214789 186952705 0 0 554
159 ip 0.0.0.0/0 192.168.10.207/0 334694 314790518 0 0 505
192 ip 0.0.0.0/0 192.168.10.144/0 106736 94026212 0 0 3940
193 ip 0.0.0.0/0 192.168.10.145/0 45697 43448664 0 0 178
194 ip 0.0.0.0/0 192.168.10.146/0 10725 8438345 0 0 79
195 ip 0.0.0.0/0 192.168.10.147/0 7292760 379193019 0 0 28877
196 ip 0.0.0.0/0 192.168.10.148/0 47216 55652106 0 0 1140
197 ip 0.0.0.0/0 192.168.10.149/0 12693 10293353 0 0 27
199 ip 0.0.0.0/0 192.168.10.151/0 38078 25675092 0 0 399
202 ip 0.0.0.0/0 192.168.10.154/0 298323 309799598 0 0 2951
208 ip 0.0.0.0/0 192.168.10.128/0 22056 17945182 0 0 396
210 ip 0.0.0.0/0 192.168.10.130/0 59939 49338667 0 0 779
211 ip 0.0.0.0/0 192.168.10.131/0 365 250040 0 0 0
215 ip 0.0.0.0/0 192.168.10.135/0 10643 5415149 0 0 262
216 ip 0.0.0.0/0 192.168.10.136/0 130994 144034383 0 0 1036
217 ip 0.0.0.0/0 192.168.10.137/0 61981 36859345 0 0 23
218 ip 0.0.0.0/0 192.168.10.138/0 110485 93629431 0 0 2269
219 ip 0.0.0.0/0 192.168.10.139/0 2469 983265 0 0 0
220 ip 0.0.0.0/0 192.168.10.140/0 234 150257 0 0 0
222 ip 0.0.0.0/0 192.168.10.142/0 3954 3574764 0 0 4
223 ip 0.0.0.0/0 192.168.10.143/0 18067 14603011 0 0 190
240 ip 0.0.0.0/0 192.168.10.160/0 59443 48907191 0 0 398
02902: 768.000 Kbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 udp 192.168.10.125/3738 192.168.10.1/53 12806693 866295841 0 0 0
02032: 256.000 Kbit/s 0 ms 25 sl. 43 queues (256 buckets) droptail
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
8 ip 192.168.10.208/0 0.0.0.0/0 307958 32851068 0 0 0
10 ip 192.168.10.209/0 0.0.0.0/0 157939 19315312 0 0 0
50 ip 192.168.10.205/0 0.0.0.0/0 251209 30558832 0 0 0
52 ip 192.168.10.206/0 0.0.0.0/0 220607 25773034 0 0 0
54 ip 192.168.10.207/0 0.0.0.0/0 342733 34646745 0 0 0
58 ip 192.168.10.201/0 0.0.0.0/0 3407 258932 0 0 0
62 ip 192.168.10.203/0 0.0.0.0/0 198546 38252175 0 0 0
66 ip 192.168.10.117/0 0.0.0.0/0 79332 9145451 0 0 5
68 ip 192.168.10.118/0 0.0.0.0/0 33659 5106400 0 0 0
70 ip 192.168.10.119/0 0.0.0.0/0 42105 8168944 0 0 0
74 ip 192.168.10.113/0 0.0.0.0/0 7403 980108 0 0 0
78 ip 192.168.10.115/0 0.0.0.0/0 148206 18222101 0 0 0
80 ip 192.168.10.124/0 0.0.0.0/0 536679 41943043 0 0 252
82 ip 192.168.10.125/0 0.0.0.0/0 63862 8681784 0 0 0
86 ip 192.168.10.127/0 0.0.0.0/0 347074 24002481 0 0 0
92 ip 192.168.10.122/0 0.0.0.0/0 26571 3154612 0 0 0
94 ip 192.168.10.123/0 0.0.0.0/0 43040 4838158 0 0 0
96 ip 192.168.10.100/0 0.0.0.0/0 34770 4287472 0 0 4
100 ip 192.168.10.102/0 0.0.0.0/0 4855 422545 0 0 0
122 ip 192.168.10.105/0 0.0.0.0/0 674473 46736630 0 0 10
126 ip 192.168.10.107/0 0.0.0.0/0 49219 6199634 0 0 0
128 ip 192.168.10.148/0 0.0.0.0/0 35927 3727298 0 0 0
130 ip 192.168.10.149/0 0.0.0.0/0 11077 1810427 0 0 0
134 ip 192.168.10.151/0 0.0.0.0/0 36500 5580633 0 0 4
136 ip 192.168.10.144/0 0.0.0.0/0 89288 12102855 0 0 33
138 ip 192.168.10.145/0 0.0.0.0/0 36563 3890955 0 0 0
140 ip 192.168.10.146/0 0.0.0.0/0 8934 1498375 0 0 0
142 ip 192.168.10.147/0 0.0.0.0/0 10427509 497086325 0 0 2177745
156 ip 192.168.10.154/0 0.0.0.0/0 238708 27838540 0 0 5
160 ip 192.168.10.4/0 0.0.0.0/0 2248 150610 0 0 0
166 ip 192.168.10.135/0 0.0.0.0/0 32 1792 0 0 0
168 ip 192.168.10.128/0 0.0.0.0/0 21327 2780321 0 0 0
170 ip 192.168.0.1/0 0.0.0.0/0 6 316 0 0 0
172 ip 192.168.10.130/0 0.0.0.0/0 2460 195127 0 0 0
174 ip 192.168.10.3/0 0.0.0.0/0 860 79936 0 0 0
176 ip 192.168.10.12/0 0.0.0.0/0 57 2592 0 0 0
180 ip 192.168.10.142/0 0.0.0.0/0 22653 4053987 0 0 0
182 ip 192.168.10.143/0 0.0.0.0/0 16589 1614815 0 0 0
184 ip 192.168.10.136/0 0.0.0.0/0 107329 11109590 0 0 0
186 ip 192.168.10.137/0 0.0.0.0/0 60576 4657906 0 0 0
188 ip 192.168.10.10/0 0.0.0.0/0 2630 113143 0 0 0
190 ip 192.168.10.11/0 0.0.0.0/0 14804 1798097 0 0 0
232 ip 192.168.10.160/0 0.0.0.0/0 51307 6157381 0 0 0
01012: 3.000 Mbit/s 0 ms 50 sl. 3 queues (256 buckets) droptail
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
66 ip 192.168.10.117/0 0.0.0.0/0 303 22574 0 0 0
92 ip 192.168.10.122/0 0.0.0.0/0 291741 13523124 0 0 0
172 ip 192.168.10.2/0 0.0.0.0/0 5 420 0 0 0
02901: 768.000 Kbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 udp xxx.xxx.15.19/53 192.168.10.3/4461 12134687 4911851947 1 1420 11284
01901: 6.000 Mbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp xxx.xxx.32.114/8081 192.168.10.117/1073 556909 813704641 0 0 0
01902: 6.000 Mbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp 192.168.10.117/1073 xxx.xxx.32.114/8081 292049 13546118 0 0 0
01011: 3.000 Mbit/s 0 ms 50 sl. 3 queues (256 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
37 ip 0.0.0.0/0 192.168.10.117/0 347 302372 0 0 0
42 ip 0.0.0.0/0 192.168.10.122/0 556557 813401849 0 0 0
82 ip 0.0.0.0/0 192.168.10.2/0 5 420 0 0 0
В скрипте маленькая ошибочка:В секции NAT блок:
###############################################################################
#Skip all outgoing traffic up to standart rules block
${ipfw_cmd} add skipto ${f_num_stdb} all from any to any in via ${iif} // skip outgoing traffic up to standart rules block${ipfw_cmd} add ${f_num_natb} count all from any to any // begin NAT block
#NAT rules
${ipfw_cmd} add divert natd all from any to any via ${oif} // NAT#Stop windows flood from outside
${ipfw_cmd} add deny all from any to ${onet}:${omask} 135,137-139,445 in via ${oif} // Stop windows flood from outside###############################################################################
заменить на:
###############################################################################
${ipfw_cmd} add ${f_num_natb} count all from any to any // begin NAT block
#Skip all outgoing traffic up to standart rules block
${ipfw_cmd} add skipto ${f_num_stdb} all from any to any in via ${iif} // skip outgoing traffic up to standart rules block#NAT rules
${ipfw_cmd} add divert natd all from any to any via ${oif} // NAT#Stop windows flood from outside
${ipfw_cmd} add deny all from any to ${onet}:${omask} 135,137-139,445 in via ${oif} // Stop windows flood from outside###############################################################################
divert natd - Это та ещё параша. сколько раз встречал - всегда проблемы с ним. Даже User space ppp натит на порядок лучше.dummynet вещь очень удобная, но для полного счастья её надо прикручивать к нормальному файеру типа PF
Давно использую PF на фришке
Вы просто не умеете готовить IPFW и NATD. Использую их еще с R2.2.1, и никаких проблем не возникало. С учетом того, что с некоторых пор трансляция адресов сидит в ядре фрей, единственный существенный аргумент против натд (повышенная нагрузка, связанная с переключениями контекста) актуальность потерял.Если же вам сложно прописать правила форварда для корректной работы сервисов, то разве это проблема файрволла?
также юзаю ipfw + natd с четверки
а многих машинах
я никогда не встречал каких либо проблем связанных с работой этой связки
Вопросик: как заставить программу (torrent-клиент) запущенную на самом шлюзе участвовать в процессе дележки трафика через dummynet? А то она напрямую шлет свои пакеты на default gateway, то есть работает параллельно с dummynet.
Можно ли как-то привязать программу к внутреннему интерфейсу, чтобы пакеты с внутреннего интерфейса пересылались на внешний, проходили NAT, dummynet и потом уже шли в инет?
указать роут default на текущую машину?
люди плз объясните мне что с этим делать? прописывать в конф файлы? или это можно как то скопипастить и запустить на выполнение?! а то я перепробовал пару-тройку статей по настройке дамминета, но ни поодной у меня не заработало... ЗЫ и не бейте сильно, я полный дуб пока в этом...