Относительно недавно переехал оффисную машинку, раздающую инет от прова в локалку, с пингвинов на демоненка 7.2, пересобрал со старта ядро с опциями:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPFIREWALL_NAT
options LIBALIAS
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPTPGREпоставил mpd5, сконфижил как клиента на pptр.
Вобщем машинка поднимает туннель, ходит в инет и проблем никаких.
Следующим этапом нужно было запустить кернел нат, с этой целью в rc.conf появились строчки:
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.fire"В скрипте rc.fire чего только не писал... нат так и не поднялся. Последнюю редакцию скрипта привожу ниже:
fwcmd="/sbin/ipfw"
inet_iface="ng0" - интерфейс туннеля, который поднимает mpd
inet_ip="xxx.xxx.xxx.xxx"
lan_net="192.168.0.0" - LAN$fwcmd -f flush
${fwcmd} nat 123 config ip ${inet_ip} log
${fwcmd} add 10 nat 123 ip4 from ${lan_net}/24 to any via ${inet_iface}
${fwcmd} add 20 nat 123 ip4 from any to ${inet_ip}${fwcmd} add 65000 pass all from any to any
Чего нату не нравится? Клиенты в локалке мир не видят :(
Вобщем сильно не пинайте, знаю что тему разжевывали много раз, но я честно ходил по всяким статьям, читал :), да и после пингвинячих iptables сложновато пока перестроиться. Лучше ткните где я не прав или наставьте на путь истинный
Аминь
${fwcmd} nat 123 config ip ${inet_ip} log
${fwcmd} add 10 nat 123 ip4 from ${lan_net}/24 to any out via ${inet_iface}
${fwcmd} add 20 nat 123 ip4 from any to ${inet_ip} in via ${inet_iface}---
т.е. надо учесть наличие во фряхе двух режимов: "ipfw enable one_pass / ipfw disable one_pass"---
рекомендую посмотреть результирующий ipfw show, и счетчики на правилах
и из rc.conf выкинуть строки
firewall_enable="YES"
firewall_nat_enable="YES"т.к. у вас и так оно в ядро встроено
Спасибо всем ответившим!
Как всегда все оказалось не там, где порылась собака, а там, где покакали лазерные индючки...
вобщем нат запустился с полпинка от такого:${fwcmd} nat 123 config ip ххх.ххх.ххх.ххх log
${fwcmd} add 10 nat 123 all from 192.168.0.0/24 to any via ng0
${fwcmd} add 20 nat 123 all from any to 79.171.121.212 via ng0пытался по совету убрать firewall_enable="YES", но дудки, тогда отрабатывает вообще только одно правило deny all from any to any, а потому rc.conf я таки не трогал
а система просто не пускала локальные машинки к ДНС в сети провайдера, посему юзвери никуда не могли выйти
стыдно конечно - мой недосмотр... лень было набрать ping 74.125.87.105 вместо ping google.com, тогда бы и вопроса не возникло :)
надеюсь сообщество меня простит