Страница 1 из 1

FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 8:42:00
vano
Всем привет. Есть шлюз на FreeBSD 8.0 с установленным NATом, прозрычным SQUIDом и IPFW. Интернет раздается методом PPPoE. Все прекрасно работало, пока не сменил провайдера и тип подключения с DSL PPP на обычное Ethernet. Естественно, привзяла второй сетевухе новый внешний АЙПИшник, прописал шлюз, чуть подправил фаерволл и настройки в rc.conf. После этого перестал раздаваться интеренет на локалку. Интернет есть только в том случае, если жестко в настройках браузера, аськи или других программ прописать данные Прокси сервера (адрес и порт),если сквид останавливаю, то интернет ессно нету уже. Пинга с локалки в внешнюю сеть тоже нет, хотя шлюз и АЙПИшник сервера пингуются. Сам natd успешно стартует, фаервол был и открытый и закрытый, толку ноль. В ядре есть опции и IPDIVERT и IPFIREWALL. Помогиет разобраться.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 8:55:36
Alvares
конфиги в студию, а то "чуть подправил фаерволл и настройки в rc.conf" можно по-разному сделать.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 9:09:36
vano
Конфиг фаера

Код: Выделить всё

re0 - внешняя сетевуха
rl0 - внутренняя сетевуха
#!/bin/sh
IPFW="/sbin/ipfw"

${IPFW} -f flush
${IPFW} -f pipe flush
${IPFW} add pipe quqeue

${IPFW} add allow ip from any to any via lo0
${IPFW} add allow ip from 192.168.1.0/24 to 192.168.1.0/24 via rl0
${IPFW} add divert natd ip from 192.168.1.0/24 to any out via re0
${IPFW} add divert natd ip from any to 89.162.211.46 in via re0
${IPFW} add allow all from any to 89.162.211.46 in via re0
${IPFW} add allow all from 89.162.211.46 to any out via re0
${IPFW} add allow all from 192.168.1.0/24 to any in via rl0
${IPFW} add allow all from any to 192.168.1.0/24 in via re0
${IPFW} add allow all from any to 192.168.1.0/24 out via rl0
${IPFW} add allow icmp from any to any
${IPFW} add deny log ip from any to any
rc.conf

Код: Выделить всё

gateway_enable="YES"
defaultrouter="89.162.211.45"
named_enable="YES"
inetd_enable="YES"
ifconfig_re0="inet 89.162.211.46 netmask 255.255.255.252"
ifconfig_rl0="inet 192.168.1.120 netmask 255.255.255.0 "
firewall_enable="YES"
firewall_script="/etc/fw.sh"
natd_enable="YES"
natd_interface="re0"
natd_flags="-dynamic -m -s -u"

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 9:42:16
Alvares
На клиентах шлюз по умолчанию соответствует IP вашего шлюза?

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 9:47:38
vano
Alvares писал(а):На клиентах шлюз по умолчанию соответствует IP вашего шлюза?
Ессно, на клиентах настройки не менялись! Еще раз повторю, через сквид все нормально, а через нат нет доступа в интернет, причем нат запущен в процессах. Локальные машины пингуют и внешний АЙПИ сервера и АЙПИ шлюза провайдера. А пинг дальше отсутствует.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 10:03:52
Alvares
Зачем вам тогда сквид при такой постановке задачи?
Посмотрите здесь пример ядерного ната.
http://www.lissyara.su/articles/freebsd ... #example_1

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 10:10:15
vano
Alvares писал(а):Зачем вам тогда сквид при такой постановке задачи?
Посмотрите здесь пример ядерного ната.
http://www.lissyara.su/articles/freebsd ... #example_1
Сквид нужен для сбора логов и дальнейшего формирования статистики Sarg. Тем более прозрачный сквид стоит, чтобы не заморачиваться с настройками на каждом клиенте. По поводу ядерного ната это уже нужно ядро пересобирать, а хотелось бы минимальными усилиями поменять подключение с РРРоЕ на Езернет.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 10:14:55
dash1121
а как сделано перенаправление в squid?

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 10:24:03
vano
dash1121 писал(а):а как сделано перенаправление в squid?
В данном случае я его временно убрал, т.к. что с ним, что без него результата не было. А вообще вот так:
/sbin/ipfw add 1000 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to not 192.168.1.0/24 80

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 11:59:10
snorlov
Возьмите стандартный скрипт rc.firewall из поставки 8.0, чуть-чуть подрихтуйте, пропишите открытый ipfw, ну и посмотрите правила, которые формируются при этом... У вас просто банально решутся ответы из инета в локалку, а вот когда локалка идет на squid, то тут все хоккей...

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 13:15:37
vano
snorlov писал(а):Возьмите стандартный скрипт rc.firewall из поставки 8.0, чуть-чуть подрихтуйте, пропишите открытый ipfw, ну и посмотрите правила, которые формируются при этом... У вас просто банально решутся ответы из инета в локалку, а вот когда локалка идет на squid, то тут все хоккей...
Все возможно, но в качестве эксперимента, я вообще осталял в фаерволе правило НАТа, а по дефолту фаер и так открытый. Все равно ниче не работало.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 13:34:05
SomeBody

Код: Выделить всё

sysctl net.inet.ip.forwarding=1

ipfw nat 1 config if re0 reset log unreg_only same_port
ipfw add 500 nat 1 ip from any to any via re0
Попробуйте так...

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 14:39:23
BirdGovorun
SomeBody писал(а):

Код: Выделить всё

sysctl net.inet.ip.forwarding=1

