Доброе время суток всем.Задача: сделать НАТ на freeBDS
решился сделать это через ipnat.lnc0: 192.168.50.142 - смотрит подсеть с выходом в инет. netmask 255.255.255.0
lnc1: 192.168.0.142 - смотрит в подсеть для пользователей (локалка). netmask 255.255.255.0
надо подменять адреса клиетнов с подсети 192.168.0.0/24
на шлюзе инет работает.насколько я разобрался, достаточно будет следующего:
# cat /etc/ipnat.rules
map lnc1 192.168.0.0/24 -> 0.0.0.0/32
# cat /etc/ipf.rules
pass in all
pass out all
# cat /etc/rc.local
#!/bin/sh
/sbin/ipfw flush
/sbin/ipfw add allow all from any to any
/sbin/ipf -Fa -f /etc/ipf.rules
/sbin/ipnat -CF -f /etc/ipnat.rulesно почемуто не работает :(
=====================================================
система: freeBSD 4-11
конфиг ядра отличается от GENERIC строчками:
options IPDIVERT
options IPFILTER
options IPFILTER_LOG
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPTв rc.conf включен ipfilter, ipnat, отключет firewall, отключен routed, отключен sendmail, итд...
# netstat -nr
Routing tablesInternet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.50.253 UGSc 1 6 lnc0
127.0.0.1 127.0.0.1 UH 0 0 lo0
192.168.0 link#2 UC 1 0 lnc1
192.168.0.2 00:80:48:28:67:dc UHLW 0 0 lnc1 939
192.168.50 link#1 UC 2 0 lnc0
192.168.50.251 00:0a:48:01:04:cc UHLW 1 215 lnc0 419
192.168.50.253 00:e0:4c:77:21:f8 UHLW 2 0 lnc0 1164# ifconfig
lnc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.50.142 netmask 0xffffff00 broadcast 192.168.50.255
ether 00:0c:29:09:5e:04
lnc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.142 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:0c:29:09:5e:0e
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500и на всякий случай:
# ps ax
PID TT STAT TIME COMMAND
0 ?? DLs 0:00.00 (swapper)
1 ?? ILs 0:00.04 /sbin/init --
2 ?? DL 0:00.00 (taskqueue)
3 ?? DL 0:00.00 (usb0)
4 ?? DL 0:00.00 (usbtask)
5 ?? DL 0:00.01 (pagedaemon)
6 ?? DL 0:00.00 (vmdaemon)
7 ?? DL 0:00.01 (bufdaemon)
8 ?? DL 0:00.06 (syncer)
9 ?? DL 0:00.02 (vnlru)
20 ?? Is 0:00.00 adjkerntz -i
80 ?? Ss 0:00.08 /usr/sbin/syslogd -s
87 ?? Is 0:00.02 /usr/sbin/cron
89 ?? Is 0:00.05 /usr/sbin/sshd
91 ?? Ss 0:00.01 /usr/sbin/usbd
120 ?? Is 0:00.09 moused -p /dev/psm0 -t auto
159 ?? S 0:00.24 sshd: root@ttyp0 (sshd)
161 p0 Ss 0:00.09 -csh (csh)
182 p0 R+ 0:00.00 ps ax
135 v0 Is 0:00.09 login [pam] (login)
143 v0 I+ 0:00.09 -csh (csh)
136 v1 Is+ 0:00.01 /usr/libexec/getty Pc ttyv1
137 v2 Is+ 0:00.01 /usr/libexec/getty Pc ttyv2
138 v3 Is+ 0:00.01 /usr/libexec/getty Pc ttyv3
139 v4 Is+ 0:00.01 /usr/libexec/getty Pc ttyv4
140 v5 Is+ 0:00.01 /usr/libexec/getty Pc ttyv5
141 v6 Is+ 0:00.01 /usr/libexec/getty Pc ttyv6
142 v7 Is+ 0:00.01 /usr/libexec/getty Pc ttyv7=====================================================
пробывал делать это и на freeBDS 5.4 - тоже без результата.
Думаю, что сам гдето ошибся, но где - не пойму :(
Подскажите плз, кто с фрей дружит.заводил тему по адресу: http://www.linux.org.ru/jump-message.jsp?msgid=1827205
пользовался статьей: http://www.opennet.me/base/net/ipfilter_rus.txt.htmlзаранее спасибо.
ps: Сам работаю с линусксом, с freeBSD - редко, поэтому сильно не пинайте.
1. http://www.opennet.me/base/net/freebsd_gw.txt.html
2. rc.local? Делай все переменными в rc.conf(rc.conf.local).
3. Проверяй rc.conf? Есть ли там gateway_enable="YES"?
4. Посмотри ipnat -l и ipfstat (помоему так) - загружены ли вообще правила.
Всем спасибо.Сделал через natd. Посоветовали тут: http://portal.san.ru/forums/index.php?showtopic=12287