Перейти до

NAT на freebsd


Рекомендованные сообщения

1 минуту назад, Baneff сказал:

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

А мы и не принуждаем. Просто предлагаем альтернативу.

NAT под Линукс делается тупо 1(!!!) строчкой в фаерволе. Тема начиналась как раз про НАТ.

Сервер доступа тоже поднимается в пару команд с помощью accel-ppp, с ААА и шейперами, причем не важно pptp/l2tp/ipoe там будет бегать.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 153
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Лучший НАТ на БСД это любой дистрибутив linux

Ага, он поставит сервак типо R210 или G6/7/8 за 400+.

Настройки ядра: /usr/src/sys/amd64/conf/GENERIC - ничего особенного #options      INET6  #disable IPv6 options         IPFIREWALL options         IPFIREWALL_NAT options         IPFIREWALL_DEFAULT

Posted Images

1 час назад, Чучундра сказал:

Нетграф это сила,  у линусятников ничего подобного нет

Да, потенциал был заложен огромный, но развития всё это так и не получило, очень быстро новые модули перестали писать, всё застыло. Денег никто не платит за это всё, вот и. Netmap вот тоже выдающийся прорыв был бы, но грантов нет и всё постепенно заглохло. Какие-то корыстные все стали, задарма работать не хотят, а те, кто могли и хотели постепенно вымирают. Жизнь - боль.

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Baneff сказал:

Netmap вот тоже выдающийся прорыв был бы, но грантов нет и всё постепенно заглохло

Потому что есть полностью аналогичный фришный dpdk под линукс. Все деньги/проекты/разработчики там..

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, KaYot сказал:

А мы и не принуждаем. Просто предлагаем альтернативу.

NAT под Линукс делается тупо 1(!!!) строчкой в фаерволе. Тема начиналась как раз про НАТ.

Сервер доступа тоже поднимается в пару команд с помощью accel-ppp, с ААА и шейперами, причем не важно pptp/l2tp/ipoe там будет бегать.

 

Спасибо, не надо :) Я вас в свою веру не агитирую переходить, пусть будет линукс круче, а строчки считать мне лень.

Всё, я утомился, сорри. Зачем я время тут трачу - непонятно, Можете считать это сливом. Лучше книжку пойду почитаю перед сном.

Відредаговано Baneff
Ссылка на сообщение
Поделиться на других сайтах

Т.е. 1 строчка это не круто, а 6 круто? Причем таблицы 2,3,5,7 ещё создать где-то надо?

 

 

На dpdk под линукс есть на наге очень интересный проект - the router.

Аналог accel-ppp полностью написанный под dpdk. Результаты ужасают, НАТ или BRAS в сборе на десктопных i5 получается 20+ Гбит.

Тупо сколько в шины/карты платформы влезет.

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, KaYot сказал:

Т.е. 1 строчка это не круто, а 6 круто? Причем таблицы 2,3,5,7 ещё создать где-то надо?

Всё-всё, я пас. Спокойной ночи.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Baneff сказал:

Всё-всё, я пас. Спокойной ночи.

Вот конфиг моего боевого НАТ-бокса. Обслуживает ~10к серых абонентов))

# не НАТить доступ к серверу

-A POSTROUTING -d xx.xxx.xx.3 -j RETURN

# НАТить статически серый пул в реальный рул

-A POSTROUTING -o eth0.7 -s 172.20.0.0/16 -j SNAT --to xx.xx.xx.128-xx.xx.xx.159 --persistent
 

И то, первое правило осталось с давних пор, что б клиенты на сайт/форум попадали под своими ИП а не после НАТа. Его можно  удалить, форум давно убит.

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
1 hour ago, KaYot said:

И то, первое правило осталось с давних пор, что б клиенты на сайт/форум попадали под своими ИП а не после НАТа. Его можно  удалить, форум давно убит.

 

На биллинг, если он не внутри, лучше тоже без ната приходить. Ну, это ежели, биллинг придает этому значение. :)

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Baneff сказал:

Вы не в курсе, видимо, что такое нетграф. В качестве браса он никакой силы не имеет

Я в курсе что такое нетграф. Но в качестве браса - он до спины. Вы это так же подтвердили. Так собсно смысл мусолить его?

 

3 часа назад, KaYot сказал:

Он конечно человек-говно,

И я тебя люблю, псина :D

3 часа назад, Lynx100 сказал:

терминація на accel? ipoe ? q-in-q? 

Все да.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, KaYot сказал:

Вот конфиг моего боевого НАТ-бокса. Обслуживает ~10к серых абонентов))

# не НАТить доступ к серверу 

-A POSTROUTING -d xx.xxx.xx.3 -j RETURN

# НАТить статически серый пул в реальный рул

-A POSTROUTING -o eth0.7 -s 172.20.0.0/16 -j SNAT --to xx.xx.xx.128-xx.xx.xx.159 --persistent

Не чеши, барбос. Табличку коннтрака ты не увеличиваешь на 10к абонов то?

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Baneff сказал:

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

я думал точно так же до того момента, как где-то нашел набор скриптов для формирования правил tc под мой биллинг :) а потом уже забил на tc и поставил ipt_ratelimit

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах

Любителям померяться пиписьками советую обратить внимание что для полной коректности кроме графиков с трафиком и загрузкой процессора нужно еще показывать графики с количеством NAT трансляций, т.к. от их числа зависит производительность системы в целом.

Ссылка на сообщение
Поделиться на других сайтах

http://joxi.ru/E2pKGM1Sa8awpm

 

это в додачу к ппосту

Пайдеть?

Відредаговано Dimkers
Ссылка на сообщение
Поделиться на других сайтах

Пвайдеть. 

 

Не знаю какие у кого нарекания на фрю, но у меня nas с ipfw_nat и шейперами на старом как говно мамонтов supermicro . 2*X5680  3.3GHz на 2.5Г трафика грузит проц около  40%. Единственное что не нравится это отсутствие детализированой информации по текущим соединениям.

Відредаговано ramsess
Ссылка на сообщение
Поделиться на других сайтах

Я помню, под PF работал NAT и я записывал по стейтам с какого серого ИПа были коннекты. И при большом желании, зная время и точный ИП обращения, можно было приблизительно указать на абонента. 

При разумном запросе от "киберзлочынцив" и решении суда честно отдавать.

Под линуксами есть варианты? 

 

 

Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, bit сказал:

Я помню, под PF работал NAT и я записывал по стейтам с какого серого ИПа были коннекты. И при большом желании, зная время и точный ИП обращения, можно было приблизительно указать на абонента. 

При разумном запросе от "киберзлочынцив" и решении суда честно отдавать.

Под линуксами есть варианты? 

 

 

Честно отдавать "киберзлочынцям" приблизительного абонента? Это как? А в суде сможете приблизительно свидетельствовать потом? Ото адвокат будет рад.

"Киберзлочынци" уже понимают волшебное слово NAT, опыт-то растёт. Так что можно смело им писать, что не имеется технической возможности определить "злочинця".

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, ramsess сказал:

Не знаю какие у кого нарекания на фрю, но у меня nas с ipfw_nat и шейперами на старом как говно supermicro . 2*X5680  3.3GHz на 2.5Г трафика грузит проц около  40%. Единственное что не нравится это отсутствие детализированой информации по текущим соединениям.

Нарекание на фрю ровно одно и это то, что она протухла и линукс круче. Ещё в том, что кто-то вообще позволяет себе пользоваться чем-то, отличным от их любимого линукса, это совершенно непозволительно, оскорбительно для адептов секты линуксоводов и занижает их самооценку. Короче вопрос чисто религиозный, неверный должен быть наказан и обращён в истинную веру. А так-то да - работает.

 

А какой информации по текущим соединениям не хватает? Если есть шейпер, то есть и счётчики по каждому клиентскому IP адресу, можно снимать скриптом и анализировать кто сколько и когда намотал байтиков. Или о чём речь?

Ссылка на сообщение
Поделиться на других сайтах

Если у абона заведется вирусняк, троян, сканер портов/адресов и.т.п. то он легко может положить небольшим трафиком систему создав кучу фейковых коннектов. У ipfw_nat в этом плане не хватает ограничения на число трансляций (в идеале per src_ip, но для начала хватило бы и per pool) чтоб избежать подобной ситуации, и детальной информации про текущую  таблицу трансляций чтоб вычислить вредителя. В pf_nat это все есть.

Відредаговано ramsess
Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, ramsess сказал:

Если у абона заведется вирусняк, троян, сканер портов/адресов и.т.п. то он легко может положить небольшим трафиком систему создав кучу фейковых коннектов. У ipfw_nat в этом плане не хватает ограничения на число трансляций (в идеале per src_ip, но для начала хватило бы и per pool) чтоб избежать подобной ситуации, и детальной информации про текущую  таблицу трансляций чтоб вычислить вредителя. В pf_nat это все есть.

Если очень хочется ограничить кол-во сессий на IP, то это делается динамическими правилами ipfw . Когда-то давно я с этим игрался ибо была озабоченность всякими виртуальными провайдерами, которые типа на домашнем тарифе раздают инет соседям. А так ограничил кол-во сессий и Вася-кот. Но потом успокоился и забил на это. Но работает, причём и на белых адресах, не только на серых. Да и от вирусняка не припомню давно чтобы кто-то сильно грузил.

18 минут назад, pashaumka сказал:

ipfw - allow|deny/pipe

pf - nat 

 

Оно конечно краткость - сестра таланта, но иногда бывает чересчур кратко. Что это должно было значить?

Ссылка на сообщение
Поделиться на других сайтах
В 20.02.2020 в 23:09, KaYot сказал:

На dpdk под линукс есть на наге очень интересный проект - the router.

Аналог accel-ppp полностью написанный под dpdk. Результаты ужасают, НАТ или BRAS в сборе на десктопных i5 получается 20+ Гбит.

Тупо сколько в шины/карты платформы влезет.

Посмотрел. Как только увидел, что проект не OpenSource и будет платным когда и если допилят, то дальше читать не стал. Проприетарщиной запахло, не наш метод.

Відредаговано Baneff
Ссылка на сообщение
Поделиться на других сайтах
В 20.02.2020 в 23:05, KaYot сказал:

Потому что есть полностью аналогичный фришный dpdk под линукс. Все деньги/проекты/разработчики там..

Можете назвать пару-тройку уже реализованных удачных OpenSource беспалатных проектов с использованием dpdk ? The Router не канает.

 

Ссылка на сообщение
Поделиться на других сайтах
В 24.02.2020 в 14:54, Baneff сказал:

Можете назвать пару-тройку уже реализованных удачных OpenSource беспалатных проектов с использованием dpdk ? The Router не канает.

OpenSource не назову, не интересовался никогда. VPP разве что если жив еще.

А вот платных куча, тот же The router/Скат/RDP и еще пяток проектов маршрутизаторов-НАТ-фаерволов от россиян на НАГе можно почитать. Реально по 20 гиг на тазике за 300$ получается, будущее за ними. Даже accel начинили пару лет назад переписывать под dpdk, пока правда результата нет.

А вот таких же проектов но под netmap и фрю вообще не вспоминается.

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, KaYot сказал:

OpenSource не назову, не интересовался никогда. VPP разве что если жив еще.

А вот платных куча, тот же The router/Скат/RDP и еще пяток проектов маршрутизаторов-НАТ-фаерволов от россиян на НАГе можно почитать. Реально по 20 гиг на тазике за 300$ получается, будущее за ними. Даже accel начинили пару лет назад переписывать под dpdk, пока правда результата нет.

А вот таких же проектов но под netmap и фрю вообще не вспоминается.

