Настройка NAT (Network Address Translation)
NAT + IPFW
Опции в ядре:
options IPFIREWALL #Разрешить IPFIREWALL
options IPDIVERT #Разрешить сокет divert
options IPFIREWALL_FORWARD #Включение форвардинга
options IPFIREWALL_VERBOSE #Разрешить запись событи в журнал
options IPFIREWALL_VERBOSE_LIMIT=100 #Ограничение журнала
options DUMMYNET #Регулеровка ширины пропускной способности
Для включение ната достаточно двух первых опций. Опции в rc.conf:
gateway_enable="YES" #
natd_enable="YES" #Включить NAT
natd_interface="fxp0"
#Интерфейс на котором будет работать NAT(внешний интерфейс)
firewall_enable="YES" #Включить firewall
firewall_script="/etc/ipfw.conf" #Фаил с правилами firewall
firewall_logging="YES" #Включение записи событий в журнал
defaultrouter="xxx.xxx.xx.xx" #Шлюз по умолчанию
Опция в ipfw включающая NAT:
add divert natd all from any to any via ${natd_interface}
NAT + PF (Packet Filter)
Опции в ядре:
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_PRIQ
Описание опций см. handbook.
Опции в rc.conf:
pf_enable="YES" #Включить PF
pf_rules="/etc/pf.altq" # Фаил с правилами
pflog_enable="YES" #Включить запись событий в журнал
pflog_logfile="/var/log/pflog" #Журнал событий
Опция в pf включающая NAT:
inet_if="rl1" #Внешний интерфейс
local_if="rl0" #Внутрений интерфейс
nat on $inet_if from $local_if:network to any -> ($inet_if)