Поднял NAT на FreeBSD 8.3, решил настроить его с IPFW. И весь мозг уже себе сломал, но никак не могу заставить заработать Интернет на FreeBSD 8.3 с NAT.
Конфигурация сети:
Интернет провайдер Ростелеком, подключен через роутер D-Link Dir300/NRU IP адреса Ростелеком выдает автоматически при подключении. На самом роутере IP адрес
Код: Выделить всё
192.168.1.1
Код: Выделить всё
IP 192.168.1.2
mask 255.255.255.0
Основной шлюз 192.168.1.1
DNS провайдера 212.120.160.130
Настройки сетевых карт FreeBSD следующие: (вторую создавал для NAT чтобы подключать клиентов)
Код: Выделить всё
em0 (смотрит в Интернет)
IP 192.168.1.4
mask 255.255.255.0
em1 192.168.10.1(смотрит внутрь)
mask 255.255.255.0
Код: Выделить всё
212.120.160.130
Код: Выделить всё
ipfw 800 deny UDP 192.468.1.4:(случайный порт типа 44888) 212.120.160.130:53 out via em0
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"
options IPSEC
options IPSEC_DEBUG
device crypto
Код: Выделить всё
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
ifconfig_em1="inet 192.168.10.1 netmask 255.255.255.0"
ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
hostname="home.test"
Тут у меня было 2 варианта - 1 вариант рабочий с сервера без NAT просто я добавлял к нему настройки NAT (выделены пробелами), второй чисто только с NAT
1 вариант:
Код: Выделить всё
#!/bin/sh
ipfw -q -f flush
inetif="em0"
lanif="em1"
cmd="ipfw -q -add"
ks="keep-state"
$cmd check-state
$cmd deny all from any to any frag
$cmd deny all from any to any established
$cmd allow ip from any to any via $lanif
$cmd allow all from any to any via lo0
$cmd allow icmp from any to any icmptypes 0, 3, 8, 11
$cmd allow tcp from any to any out via $inetif setup $ks
$cmd allow udp from any to any out via $inetif $ks
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif
$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
Код: Выделить всё
#!/bin/sh
ipfw -q -f flush
inetif="em0"
lanif="em1"
cmd="ipfw -q -add"
ks="keep-state"
ipfw nat 1 config log if $inetif reset same_ports
$cmd nat 1 ip from any to 192.168.1.4 via $inetif
$cmd deny ip from any to any not verrevpath in
$cmd deny log ip from any to any
Помогите пожалуйста решить проблему.