Относительно недавно переехал оффисную машинку, раздающую инет от прова в локалку, с пингвинов на демоненка 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 сложновато пока перестроиться. Лучше ткните где я не прав или наставьте на путь истинный
Аминь