nixp.ru v3.0

22 октября 2017,
воскресенье,
22:21:38 MSK

DevOps с компанией «Флант»
kosm написал 5 августа 2005 года в 10:37 (368 просмотров) Ведет себя неопределенно; открыл 3 темы в форуме, оставил 6 комментариев на сайте.

Ребят, кто юзает ipf — помогите разобраться, а то голову уже сломал, второй день бьюсь.

Ситуация в следующем.

1.Имеем роутер на FreeBSD 5.3 — два интерфейса, задача настроить NAT с мапингом 192.168.0.0/24 -> x.x.x.x/32

2.Ядро собрано с поддержкой только IPFILTER (IPFIREWALL не трогал)

--

options IPFILTER

options IPFILTER_LOG

options IPFILTER_DEFAULT_BLOCK

options IPSTEALTH

options TCP_DROP_SYNFIN

--

3.Настройки NATа

--

map dc0 192.168.0.0/24 -> x.x.x.x/32 proxy port ftp ftp/tcp

map dc0 192.168.0.0/24 -> x.x.x.x/32 portmap tcp/udp 10000:30000

map dc0 192.168.0.0/24 -> x.x.x.x/32

--

Задача иметь с 192.168.0.0/24 в течении продолжительного времени открытые сокеты — коннект к базе MSSQL которая снаружи. У меня же они рушатся. При чем такое впечатление что при увеличении нагрузки. Количество сокетов к MSSQL порядка 30, но вместе с тем на этом же NATе и все остальное (www,smtp,ftp и тд). Машинка P-200MMX/64Mb RAM.

Есть еще один не приятный и не понятный для меня момент, который обнаружился в процессе решения данной проблемы.

При пинге наружу (адреса z.z.z.z) в таблице мапинга фижу следующую запись:

NAT: MAP 192.168.0.29,0 <- -> x.x.x.x,0 [z.z.z.z,0]

--

Почему мапинг происходит с нулевым портом? Но это еще не все. Соответсвенно дополнительно пытаюсь с другой машинки из-за ната проделать тоже самое — пинг того же адреса z.z.z.z. И что мы получаем — наружу за NAT выходят пакеты с внутренним адресом той машинки откуда я делаю пинг! Вот это для меня совсем не понятно.

Может кто чего сказать по сути моей проблемы?

Заранее благодарен за все замечания, предложения и советы.

С уважением,

Константин

Genie
задача настроить NAT с мапингом

может divert-а не хватает?

хотя, честно говоря, сии дибри — freebsd-шные — пока для меня сложноватые. ;)

не возился я столько с оной.

При пинге наружу (адреса z.z.z.z) в таблице мапинга фижу следующую запись:

NAT: MAP 192.168.0.29,0 <- -> x.x.x.x,0 [z.z.z.z,0]

--

Почему мапинг происходит с нулевым портом?

нормально. фактически, понятие «порт» существует только для tcp и udp.

а пинги — это icmp. у которого разделение не по портам, а по icmp-type.

И что мы получаем — наружу за NAT выходят пакеты с внутренним адресом той машинки откуда я делаю пинг! Вот это для меня совсем не понятно.

м-да… однако, что-то тут не того.

мой опыт использования ipfilter (правда, не на freebsd, а дело было во времена использования и работы с qnx) подобного не выявлял….

kosm
Genie
может divert-а не хватает?

хотя, честно говоря, сии дибри — freebsd-шные — пока для меня сложноватые. ;)

не возился я столько с оной.

Да, родной natd работает через диверт, но ipnat работает не через него. Просто странно ведет он себя. Понимаю если бы вообще не транслировал, а то ведь как-то хитро…

Про порт спасибо, я так и думал что это нормальная форма записи.

Будем думать, разбираться, а может и PF посмотрю — больно уж по функциям приятная штучка.

kosm

Не, я наверно совсем глючу, но на PF таже петрушка, только слегка видоизменина! Я уже ничего не понимаю!

Пингую с двух машинок изза свежепостроеного НАТа один и тот же узел снаружи и на одной из них (которая начала пинговать позже) получаю ошибку:

--

Reply from 192.168.0.1: Destination host unreachable.

--

192.168.0.1 — это адрес внутреннего интерфейса НАТа. Если на IPF пакеты второго пинга просто не транслировались и выпускались неизмененными наружу, то здесь эффект такой.

Не, ну должно же быть это какое-то объяснение? Гуру, что скажите?