skybetik Опубликовано: 26 грудня, 2013 Опубликовано: 26 грудня, 2013 Появилась надобность в нате ,вопрос риторический кто сколько выделяет ip на кол Абонов ну например 1 айпи на 50 абонов итд.
malofan Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 1 ИП на сколько смогу подключить абонов Почему, потому что он всего один но в качестве познавательной рубрики за темой послежу
sanyadnepr Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 1 ИП на сколько смогу подключить абонов Почему, потому что он всего один но в качестве познавательной рубрики за темой послежу За языком своим последи.
Shuher Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Человек хочет за каждый реальный IP (видимо у него их не один) посадить группу пользователей. Вот и итересуется на сколько ипов за натом выделять реальный ип.
malofan Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 1 ИП на сколько смогу подключить абонов Почему, потому что он всего один но в качестве познавательной рубрики за темой послежу За языком своим последи. Эм, к чему грубость? Что-то не так в том, что у меня всего 1 ИП на мою маленькую сеть? Или в том, что мне интересно, как работают "большие дяди"?
H_U_L_K Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Имхо, хоть я и не isp, но выделять 1 ип на 50 юзеров это как-то многовато... вот до 20 в самый раз. Пс: дабы избежать траблов с гуглом и т.п.
loki Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 (відредаговано) В чем проблема ? Используйте для этих целей PF. nat on lagg1 from <local1> to any -> **.214.178.0/23 source-hash nat on lagg1 from <local1> to any -> **.107.130.0/23 source-hash nat on lagg1 from <local1> to any -> **.41.105.0/22 source-hash table <local1> { 10.11.11.0/24, 192.168.0.0/16 } Відредаговано 26 грудня, 2013 loki
KaYot Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Проблема вероятно в наличии этих самых адресов.
skybetik Опубліковано: 26 грудня, 2013 Автор Опубліковано: 26 грудня, 2013 (відредаговано) Проблема вероятно в наличии этих самых адресов. Совершенно верно ( потому и интересуюсь айпишников мало осталось потому и водим нат Відредаговано 26 грудня, 2013 skybetik
ttttt Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Ну так чем меньше на айпи, тем лучше, ничего другого никто не скажет. Хотя и это уже потихоньку в прошлое уходит, все начинают подстраиваться под наты. Не забывайте в ptr указать, что это nat, лучше сразу и сколько юзеров за ним сидит, чтобы поменьше сам айпи банили, например: natNN-50users.blablabla.net.ua
sanyadnepr Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Проблема вероятно в наличии этих самых адресов. Совершенно верно ( потому и интересуюсь айпишников мало осталось потому и водим нат Начните с полтинника, там видно будет.
Ромка Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 Кстати, может кто подскажет элегантное решение для iptables для НАТа 1 к 8, т. е. нужно в /24 сетку белых адресов НАТить /21 сетку серых.
Ромка Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 (відредаговано) Так а проблема то в чем? Если вопрос адресован мне, то уже не в чём. Думал будет проблема в большом количестве правил iptables, но один хороший человек направил на путь истиный... Відредаговано 26 грудня, 2013 Ромка
Goblin Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 У меня за одним реальным адресом сидит примерно 20 пользователей. А реализация - использую ipset Собственно в цикле создаю правила ната for ix in {0..255}; do $ipset -N nat${ix} iphash $iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 1.2.3.${ix} -m set --match-set nat${ix} srcdone А в скрипте подключения пользователя выбираю цепочку с наименьшим колличеством адресов, что бы примено поровну было nat=0;nat_name=""for ix in {0..255}; do nat_new=`$ipset -L nat${ix} | wc -l` if [ -z ${nat_name} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` elif [ ${nat} -gt ${nat_new} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` fidone$ipset -A ${nat_name} ${IP} Ну а при отключении - я думаю сами догадаетесь
Ромка Опубліковано: 26 грудня, 2013 Опубліковано: 26 грудня, 2013 У меня за одним реальным адресом сидит примерно 20 пользователей. А реализация - использую ipset Собственно в цикле создаю правила ната for ix in {0..255}; do $ipset -N nat${ix} iphash $iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 1.2.3.${ix} -m set --match-set nat${ix} src done А в скрипте подключения пользователя выбираю цепочку с наименьшим колличеством адресов, что бы примено поровну было nat=0; nat_name="" for ix in {0..255}; do nat_new=`$ipset -L nat${ix} | wc -l` if [ -z ${nat_name} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` elif [ ${nat} -gt ${nat_new} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` fi done $ipset -A ${nat_name} ${IP} Ну а при отключении - я думаю сами догадаетесь Тоже хороший вариант. Спасибо.
Гайджин Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 (відредаговано) Так а проблема то в чем?Если вопрос адресован мне, то уже не в чём. Думал будет проблема в большом количестве правил iptables, но один хороший человек направил на путь истиный...Так можно по разному - если вы не хотите знать четко что во что натится, то можно вообще одним правилом.А еслитак хочется то можно сетами + бинарное дерево. Відредаговано 27 грудня, 2013 Гайджин
KaYot Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 У меня за одним реальным адресом сидит примерно 20 пользователей. А реализация - использую ipset Собственно в цикле создаю правила ната for ix in {0..255}; do $ipset -N nat${ix} iphash $iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 1.2.3.${ix} -m set --match-set nat${ix} src done А в скрипте подключения пользователя выбираю цепочку с наименьшим колличеством адресов, что бы примено поровну было nat=0; nat_name="" for ix in {0..255}; do nat_new=`$ipset -L nat${ix} | wc -l` if [ -z ${nat_name} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` elif [ ${nat} -gt ${nat_new} ] ; then nat=${nat_new} nat_name=`echo "nat${ix}"` fi done $ipset -A ${nat_name} ${IP} Ну а при отключении - я думаю сами догадаетесь Очень корявый и не имеющий смысла алгоритм. Следующая строка делает точно то же самое, но без костылей. iptables -t nat -o eth1 -A POSTROUTING -p tcp --dport 80 -j SNAT --to 1.2.3.* --persistent
Гайджин Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 Очень корявый и не имеющий смысла алгоритм. Следующая строка делает точно то же самое, но без костылей. iptables -t nat -o eth1 -A POSTROUTING -p tcp --dport 80 -j SNAT --to 1.2.3.* --persistent Батенька, а вот ту Вы совершенно не правы. Есть в жизни случаи когда этот корявый алгоритм гораздо более предпочтителен, чем предложенное тобой. Наводящая фраза: "кровавая гэбня". Подумай.
KaYot Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 Так юзеры и в том варианте распределяются динамически, узнать кто куда выходил нельзя. Значит вопрос про 'гэбню' у человека не стоит.
S_ergey Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 Кто куда ходил видит ipt_NETFLOW http://forum.nag.ru/forum/index.php?showtopic=53979&st=200
Гайджин Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 Так юзеры и в том варианте распределяются динамически, узнать кто куда выходил нельзя. Значит вопрос про 'гэбню' у человека не стоит.Какая то странная причинно следственная связь? - Вы ее откуда вывели?
Гайджин Опубліковано: 27 грудня, 2013 Опубліковано: 27 грудня, 2013 Кто куда ходил видит ipt_NETFLOW http://forum.nag.ru/forum/index.php?showtopic=53979&st=200А тут все типа дураки? - Ясен пень видит, да вот только ели натить сеть в сеть (разных размеров), то с большой вероятностью даже даже нетфлоу потом не даст идентифицировать кто куда.
parazit Опубліковано: 8 березня, 2014 Опубліковано: 8 березня, 2014 Доброго времени, всем. Дабы не создавать новую тему - продолжу существующую Проблема в следующем... После обновления сервера с Freebsd 9.1 i386 на FreeBSD 10.0-RELEASE amd64.. начались проблемы с юзерами которые сидят за натом... тоесть днем работаю отлично, а в ночь примерно 2-00 - 3-00 часа начинается ЦИРК.. постоянные обрывы, загрузить ничего нельзя, странички недогружаются.... В то же время пользователи с белыми адресами никаких дискомфортов не чувствуют.... Данная проблема проходит сама по себе (в разное время.. может и в 11-0 может и 14-00 ) либо после ребута сервера... Как понимаете караулить начало траблов и потом бутать сервак каждую ночь - не есть феншуй... Использую для ната PF pf.conf # NAText_if_ua = "vlanXXX"ext_if_world = "vlanYYY" set limit states 500000set optimization aggressive set limit src-nodes 160000 set limit table-entries 160000 nat pass on $ext_if_ua from 10.20.0.0/16 to any -> W.W.W.W/27 round-robin sticky-addressnat pass on $ext_if_world from 10.20.0.0/16 to any -> W.W.W.W/27 round-robin sticky-address pfctl -siStatus: Enabled for 0 days 20:56:04 Debug: UrgentState Table Total Rate current entries 23854 searches 5653235026 75012.4/s inserts 19840986 263.3/s removals 19817734 263.0/sCounters match 3889321848 51607.2/s bad-offset 0 0.0/s fragment 169 0.0/s short 127 0.0/s normalize 0 0.0/s memory 0 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 35 0.0/s proto-cksum 0 0.0/s state-mismatch 5200 0.1/s state-insert 4 0.0/s state-limit 0 0.0/s src-limit 0 0.0/s synproxy 0 0.0/s сеть W.W.W.W/27 прицеплена на ЛУПБЕКЕ алиасами # Loopbackifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0"ifconfig_lo0_alias0="inet w.w.w.32 netmask 255.255.255.255" .............................................................................................. ifconfig_lo0_alias31="inet w.w.w..63 netmask 255.255.255.255" в старом конфиге нат был в /28 sysctl.conf net.inet.ip.fastforwarding=1 #net.inet.ip.dummynet.io_fast=1 #net.inet.ip.fw.one_pass=1 #net.inet.ip.dummynet.pipe_slot_limit=1000 # ########## KERNEL ########kern.ipc.nmbclusters=400000 #kern.ipc.maxsockets=204800 #kern.maxfilesperproc=200000kern.ipc.nmbjumbop=65536 #kern.ipc.shm_use_phys=1 #kern.ipc.somaxconn=4096net.inet.tcp.nolocaltimewait=1 #kern.ipc.maxsockbuf=83886080### TCP/IP ###net.inet.tcp.sendspace=131072net.inet.tcp.msl=7500net.inet.ip.intr_queue_maxlen=10240 # 256net.inet.tcp.blackhole=2net.inet.udp.blackhole=1net.inet.icmp.drop_redirect=1net.inet.icmp.log_redirect=1 # 1net.inet.ip.redirect=0 # 1net.inet.icmp.maskrepl=0net.inet.icmp.icmplim=100net.inet.tcp.drop_synfin=1kern.sync_on_panic=1 # 0 #net.inet.tcp.hostcache.expire=1200 # 3600net.inet.tcp.keepinit=5000 # 75000 # boot/loader.conf kern.maxdsiz="2G"kern.dfldsiz="2G"geom_mirror_load="yes" netstat -m34957/3353/38310 mbufs in use (current/cache/total)34921/1651/36572/746462 mbuf clusters in use (current/cache/total/max)34921/1650 mbuf+clusters out of packet secondary zone in use (current/cache)20/83/103/373230 4k (page size) jumbo clusters in use (current/cache/total/max)0/0/0/110586 9k jumbo clusters in use (current/cache/total/max)0/0/0/62205 16k jumbo clusters in use (current/cache/total/max)78685K/4472K/83157K bytes allocated to network (current/cache/total)350/21402/321 requests for mbufs denied (mbufs/clusters/mbuf+clusters)0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters)0/0/0 requests for jumbo clusters delayed (4k/9k/16k)35/0/0 requests for jumbo clusters denied (4k/9k/16k)0 requests for sfbufs denied0 requests for sfbufs delayed31 requests for I/O initiated by sendfile Ядро собрано с device pfdevice pflogdevice pfsyncoptions ALTQ top -aSCHIP трафика примерно 500мб/с last pid: 22396; load averages: 1.28, 1.20, 1.11 319 processes: 13 running, 249 sleeping, 57 waitingCPU 0: 0.8% user, 0.0% nice, 3.9% system, 9.8% interrupt, 85.5% idleCPU 1: 1.6% user, 0.0% nice, 0.4% system, 7.1% interrupt, 91.0% idleCPU 2: 1.2% user, 0.0% nice, 0.8% system, 9.4% interrupt, 88.6% idleCPU 3: 0.4% user, 0.0% nice, 0.0% system, 18.0% interrupt, 81.6% idleCPU 4: 1.2% user, 0.0% nice, 0.4% system, 8.2% interrupt, 90.2% idleCPU 5: 1.6% user, 0.0% nice, 0.8% system, 8.6% interrupt, 89.0% idleCPU 6: 0.8% user, 0.0% nice, 1.6% system, 10.2% interrupt, 87.5% idleCPU 7: 1.6% user, 0.0% nice, 1.2% system, 20.8% interrupt, 76.5% idleMem: 198M Active, 408M Inact, 817M Wired, 1307M Buf, 10G FreeSwap: PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 128K CPU5 5 19.4H 97.17% [idle{idle: cpu5}] 11 root 155 ki31 0K 128K CPU0 0 19.0H 95.46% [idle{idle: cpu0}] 11 root 155 ki31 0K 128K CPU1 1 19.3H 94.38% [idle{idle: cpu1}] 11 root 155 ki31 0K 128K RUN 6 19.3H 93.46% [idle{idle: cpu6}] 11 root 155 ki31 0K 128K CPU2 2 19.3H 91.36% [idle{idle: cpu2}] 11 root 155 ki31 0K 128K RUN 7 19.3H 89.70% [idle{idle: cpu7}] 11 root 155 ki31 0K 128K RUN 4 19.2H 89.26% [idle{idle: cpu4}] 11 root 155 ki31 0K 128K CPU3 3 18.3H 78.56% [idle{idle: cpu3}] 12 root -92 - 0K 944K WAIT 7 42:27 13.28% [intr{irq271: igb0:que}] 12 root -92 - 0K 944K CPU3 3 73:02 12.70% [intr{irq301: em1:rx 0}] 12 root -92 - 0K 944K WAIT 2 43:35 7.76% [intr{irq266: igb0:que}] 12 root -92 - 0K 944K WAIT 6 43:49 6.98% [intr{irq270: igb0:que}] 12 root -92 - 0K 944K WAIT 4 38:35 6.79% [intr{irq268: igb0:que}] 12 root -92 - 0K 944K WAIT 0 43:56 6.69% [intr{irq264: igb0:que}] 12 root -92 - 0K 944K WAIT 3 42:18 6.15% [intr{irq267: igb0:que}] 12 root -92 - 0K 944K WAIT 5 41:12 5.57% [intr{irq269: igb0:que}] 12 root -92 - 0K 944K CPU1 1 44:26 5.27% [intr{irq265: igb0:que}] 12 root -92 - 0K 944K WAIT 3 10:03 2.49% [intr{irq276: igb1:que}] 12 root -92 - 0K 944K WAIT 3 6:58 1.76% [intr{irq285: igb2:que}] 12 root -92 - 0K 944K WAIT 2 9:34 1.56% [intr{irq275: igb1:que}]97896 root 20 0 48560K 10160K nanslp 2 17:53 1.07% perl nomake.pl nodhcp (perl5.16.3) 9192 mysql 21 0 211M 62852K CPU2 2 11:05 0.98% /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/v 12 root -92 - 0K 944K WAIT 6 9:38 0.88% [intr{irq279: igb1:que}] 12 root -92 - 0K 944K WAIT 7 6:21 0.78% [intr{irq289: igb2:que}] 12 root -92 - 0K 944K WAIT 5 8:21 0.68% [intr{irq278: igb1:que}] 12 root -92 - 0K 944K WAIT 1 7:12 0.68% [intr{irq283: igb2:que}] 12 root -92 - 0K 944K WAIT 6 6:40 0.68% [intr{irq288: igb2:que}] 12 root -92 - 0K 944K WAIT 2 6:28 0.68% [intr{irq284: igb2:que}]97898 root 20 -15 197M 156M nanslp 7 20:30 0.59% perl nodeny.pl (perl5.16.3) На мой взгляд проблема явно в нате.. на 9.1 работало без проблем... в 10 ветке PF уже паралелится по ядрам может связано с этим что? P.S. просьба сильно не пинать.. если нужна доп.инфа - покажу...
zulu_Radist Опубліковано: 8 березня, 2014 Опубліковано: 8 березня, 2014 а по логам что видно? я во фре не шарю, в линуксе можно было бы попробовать контрак таблицу увеличить
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас