Страница 1 из 1
ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 14:46:16
RAGNAR
1. ipnat не перенапровляет с двех сетевых fxp0 и fxp1 ( их ip находяться в одной сети, например 192.168.1.1 и 192.168.1.3).
делается пренапровление только с одной. правила ниже
2. ipnat отказывается перенапровлять пакеты по логичному правилу.
Код: Выделить всё
rdr fxp0 192.168.1.0/24 port 80 -> 127.0.0.1 port 3128 tcp
перенапровление идет только если сеть 192.168.1.0/24 заменить 0.0.0.0/0 , тоесть any
Код: Выделить всё
rdr fxp0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
rdr fxp1 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
3. ipnat перенапровляет пакеты с любого каличества сетевых , НО они должны быть в разных классах.
вариант 1 192.168.1.0/24 и 192.168.2.0/24 работает только одна подсеть
вариант 2 192.168.1.0/24 и 172.16.16.0/24 работают обе подсети, опять же при указании 0.0.0.0/0
ipfw fwd интересен тем что не нужно указывать устройства с каторого нужно перенапровлять , тоесть сетевые.
опять же fwd отказался работать и через него не шли правила когда указываю подсеть (192.168.1.0.24) , работает при значение any
Код: Выделить всё
ipfw add 25 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80 via ng0 не работает
ipfw add 25 fwd 127.0.0.1,3128 tcp from any to any 80 via ng0 работает
это то что прописано в прокси.
прокоментируйте данное явление. может кто знает как с этим бороться.
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 15:26:20
hizel
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 16:08:55
RAGNAR
Код: Выделить всё
md5ksr# ipfw show
00010 0 0 check-state
00025 0 0 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any dst-port 80 via ng0
00050 9944663 6628180012 skipto 670 ip from any to any via fxp0
00050 418118 374242829 skipto 670 ip from any to any via rl0
00100 300 16146 deny log logamount 10 ip from any to 84.xx.xx.xx dst-port 21,22,135-139,443,445,1723 via ng0
00110 0 0 deny log logamount 10 tcp from any to 84.xx.xx.xx not established tcpflags fin
00120 0 0 deny log logamount 10 tcp from any to 84.xx.xx.xx tcpflags syn,fin,ack,psh,rst,urg
00130 11 548 allow log logamount 10 tcp from me 1723 to any keep-state
00180 6190969 6432312834 skipto 400 ip from any to any in via ng0
00181 4292201 600518472 skipto 600 ip from any to any out via ng0
00200 24700 2909748 allow ip from any to any via lo0
00210 0 0 deny ip from any to 127.0.0.0/8
00220 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from any to 192.168.0.0/16 in via ng0
00405 0 0 deny ip from any to 10.10.0.0/16 in via ng0
00410 0 0 deny ip from any to 224.0.0.0/4 in via ng0
00420 0 0 deny ip from any to 240.0.0.0/4 in via ng0
00430 0 0 deny ip from any to 0.0.0.0/8 in via ng0
00440 0 0 deny ip from any to 172.16.0.0/16 in via ng0
00450 6190969 6432312834 skipto 660 ip from any to any in via ng0
00600 933 47344 deny ip from 192.168.0.0/16 to any out via ng0
00603 0 0 deny ip from 192.168.0.0/16 to any out via ng0
00605 0 0 deny ip from 172.16.0.0/16 to any out via ng0
00610 0 0 deny ip from 224.0.0.0/4 to any out via ng0
00620 0 0 deny ip from 240.0.0.0/4 to any out via ng0
00630 0 0 deny ip from 0.0.0.0/8 to any out via ng0
00660 0 0 deny icmp from any to 255.255.255.255 via ng0
00670 0 0 deny icmp from any to any frag
00680 4856 298636 allow icmp from any to any icmptypes 0,8,11
00690 13216 1163921 deny icmp from any to any
00699 10465307 7031320650 skipto 3300 ip from any to any via ng0
00720 4895406 5380743993 pipe 1 ip from not 192.168.1.0/24 to 192.168.1.0/24 out
00721 820508 687800841 pipe 3 ip from not 10.10.0.0/24 to 10.10.0.0/24 out
00722 264509 362241551 pipe 5 ip from not 172.16.16.0/24 to 172.16.16.0/24 out
00730 3476328 434907045 pipe 2 ip from 192.168.1.0/24 to not me in
00731 625585 58898869 pipe 4 ip from 10.10.0.0/24 to not me in
00732 148496 9909440 pipe 6 ip from 172.16.16.0/24 to not me in
02000 5693682 3992714257 allow tcp from any to any established
02200 4236844 2712093871 allow ip from any to any via fxp0
02500 6782 562965 allow ip from any to any via rl0
02600 0 0 allow gre from any to any
03300 10465465 7031393804 allow ip from any to any via ng0
05000 0 0 deny log logamount 10 ip from any to any
65535 2 156 deny ip from any to any
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 16:49:30
hizel
гадский fwd не ведет счетчик пакетов, как насчет поставить перед ним такое же правило с count
и еще интересно, до или после ipfw работает у вас ipnat
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 18:23:29
RAGNAR
до или после, незнаю. так это можно выяснить. одновременно rdr и fwd не использую. если одно то другое вырубаю...
опынтым путем выяснил. что у меня конкретно при наличии rdr и fwd первый перехватывает и перенаправляет fwd, значит ipnat работает после ipfw
fwd считает пакеты . вот пример наглядный касаемо any в правеле 28, а на 25 вообще несрабатывает
Код: Выделить всё
00010 0 0 check-state
00025 0 0 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any dst-port 80 via ng0
00028 7 1040 fwd 127.0.0.1,3128 tcp from any to any dst-port 80 via ng0
00050 10995005 7313673751 skipto 670 ip from any to any via fxp0
00050 507695 440009488 skipto 670 ip from any to any via rl0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 18:42:23
hizel
такое ощущение что оно натицо до того как работает fwd
как насчет вписать
Код: Выделить всё
fwd 127.0.0.1,3128 tcp from <nat адрес> to any dst-port 80 via ng0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 19:34:46
RAGNAR
nat адрес, это имееться ввиду ip внутренней сетевой или чего, непонел... что конкретно вписать
Код: Выделить всё
fwd 127.0.0.1,3128 tcp from <nat адрес> to any dst-port 80 via ng0
тоесть ты счетаешь нужно вообще отключить ipnat и попробывать. щас попробую.
ipnat.rules это такой вариант когда ipfw fwd работает
Код: Выделить всё
#rdr fxp0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
map ng0 192.168.1.0/24 -> 84.xx.xx.xx/32 portmap tcp/udp auto
map ng0 192.168.1.0/24 -> 84.xx.xx.xx/32
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 19:50:39
RAGNAR
а вот и выеснилось если я отрубаю ipnat, то пакеты пошли по логичному пути смотри ниже.
Код: Выделить всё
#rdr fxp0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 tcp
#map ng0 192.168.1.0/24 -> 84.xx.xx.xx/32 portmap tcp/udp auto
#map ng0 192.168.1.0/24 -> 84.xx.xx.xx/32
но тогда предеться использовать natd, по тому что в инет идет только 80 порт а остольное не натиться...
Код: Выделить всё
md5ksr# ipfw show
00010 0 0 check-state
00025 439 55864 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any dst-port 80 via ng0
00050 11178608 7410300202 skipto 670 ip from any to any via fxp0
00050 594544 502674081 skipto 670 ip from any to any via rl0
Твое мнение на счет natd по сравнению с ipnat по бытродействию и меньшей нагрузкой?
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-17 20:30:14
hizel
бсдя какая? как насчет kernel nat или, прости господи, pf?
как ipnat грузится, модулем или вкомпилено в ядрышко ?
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-18 2:18:44
RAGNAR
на счет kernel nat пока незнаю. как он себя ведет?
ipnat собран в ядро.
Код: Выделить всё
md5ksr# uname -a
FreeBSD md5ksr 7.2-RELEASE FreeBSD 7.2-RELEASE #0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-18 8:18:46
hizel
порядок прохождения пакетов
http://paix.org.ua/freebsd/fwpackets.html
а kernel nat меня к примеру вполне устраивает
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 14:09:41
RAGNAR
посмотрю. блогадарю за ссылку. а на счет кернел ната. в интернете ммного про него чего плохого пишут или это относиться к ранним версиям?
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 19:39:59
RAGNAR
посматри как такой конфиг будет работать. может что подправишь или совет дашь.
Код: Выделить всё
ipfw pipe 1 config bw 3500Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw pipe 2 config bw 900Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
# вот тут вопрос возникает у меня 2 сетевый смотрят в локалку , будет логично применить два правила
ipfw nat 1 config log if fxp0 same_ports reset deny_in
ipfw nat 1 config log if rl0 same_ports reset deny_in
ipfw add pipe 1 ip from not 10.10.0.0/24 to 10.10.0.0/24 out
ipfw add pipe 2 ip from 10.10.0.0/24 to not me in
ipfw add 3300 queue 1 ip from any to any out xmit ng0
ipfw add 3301 nat 1 ip from any to any via gn0
ipfw add 3302 queue 2 ip from any to any in recv ng0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 20:10:59
hizel
нет, делайте два разных nat
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 20:14:20
RAGNAR
тогда вопрос у меня канал один и и я хочу его использовать по максимому. не деля его по полам для двех nat и не делать 4 pipe...
что можно придумать в этой ситуации
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 20:30:17
hizel
а я не понял почему nat вы пишете в сторону локалки

Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 21:37:31
RAGNAR
да точно подмечено.. затупил что то...
сегодня попробывал новую конструкцию шейпера каторую превел рание... интересно ведет себя... решил сначала с нее начать преводить по тихоньку.
Код: Выделить всё
ipfw pipe 1 config bw 3500Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw pipe 2 config bw 900Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw add pipe 1 ip from not 10.10.0.0/24 to 10.10.0.0/24 out
ipfw add pipe 2 ip from 10.10.0.0/24 to not me in
# nat пока не трогал пока просто шейпер потестить решил. натиться все пока через ipnat
интересно получаеться. щас работает 4 pc с одресами
10.10.0.15
10.10.0.17
10.10.0.19
10.10.0.36
у всех все работает... только я не пойму работает ли шейпер.
пример 5 взял с сайта
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ про kernel nat.
вобщемто внизу брет какойто. не разяснишь?
Код: Выделить всё
md5ksr# ipfw pipe show
00001: 3.500 Mbit/s 0 ms 60 sl. 1 queues (1 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp 94.100.178.25/443 10.10.0.19/49435 1737245 1500238965 0 0 333
00002: 900.000 Kbit/s 0 ms 60 sl. 1 queues (1 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp 10.10.0.15/1940 95.25.173.15/80 1121502 104434550 0 0 14
q00001: weight 1 pipe 1 60 sl. 1 queues (64 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
22 ip 0.0.0.0/0 84.xx.xx.xx/0 2551972 2606102469 0 0 751
q00002: weight 1 pipe 2 60 sl. 1 queues (64 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
46 ip 84.xx.xx.xx/0 0.0.0.0/0 1743925 152469032 0 0 0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 21:43:18
RAGNAR
попробывал щас этот вариант... даже пинг не пошел и злой интернет.
Код: Выделить всё
ipfw nat 1 config log if ng0 same_ports reset deny_in
ipfw add 3300 queue 1 ip from any to any out xmit ng0
ipfw add 3301 nat 1 ip from any to any via ng0
ipfw add 3302 queue 2 ip from any to any in recv ng0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-19 23:17:34
hizel
смотрите man ipfw в части one_pass и прохождение пакетов через nat и pipe/queue
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-20 12:32:25
RAGNAR
эта конструкция вообще не работает, не зависимо от one_pass
Код: Выделить всё
ipfw pipe 1 config bw 3500Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw pipe 2 config bw 900Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw nat 1 config log if ng0 reset same_ports deny_in
ipfw add queue 1 ip from any to any out xmit ng0
ipfw add nat 1 ip from any to any via ng0
ipfw add queue 2 ip from any to any in recv ng0
работатет если выкинуть правила queue... и шейпер ведет себя как то не так... а конфиг с сайта и говорят что рабочий
Код: Выделить всё
ipfw pipe 1 config bw 3500Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw pipe 2 config bw 900Kbit/s queue 60 gred 0.002/10/30/0.1
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff queue 60 gred 0.002/10/30/0.1
ipfw nat 1 config log if ng0 reset same_ports deny_in
ipfw add nat 1 ip from any to any via ng0
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-20 12:35:23
RAGNAR
а по поводу основного вопроса... kernel nat, все работает различий от ipnat .
Re: ipfw fwd и rdr ipnat + squid
Добавлено: 2010-08-20 12:46:23
hizel
это полный набор правил? в таких случаях просят
ибо конструкция с one_pass должна работать
Код: Выделить всё
ipfw add queue 1 ip from any to any out xmit ng0
ipfw add nat 1 ip from any to any via ng0
ipfw add queue 2 ip from any to any in recv ng0
я чтобы не ломать моск обычно разделяю nat правила
Код: Выделить всё
disable one_pass
#каша
#неизвестно входящие соединения требуют НАТ или нет
100 nat 1 ip from any to <nat-ip> in via ng0
#далее в правилах все адреса нормальные без НАТ
200 add queue 1 ip from any to any out via ng0
300 add queue 2 ip from any to any in via ng0
3000 nat 1 ip from any to any out via ng0
# исходящие соединения оттранслированы если требуется