BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с NAT
СообщениеДобавлено: Ср 21 окт, 2015 11:23 am 
Не в сети

Зарегистрирован: Чт 22 май, 2014 2:49 pm
Сообщения: 12
Возникла проблема:
В последнюю неделю пинг к серверу резко вырос, причем как то рывками:

Код:
Ответ от 192.168.1.10: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=447мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=917мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=267мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=50мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=463мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=249мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=136мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=2113мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=1840мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=1289мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=252мс TTL=64
Ответ от 192.168.1.10: число байт=32 время=6мс TTL=64


Опытным путем выяснилось что проблема возникает с NAT-ом, который отстраивал не я. Чутьем понимаю что сконфигурирован он как то не так, но не пойму в чем дело:

Часть конфига ната:

Код:
ipfw nat 1 config if ${if_inet} same_ports reset log
ipfw add nat 1 ip from "table(1)" to any out
ipfw add nat 1 ip from any to any in


if_inet интерфейс смотрящий в интернет.

ipfw nat show выводит:

Код:
nat 50: icmp=1, udp=2739, tcp=18568, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21308
nat 24: icmp=1, udp=2736, tcp=19413, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=22150
nat 23: icmp=1, udp=2701, tcp=18600, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21302
nat 21: icmp=1, udp=2730, tcp=18633, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21364
nat 20: icmp=1, udp=2752, tcp=18708, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21461
nat 19: icmp=1, udp=2702, tcp=18583, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21286
nat 18: icmp=1, udp=2729, tcp=18581, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21311
nat 17: icmp=1, udp=2754, tcp=18564, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21319
nat 16: icmp=1, udp=2771, tcp=18565, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21337
nat 15: icmp=1, udp=2737, tcp=18548, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21286
nat 14: icmp=1, udp=2727, tcp=18571, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21299
nat 13: icmp=1, udp=2704, tcp=18572, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21277
nat 12: icmp=1, udp=2749, tcp=18589, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21339
nat 11: icmp=1, udp=3045, tcp=19528, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=22574
nat 10: icmp=1, udp=2752, tcp=18605, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21358
nat 9: icmp=1, udp=2747, tcp=18609, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21357
nat 8: icmp=1, udp=2750, tcp=18598, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21349
nat 7: icmp=1, udp=2750, tcp=18603, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21354
nat 6: icmp=1, udp=2750, tcp=18601, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21352
nat 5: icmp=1, udp=2750, tcp=18681, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21432
nat 4: icmp=1, udp=2751, tcp=18607, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21359
nat 3: icmp=1, udp=2713, tcp=18950, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21664
nat 2: icmp=1, udp=2754, tcp=18577, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21332
nat 1: icmp=1, udp=2858, tcp=20123, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=22982


Причем проблема может так же резко исчезнуть как и появится. Кто подскажет в чем проблема?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Ср 21 окт, 2015 12:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср 23 июн, 2010 1:01 pm
Сообщения: 495
Покажите весь фаерволл с именами и адресами сетевых интерфейсов

_________________
Самурай без меча подобен самураю с мечом, но только без меча, однако как-будто с мечом, которого у него нет, но и без него он как с ним...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Ср 21 окт, 2015 3:46 pm 
Не в сети

Зарегистрирован: Чт 22 май, 2014 2:49 pm
Сообщения: 12
RemiZOffAlex писал(а):
Покажите весь фаерволл с именами и адресами сетевых интерфейсов


Код:
#!/bin/sh -

ipfw="/sbin/ipfw -q"
${ipfw} -f flush
${ipfw} -f queue flush
${ipfw} -f pipe flush
${ipfw} table all flush

intranet="em0"
internet="em1"
internetip="xxx.yyy.zzz.xxx"

${ipfw} table 1 add 192.168.20.11/32
${ipfw} table 1 add 192.168.20.12/32
${ipfw} table 1 add 192.168.20.13/32

sh /etc/nepnet/pipe

${ipfw} add allow all from any to any via lo0

${ipfw} add allow tcp from any to any 22 via ${intranet}
${ipfw} add allow tcp from any 22 to any via ${intranet}
${ipfw} add allow tcp from me to any out via em1 keep-state uid squid.
${ipfw} add allow ip from ${internetip} to any out via ${internet}