Нам за деньги не надо, только большая и чистая любовь!

Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, Baneff сказал:

Нам за деньги не надо, только большая и чистая любовь!

Не, ну то такое, лучше поставить 5 тазиков по 800 баксов, чем 1 за 300 + лицензия

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Nejron
      Всем здрям! ))
      Изложу суть :
      Имеется некий сервис (в данном случае IPTV личного производства)
      Хотелось бы контролировать с билинга доступ к нему.
      В профиле пользователя создал дополнительное поле с типом "TRIGGER".
       
      А вот дальше хочу спросить как правильно заполнить свою таблицу для ipfw?
      Добавлять/удалять от туда ip клиентов и возможно еще что то посоветуете.
      Возможно кто то что то подобное делал,
      не оставте начинающего админа без совета ?
       
    • Від Oleg2018
      Посоветуйте ,такая ситуация при сканировании хоста с биллингом во внешней сети открытые порты 5555 (stargazer), и 80 (apache). Если их нужно наверное спрятать от внешней сети, то как правильно написать правило ipfw ,касательно этих портов.Все остальное что вылезло после установки я закрыл, а здесь не получается никак. Спаибо заранее. 
    • Від Baneff
      Всем привет.
      Давно использую freebsd + ipfw + dummynet + kernel nat + ещё куча всякого разного и всё на одном серваке. Менять платформу не хочу - старый я уже для этого. Так вот. Нагрузка постепенно растёт, пора как-бы железо менять в очередной раз, но есть проблема. Всё в этой схеме прекрасно параллелится на мультиядерной системе. Всё, кроме старичка DUMMYNET. В очередной раз смотрю на процесс kernel{dummynet} и в очередной раз вижу конкретное узкое место во всй системе. Обойти невозможно, работает только в один поток и когда загрузка превышает 80-90% начинаются естественные проблемы. Все остальное работает с большим запасом по нагрузке. Вот и вопрос: как-то эту проблему удаётся решать? Чем шейпить юзеров, если не дамминетом? Или может появилась возможность как-то его параллелить? Или, возможно, какие-то новые методы позволяют как-то снизить нагрузку на дамминет? В документации появились некие новые варианты настроек CoDel, PIE, FQ-CoDel и FQ-PIE в дополнение к старым, может они помогут? Кто-то пробовал?
      Спасибо.
    • Від rusol
      Здравствуйте, голова уже болит, мысли закончились, может кто-то подскажет чего...

      Ситуация такая:

      Клиент жалуется, что c их ftp, который находиться в России, плохая скорость (прыгает от 10 Мбит/с до 30 Мбит/с, по тарифу должна быть 100 Мбит/с), проверили на ftp другого хостинга - все нормально, 100 Мбит.

      Я бы не писал сюда, но есть одно большое НО.. когда я захожу на главный маршрутизатор (FreeBSD + Nodeny 50.32 + IPFW + PF), то с главного сервака скорость отличная, а за серваком (в сети) скорость падает, при этом на другие ftp скорость хорошая с сети...

      То-есть без связки Nodeny + IPFW + PF - скорость отличная (на главном серваке).

      Подставлял реальный IP сервака на локальную машину, думал может ftp по IP что-то ограничивает, эффекта не дало...

      Может кто подскажет куда поглядеть, у меня уже мысли заканчиваются...
    • Від LENS
      Друзья, помогите пожалуйста разобраться с проблемой скорости
       
      Nodeny 50.32
      Ядро и BRAS на разных серверах.
      BRAS сервер HP Proliant G8 360, 2CPU 2,6 Ghz, 8Gb RAM - сетевая Intel 82576
      Вход и выход собраны в lagg - итого два гига вход и выход
      Абоненты терминируются через PPPoE на mpd. Nat на pf, детализация на ipcad
       
      Проблема: при включенном ipfw и именно правилах pipe со скоростью какая то дичь, исхода нет, вход 10-13 мегабит
      Как только выключаешь ipfw - все летает, больше гигабита пролетает без проблем. При этом очевидных проблем с перегрузом ядер нет - все равномерно.
      FreeBSD bras7 11.2-STABLE FreeBSD 11.2-STABLE #0: Sun Dec 23 20:44:08 EET 2018     root@bras7:/usr/obj/usr/src/sys/BRAS7  amd64
       
      В ядро Generic  добавил опции:
      # NAS KERNEL OPTIONS options IPFIREWALL options IPFIREWALL_NAT options LIBALIAS options IPDIVERT options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT options PANIC_REBOOT_WAIT_TIME=3 options NETGRAPH options NETGRAPH_BPF options NETGRAPH_IPFW options NETGRAPH_ETHER options NETGRAPH_IFACE options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_PPPOE options NETGRAPH_SOCKET options NETGRAPH_KSOCKET options NETGRAPH_ONE2MANY options NETGRAPH_SPLIT options NETGRAPH_TEE options NETGRAPH_TCPMSS options NETGRAPH_VJC options NETGRAPH_RFC1490 options NETGRAPH_TTY options NETGRAPH_UI
      Sysctl.conf
      net.inet6.ip6.auto_linklocal=0 net.inet6.ip6.auto_linklocal=0 # net.isr.dispatch=deferred # dev.igb.0.rx_processing_limit=4096 dev.igb.1.rx_processing_limit=4096 dev.igb.2.rx_processing_limit=4096 dev.igb.3.rx_processing_limit=4096 dev.igb.4.rx_processing_limit=4096 dev.igb.5.rx_processing_limit=4096 dev.igb.6.rx_processing_limit=4096 dev.igb.7.rx_processing_limit=4096 # net.link.lagg.default_use_flowid=1 # net.inet.ip.dummynet.pipe_slot_limit=1000 net.inet.ip.dummynet.io_fast=1 net.inet.ip.intr_queue_maxlen=10240 # kern.ipc.nmbclusters=262144 kern.ipc.maxsockbuf=16777216 kern.ipc.somaxconn=32768 kern.randompid=348 net.inet.icmp.icmplim=50 net.inet.ip.process_options=0 net.inet.ip.redirect=0 net.inet.icmp.drop_redirect=1 net.inet.tcp.blackhole=2 net.inet.tcp.delayed_ack=0 net.inet.tcp.drop_synfin=1 net.inet.tcp.msl=7500 net.inet.tcp.nolocaltimewait=1 net.inet.tcp.path_mtu_discovery=0 net.inet.tcp.recvbuf_max=16777216 net.inet.tcp.recvspace=64395 net.inet.tcp.sendbuf_max=16777216 net.inet.tcp.sendspace=64395 net.inet.udp.blackhole=1 net.inet.tcp.tso=0 net.inet.tcp.syncookies=1 net.inet.ip.ttl=226 net.inet.tcp.drop_synfin=1 net.inet.ip.accept_sourceroute=0 net.inet.icmp.bmcastecho=0 net.route.netisr_maxqlen=4096 net.graph.maxdgram=8388608 net.graph.recvspace=8388608  
      loader.conf
      kern.geom.label.gptid.enable=0 kern.geom.label.disk_ident.enable=0 # hw.igb.rxd=4096 hw.igb.txd=4096 hw.igb.max_interrupt_rate=32000 # net.route.netisr_maxqlen=4096 net.isr.defaultqlimit=4096 net.link.ifqmaxlen=10240 rc.firewall
      ${f} -f flush ${f} add 50 allow tcp from any to me 22 via lagg1 ${f} add 51 allow tcp from me 22 to any via lagg1 #${f} add 65 allow tcp from any to me 1723 #${f} add 65 allow tcp from me 1723 to any #${f} add 65 allow gre from any to me #${f} add 65 allow gre from me to any # # # PRIVATBANK + LIQPAY FREE ACCESS ${f} add 66 allow tcp from not "table(0)" to "table(17)" dst-port 80,443 # # Blocked URL ${f} add 67 fwd 127.0.0.1,8082 tcp from "table(0)" to "table(18)" dst-port 80 in ${f} add 68 reject tcp from "table(0)" to "table(18)" ${f} add 69 deny ip from "table(0)" to "table(18)" # # DENY TRACEROUTE & PING ${f} add 70 allow ip from any to any via lo0 ${f} add 71 allow icmp from 10.10.1.1 to any ${f} add 72 allow icmp from any to 10.10.1.1 ${f} add 74 deny icmp from me to any ${f} add 75 deny icmp from 10.10.0.0/24 to 10.190.0.0/16 icmptype 0,11 ${f} add 76 deny icmp from any to me ${f} add 110 allow ip from any to any via lo0 ${f} add 120 skipto 1000 ip from me to any ${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 ${f} add 160 skipto 2000 ip from any to me # ${f} add 170 allow tcp from any to ${main_server} 80,443 ${f} add 175 allow tcp from ${main_server} 80,443 to any ${f} add 180 allow tcp from any to ${main_server} 80,443 ${f} add 185 allow tcp from ${main_server} 80,443 to any ${f} add 187 allow tcp from any to ${site_server} 80 ${f} add 188 allow tcp from ${site_server} 80 to any ${f} add 190 allow udp from any to ${dns} 53 ${f} add 195 allow udp from ${dns} 53 to any ${f} add 200 skipto 500 ip from any to any via lagg1 # message module======== ${f} add 280 fwd 127.0.0.1,8081 tcp from "table(35)" to not me dst-port 80 in ${f} add 290 fwd 127.0.0.1,8080 tcp from not "table(0)" to not me dst-port 80 in #======================= ${f} add 300 skipto 4500 ip from any to any in ${f} add 400 skipto 450 ip from any to any recv lagg1 ${f} add 420 tee 1 ip from any to any ${f} add 450 tee 2 ip from any to "table(0)" ${f} add 490 allow ip from any to any ${f} add 500 skipto 32500 ip from any to any in ${f} add 510 tee 1 ip from any to any ${f} add 540 allow ip from any to any ${f} add 1000 allow udp from any 53,7723 to any ${f} add 1010 allow tcp from any to any setup keep-state ${f} add 1020 allow udp from any to any keep-state ${f} add 1100 allow ip from any to any ${f} add 2000 check-state ${f} add 2010 allow icmp from any to any ${f} add 2020 allow tcp from any to any 80,443 ${f} add 2030 allow ip from ${bras_server} to any ${f} add 2050 deny ip from any to any via lagg1 ${f} add 2060 allow udp from any to any 53,7723 ${f} add 2100 deny ip from any to any ${f} add 32490 deny ip from any to any  
      nofire.pl добавляет  еще правила:
      05000 skipto 33010 ip from table(1) to table(37) 05001 skipto 33010 ip from table(37) to table(1) 05002 deny ip from not table(0) to any 05003 skipto 5010 ip from table(127) to table(126) 05004 skipto 5030 ip from any to not table(2) 05005 deny ip from any to not table(1) 05006 pipe tablearg ip from table(21) to any 05007 deny ip from any to any 05010 pipe tablearg ip from table(127) to any 05030 deny tcp from table(15) to any 25 05400 pipe tablearg ip from table(11) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 pipe tablearg ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 pipe tablearg ip from any to table(20) 33003 deny ip from any to any 33400 pipe tablearg ip from any to table(10)  
      Вот эти два правила, удалив которые все работает без проблем (либо сделать ipfw -f):
      33002 pipe tablearg ip from any to table(20)
      33400 pipe tablearg ip from any to table(10)
       
      Подскажите, что может быть источником данной проблемы - при том, что на старой версии FreeBSD 7.4 все работает нормально.
      С меня бутылка хорошего горячительного средства или скажите сколько если устали пить

×
×
  • Створити нове...