Jump to content
Калькуляторы

ng_nat проблема Периодически отваливается

Доброго времени суток!

Имеется сабж на сервере с FreeBSD 9.1

Проблема в том, что периодически он перестаёт работать: в течении нескльких минут полнстью пропадает трафик на фейках и через 30-60 минут появляется сам по себе.

Конфиг НАТа:

ngctl -f- <<-SEQ
   mkpeer ipfw: tee 50 left
   name ipfw:50 tee
   mkpeer tee: nat right out
   name tee:right nat
   connect ipfw: nat: 51 in
   msg nat: setaliasaddr $alias_address

   mkpeer tee: netflow left2right iface0
   name tee:left2right netflow
   connect tee: netflow: right2left iface1
   mkpeer netflow: ksocket export inet/dgram/udp
   msg netflow:export connect inet/$netflow_export

   msg netflow: setdlt { iface=0 dlt=12 }
   msg netflow: setifindex { iface=0 index=5 }
   msg netflow: setdlt { iface=1 dlt=12 }
   msg netflow: setifindex { iface=1 index=5 }
SEQ

Трафика через НАТ идёт 300-400 мегабит

Edited by yeah

Share this post


Link to post
Share on other sites

Это нужно сделать, когда НАТ отвалится или в нормальном рабочем режиме?

Можно ли создать несколько нод ng_nat, чтобы натить разные сети на разные белые IP?

Если да, то подскажите пожалуйста как это сделать?

Edited by yeah

Share this post


Link to post
Share on other sites

Попробуйте pf nat. Для меня это решило проблему.

Пробовал ipfw nat и ng_nat. Оба упирались в 600-800. pf - 1.4 гига получал, дальше было нечем догрузить машину, пользователи кончились.

Подробности в другой ветке уже выкладывал.

Share this post


Link to post
Share on other sites

Можно ли создать несколько нод ng_nat, чтобы натить разные сети на разные белые IP?

можно.

Если да, то подскажите пожалуйста как это сделать?

аналогично одной ноде. только имена другие надо давать.

Share this post


Link to post
Share on other sites

Это нужно сделать, когда НАТ отвалится или в нормальном рабочем режиме?

Можно ли создать несколько нод ng_nat, чтобы натить разные сети на разные белые IP?

Если да, то подскажите пожалуйста как это сделать?

 

как то так

 

cat /etc/rc.firewall

 

#!/bin/sh

FwCMD="/sbin/ipfw"

ExtIP="X.X.X.X"
ExtGw="X.X.X.X"
ExtMask=""
ExtIface="em0"

IntIP="X.X.X.X>"
IntFgwIP="X.X.X.X"
IntIface="em1"
QQQQ_VLAN="vlan55"
WWW_VLAN="vlan56"
ZZZ_VLAN="vlan57"
ZXZX_VLAN="vlan58"
XXX_VLAN="vlan59"
ZAZA_VLAN="vlan60"


QQQ_FTTH_TABLE="table(10)"
WWW_FTTH_TABLE="table(11)"
ZZZ_FTTH_TABLE="table(12)"
ZXZX_FTTH_TABLE="table(13)"
XXX_FTTH_TABLE="table(14)"

####################### QQQQ #######################################
${FwCMD} add 4055 netgraph 5 all from ${QQQQ_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4056 netgraph tablearg ip from ${QQQQ_FTTH_TABLE} to not me in via ${QQQQ_VLAN}
${FwCMD} add 4057 netgraph tablearg ip from any to ${QQQQ_FTTH_TABLE} out via ${QQQQ_VLAN}
####################### WWW ########################################
${FwCMD} add 4058 netgraph 7 all from ${WWW_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4059 netgraph tablearg ip from ${WWW_FTTH_TABLE} to not me in via ${WWW_VLAN}
${FwCMD} add 4060 netgraph tablearg ip from any to ${WWW_FTTH_TABLE} out via ${WWW_VLAN}
####################### ###########################################
${FwCMD} add 4061 netgraph 9 all from ${ZZZ_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4062 netgraph tablearg ip from ${ZZZ_FTTH_TABLE} to not me in via ${ZZZ_VLAN}
${FwCMD} add 4063 netgraph tablearg ip from any to ${ZZZ_FTTH_TABLE} out via ${ZZZ_VLAN}
#######################  ######################################
${FwCMD} add 4064 netgraph 11 all from ${ZXZX_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4065 netgraph tablearg ip from ${ZXZX_FTTH_TABLE} to not me in via ${ZXZX_VLAN}
${FwCMD} add 4066 netgraph tablearg ip from any to ${ZXZX_FTTH_TABLE} out via ${ZXZX_VLAN}
####################### XXX ######################################
${FwCMD} add 4067 netgraph 13 all from ${XXX_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4068 netgraph tablearg ip from ${XXX_FTTH_TABLE} to not me in via ${XXX_VLAN}
${FwCMD} add 4069 netgraph tablearg ip from any to ${XXX_FTTH_TABLE} out via ${XXX_VLAN}
####################### ZAZA ######################################
${FwCMD} add 4070 netgraph 15 all from ${ZAZA_FTTH_TABLE} to any via ${ExtIface} out
${FwCMD} add 4071 netgraph tablearg ip from ${ZAZA_FTTH_TABLE} to not me in via ${ZAZA_VLAN}
${FwCMD} add 4072 netgraph tablearg ip from any to ${ZAZA_FTTH_TABLE} out via ${ZAZA_VLAN}

 

ну и в ng_nat номера не перепутайте)))

 

#!/usr/bin/perl

$ip_nat_addr='X.X.X.X';

$ppp_nat_cmd=sprintf("/usr/sbin/ngctl -f - << -EOF
mkpeer ipfw: nat 15 out
name ipfw:15 FESENKO_NAT
connect ipfw: FESENKO_NAT: 16 in
msg FESENKO_NAT: setaliasaddr %s
",$ip_nat_addr);
system($ppp_nat_cmd);

 

$ip_nat_addr='X.X.X.X';

$ppp_nat_cmd=sprintf("/usr/sbin/ngctl -f - << -EOF
mkpeer ipfw: nat 13 out
name ipfw:13 HERSONSKAYA_NAT
connect ipfw: HERSONSKAYA_NAT: 14 in
msg HERSONSKAYA_NAT: setaliasaddr %s
",$ip_nat_addr);
system($ppp_nat_cmd);

 

и т.д...... когда пропадает НАТ, с сервера хоть в "МИР" пинг идёт?

Edited by xsintez

Share this post


Link to post
Share on other sites

Спасибо за ответ.

Когда падал НАТ - абоненты с "белыми" айпи работали.

В любом случае проблема решена посредством запуска большей части абонов через pf-nat.

Edited by yeah

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.