ipfw nat 1 config if re0 reset log unreg_only same_port
ipfw add 500 nat 1 ip from any to any via re0
Попробуйте так...
Будьте внимательны и не читайте наискось.

to vano
rc.conf

Код: Выделить всё

firewall_enable="YES"
firewall_type="OPEN"
firewall_script="/etc/ipfw_rules"
natd_enable="YES"
natd_interface="re0"
natd_flags="-f /etc/natd.conf"
/etc/natd.conf

Код: Выделить всё

use_sockets yes
same_ports yes
unregistered_only yes
/etc/ipfw_rules

Код: Выделить всё

#!/bin/sh

ipfw -qf flush

ipfw add 101 pass all from any to any via lo0
ipfw add 150 divert natd all from any to any via re0

это минимум нужного для работы ната.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 14:59:36
vano
Спасибо за советы, как попробую, отпишусь.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 15:00:50
Alvares
vano писал(а):По поводу ядерного ната это уже нужно ядро пересобирать, а хотелось бы минимальными усилиями поменять подключение с РРРоЕ на Езернет.
А просто модуль подгрузить уже нельзя?

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-17 15:30:09
snorlov
Да там не модуль надо подгружать, просто при соединение pppoE свой нат грузил...
Вообще не могу понять из-за чего идет сыр-бор, для ядерного ната и ядра GENERIC, там forward отключен, достаточно
/etc/rc.conf

Код: Выделить всё

firewall_enable="YES"
firewall_type="OPEN"
firewall_nat_enable="YES"
firewall_nat_interface="re0"

Ну может к этому надо модули подгрузить через /boot/loader.conf....

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-18 8:02:37
vano
BirdGovorun писал(а):
SomeBody писал(а):

Код: Выделить всё

sysctl net.inet.ip.forwarding=1

ipfw nat 1 config if re0 reset log unreg_only same_port
ipfw add 500 nat 1 ip from any to any via re0
Попробуйте так...
Будьте внимательны и не читайте наискось.

to vano
rc.conf

Код: Выделить всё

firewall_enable="YES"
firewall_type="OPEN"
firewall_script="/etc/ipfw_rules"
natd_enable="YES"
natd_interface="re0"
natd_flags="-f /etc/natd.conf"
/etc/natd.conf

Код: Выделить всё

use_sockets yes
same_ports yes
unregistered_only yes
/etc/ipfw_rules

Код: Выделить всё

#!/bin/sh

ipfw -qf flush

ipfw add 101 pass all from any to any via lo0
ipfw add 150 divert natd all from any to any via re0

это минимум нужного для работы ната.

Попробывал ваши рекомендации. Пинг в мир появился, но НАТ работает как то странно, открываются не все сайты. Если сайт не загрузился, после нажатия Ф5 (обновить страницу) - он загружается и то через раз. Не пойму почему так происходит.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-18 10:31:57
BirdGovorun
Смотреть ipfw show
Добавь правило

Код: Выделить всё

ipfw add 160 pass all from any to any 

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-18 12:03:22
vano
BirdGovorun писал(а):Смотреть ipfw show
Добавь правило

Код: Выделить всё

ipfw add 160 pass all from any to any 

ipfw show выдает правило твоего фаера, который выше. С этим правилом

Код: Выделить всё

ipfw add 160 pass all from any to any 
ниче не получилось.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-18 12:08:16
snorlov
а мой совет пробовал...

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-18 12:18:21
vano
snorlov писал(а):а мой совет пробовал...
нет, но попробую тоже.

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-19 10:33:53
immortal
vano, у Вас говорите пинги появились... Это после того как ядерный нат использовали или все таки на демоне natd получилось??

Код: Выделить всё

Если сайт не загрузился, после нажатия Ф5 (обновить страницу) - он загружается и то через раз
У меня была такая беда... У Вас в фаере должно быть правило:

Код: Выделить всё

${FwCMD} add pass ip from ${IpOut} to any out xmit ${LanOut}
Попробуйте добавить в конце keep-state

Код: Выделить всё

${FwCMD} add pass ip from ${IpOut} to any out xmit ${LanOut}  keep-state
У меня после этого просто залетал интернет!

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-19 20:59:01
vano
immortal писал(а):vano, у Вас говорите пинги появились... Это после того как ядерный нат использовали или все таки на демоне natd получилось??

Код: Выделить всё

${FwCMD} add pass ip from ${IpOut} to any out xmit ${LanOut}  keep-state
У меня после этого просто залетал интернет!
Использовал обычный демон natd. По поводу правила, действительно все залетало, спасибо!

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-22 4:00:18
immortal

Код: Выделить всё

Использовал обычный демон natd. По поводу правила, действительно все залетало, спасибо!
А можете поподробней написать, все таки после каких действий (правил) у Вас появились пинги??

Re: FreeBSD 8.0 NAT не раздает интернет

Добавлено: 2013-04-22 8:14:29
vadim64
immortal писал(а):vano, у Вас говорите пинги появились... Это после того как ядерный нат использовали или все таки на демоне natd получилось??

Код: Выделить всё

Если сайт не загрузился, после нажатия Ф5 (обновить страницу) - он загружается и то через раз
У меня была такая беда... У Вас в фаере должно быть правило:

Код: Выделить всё

${FwCMD} add pass ip from ${IpOut} to any out xmit ${LanOut}
Попробуйте добавить в конце keep-state

Код: Выделить всё

${FwCMD} add pass ip from ${IpOut} to any out xmit ${LanOut}  keep-state
У меня после этого просто залетал интернет!
директива keep-state предписывает фаерволу использовать недокументированные возможности аппаратного ускорения сетевой подсистемы, поэтому всё и залетало
это точно