${ipfw} pipe 1 config bw 2Mbit/s
${ipfw} pipe 101 config bw 2Mbit/s
${ipfw} queue 1 config pipe 1 mask dst-ip 0xffffffff
${ipfw} queue 101 config pipe 101 mask src-ip 0xffffffff
${ipfw} add queue 1 tcp from table\(1\) to any 80
${ipfw} add queue 101 tcp from any 80 to table\(1\)

${ipfw} add allow all from any to any via lo0

${ipfw} add allow tcp from any to any 22 via ${intranet}
${ipfw} add allow tcp from any 22 to any via ${intranet}

${ipfw} add allow tcp from me to any out via em1 keep-state uid squid

${ipfw} add allow ip from ${internetip} to any out via ${internet}

${ipfw} add fwd 127.0.0.1,3129 tcp from "table(1)" to any 80-83,8080-8088 out via em1
${ipfw} nat 1 config if ${internet} same_ports reset log
${ipfw} add nat 1 ip from "table(1)" to any out
${ipfw} add nat 1 ip from any to any in

${ipfw} add allow ip from any to any


Как то так


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Ср 21 окт, 2015 4:45 pm 
Не в сети

Зарегистрирован: Чт 22 май, 2014 2:49 pm
Сообщения: 12
Опытным путем нашел маршрутизатор в сети, после отключения которого tot в нате начал падать, в данный момент уже: 10546 и продолжает падать, потери на пингах идут при tot выше 20 тыс. что это?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Ср 21 окт, 2015 7:04 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср 23 июн, 2010 1:01 pm
Сообщения: 495
Вас скорее всего используют как промежуточный узел.

Вот ещё посмотрите viewtopic.php?f=58&t=27461

_________________
Самурай без меча подобен самураю с мечом, но только без меча, однако как-будто с мечом, которого у него нет, но и без него он как с ним...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Чт 22 окт, 2015 11:34 am 
Не в сети

Зарегистрирован: Чт 22 май, 2014 2:49 pm
Сообщения: 12
RemiZOffAlex писал(а):
Вас скорее всего используют как промежуточный узел.

Вот ещё посмотрите viewtopic.php?f=58&t=27461


Спасибо за советы, разобрался. Человек который это настраивал не правильно сконфигурировал нат, я просто для примера Вам не стал повторять строчки, но если коротко то для каждой таблицы он создавал нат:

Код:
${fwcmd} nat 1 config if ${if_inet} same_ports reset log
${fwcmd} add nat 1 ip from "table(1)" to any out
${fwcmd} add nat 1 ip from any to any in

${fwcmd} nat 2 config if ${if_inet} same_ports reset log
${fwcmd} add nat 2 ip from "table(2)" to any out
${fwcmd} add nat 2 ip from any to any in


Из за этого получалась такая таблица nat-а:

Код:
nat 1: icmp=1, udp=2858, tcp=20123, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=22982
nat 2: icmp=1, udp=2754, tcp=18577, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=21332


То есть пакеты суммировались, и соответственно нагрузка на канал росла.

Посидев подумав, переделал так:
Код:
${fwcmd} nat 1 config if ${if_inet} same_ports reset log
${fwcmd} add nat 1 ip from "table(1)" to any out
${fwcmd} add nat 1 ip from "table(2)" to any out
${fwcmd} add nat 1 ip from any to any in


И все нормализовалось. tot рос до 30 тыс. но на IP это уже никак не влияло. Спасибо за участие =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Чт 22 окт, 2015 6:07 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3301
Откуда: Харьков
разные НАТы имеет смысл на разные IP

${fwcmd} add nat 1 ip from "table(1)" to any out
${fwcmd} add nat 1 ip from "table(2)" to any out

можно в 1 строчку:
${fwcmd} add nat 1 ip from { "table(1)" or "table(2)" } to any out


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с NAT
СообщениеДобавлено: Пт 23 окт, 2015 10:33 am 
Не в сети

Зарегистрирован: Чт 22 май, 2014 2:49 pm
Сообщения: 12
grayich писал(а):
можно в 1 строчку:
${fwcmd} add nat 1 ip from { "table(1)" or "table(2)" } to any out


О, спасибо!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика