Страница 1 из 1
redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 5:30:47
qwl
Доброго времени суток.
имеем FreeBSD8 + ipfw + redirect_port + Netams
задача: Netams рулит трафиким, redirect_port пробрасывает из вне во внутрь.
вот чего получается:
все работает,НО ПО ОТДЕЛЬНОСТИ!
т.е.
имеем:
и
Код: Выделить всё
${FwCMD} nat 1 config if ${LanOut} same_ports reset unreg_only redirect_port tcp 192.168.1.12:5000 5000
${FwCMD} add divert 199 ip from ${NetIn} to any out xmit ${LanOut}
${FwCMD} add nat 1 ip from any to any via ${LanOut}
${FwCMD} add divert 199 ip from any to ${NetIn} in recv ${LanOut}
но при этом Netams не собирает трафик, по второму divert-у не идет трафик.
если делаем
то полностью работает Netams, но не работает redirect_port.
это меня завело в тупик, подскажите как это победить?
P.S. перехот на обычный NAT всегда успеется, давайте попробуем решить эту ситуацию.
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 11:35:03
ivan__
Полный конфиг выкладывай
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 11:41:45
qwl
пока так, убрал все чтоб не мешалось
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="vr2"
NetOut="192.168.0.0/24"
IPOut="192.168.0.111" - во вне
LanIn="vr1"
NetIn="192.168.1.0/24"
IPIn="192.168.1" - во внутрь
${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush
${FwCMD} -f table 0 flush
${FwCMD} add check-state
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny not icmp from "table(0)" to me
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
${FwCMD} nat 1 config if ${LanOut} same_ports reset unreg_only redirect_port tcp 192.168.1.12:5000 5000
${FwCMD} add divert 199 ip from ${NetIn} to any out xmit ${LanOut}
${FwCMD} add nat 1 ip from any to any via ${LanOut}
${FwCMD} add divert 199 ip from any to ${NetIn} in recv ${LanOut}
сейчас
ipfw list
Код: Выделить всё
00100 check-state
00200 allow ip from any to any via lo0
00300 deny not icmp from table(0) to me
00400 deny ip from any to 127.0.0.0/8
00500 deny ip from 127.0.0.0/8 to any
00600 divert 199 ip from 192.168.1.0/24 to any out xmit vr2
00700 nat 1 ip from any to any via vr2
00800 divert 199 ip from any to 192.168.1.0/24 in recv vr2
65535 allow ip from any to any
и ipfw show
Код: Выделить всё
00100 0 0 check-state
00200 0 0 allow ip from any to any via lo0
00300 0 0 deny not icmp from table(0) to me
00400 0 0 deny ip from any to 127.0.0.0/8
00500 0 0 deny ip from 127.0.0.0/8 to any
00600 346 20760 divert 199 ip from 192.168.1.0/24 to any out xmit vr2
00700 1039 196654 nat 1 ip from any to any via vr2
00800 0 0 divert 199 ip from any to 192.168.1.0/24 in recv vr2
65535 659 39540 allow ip from any to any
при этих правилах работает redirect_port и я спокойно из вне попадаю куда надо.
но какда я меняю на 0
получается:
ipfw list
Код: Выделить всё
00100 check-state
00200 allow ip from any to any via lo0
00300 deny not icmp from table(0) to me
00400 deny ip from any to 127.0.0.0/8
00500 deny ip from 127.0.0.0/8 to any
00600 divert 199 ip from 192.168.1.0/24 to any out xmit vr2
00700 nat 1 ip from any to any via vr2
00800 divert 199 ip from any to 192.168.1.0/24 in recv vr2
65535 allow ip from any to any
и ipfw show
Код: Выделить всё
00100 0 0 check-state
00200 0 0 allow ip from any to any via lo0
00300 0 0 deny not icmp from table(0) to me
00400 0 0 deny ip from any to 127.0.0.0/8
00500 0 0 deny ip from 127.0.0.0/8 to any
00600 1098 65880 divert 199 ip from 192.168.1.0/24 to any out xmit vr2
00700 2196 131760 nat 1 ip from any to any via vr2
00800 1098 65880 divert 199 ip from any to 192.168.1.0/24 in recv vr2
65535 659 39540 allow ip from any to any
при тех же правилах redirect_port не работает, но зато подсчет идет полностью.
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 13:42:14
ivan__
qwl писал(а):при тех же правилах redirect_port не работает, но зато подсчет идет полностью.
Попробуй skipto добавить
Код: Выделить всё
${FwCMD} 00750 skipto 00900 tcp from me to 192.168.1.12 dst-port 5000 in recv ${LanOut}
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 13:49:14
qwl
ivan__ писал(а):qwl писал(а):при тех же правилах redirect_port не работает, но зато подсчет идет полностью.
Попробуй skipto добавить
Код: Выделить всё
${FwCMD} 00750 skipto 00900 tcp from me to 192.168.1.12 dst-port 5000 in recv ${LanOut}
не помогло, результат остался тот же.
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-22 15:06:09
ivan__
qwl писал(а):ivan__ писал(а):qwl писал(а):при тех же правилах redirect_port не работает, но зато подсчет идет полностью.
Попробуй skipto добавить
Код: Выделить всё
${FwCMD} 00750 skipto 00900 tcp from me to 192.168.1.12 dst-port 5000 in recv ${LanOut}
не помогло, результат остался тот же.
Забыл add добавить
Код: Выделить всё
${FwCMD} add 00750 skipto 00900 tcp from me to 192.168.1.12 dst-port 5000 in recv ${LanOut}
Re: redirect_port + kernel_nat + Netams = я в тупике!
Добавлено: 2011-06-23 6:19:00
qwl

add я добавил, суть понял.
Спасибо, ты подсказал верно, это я ступил, сегодня на свежую голову еще раз все проверил и заработало

надо:
Код: Выделить всё
${FwCMD} nat 1 config if ${LanOut} same_ports reset unreg_only redirect_port tcp 192.168.1.12:5000 5000
${FwCMD} add divert 199 ip from ${NetIn} to any out xmit ${LanOut}
${FwCMD} add nat 1 ip from any to any via ${LanOut}
${FwCMD} add skipto 00950 tcp from me to 192.168.1.12 dst-port 5000 in recv ${LanOut}
${FwCMD} add divert 199 ip from any to ${NetIn} in recv ${LanOut}