Просмотр сообщений
|
Страниц: [1]
|
1
|
Главная категория / Nodeny Plus / Re: noserver потребляет много памяти
|
: 26 Октября 2021, 06:09:14
|
Присваиваю тег nas01 подсети 172.16.180.0/22: 172.16.180.11 Динамический nas01 Изменить Удалить 172.16.180.12 Динамический 5926 nas01 Изменить Удалить 172.16.180.13 Динамический 5414 nas01 Изменить Удалить 172.16.180.14 Динамический nas01 Изменить Удалить 172.16.180.15 Динамический 5380 nas01 Изменить Удалить 172.16.180.16 Динамический 5381 nas01 Изменить Удалить cat /usr/local/nodeny/cfg/noserver.cfg.pm $ip_tags = 'nas01'; # обрабатывать ip только с этим тегом ps -ax | grep no 1775 v0- S 101:28,63 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d 75817 1 S 1:28,63 /usr/bin/perl /usr/local/nodeny/noserver.pl -d
kill -9 75817
/etc/rc.d/ipfw restart
/usr/bin/perl /usr/local/nodeny/noserver.pl -d &
ps -ax | grep no 1775 v0- S 101:31,09 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d 79082 1 S 0:00,86 /usr/bin/perl /usr/local/nodeny/noserver.pl -d ipfw table 41 list | wc -l 3388 ipfw table 41 list | grep -e 16.180 -e 16.181 -e 16.182 -e 16.183 | wc -l 39 svn info Path: . Working Copy Root Path: /usr/local/nodeny URL: svn://nodeny-plus.com.ua/release Relative URL: ^/ Repository Root: svn://nodeny-plus.com.ua/release Repository UUID: 2dcad6c2-3daf-43f6-9252-ff095f4c085f Revision: 640 Node Kind: directory Schedule: normal Last Changed Author: sv Last Changed Rev: 640 Last Changed Date: 2021-10-12 22:02:30 +0300 (вт, 12 окт. 2021) uname -a FreeBSD nas01 13.0-RELEASE-p4 FreeBSD 13.0-RELEASE-p4 #0: Tue Aug 24 07:33:27 UTC 2021 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 pkg info | grep perl perl5-5.32.1_1 Practical Extraction and Report Language Что я делаю не так?
|
|
|
2
|
Главная категория / Nodeny Plus / Re: noserver потребляет много памяти
|
: 24 Октября 2021, 08:41:34
|
С ростом общего количества абонентов заметил что noserver начал скачкообразно грузить CPU. Такая картина наблюдается на всех сателлитах: 1775 v0- S 25:50,20 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d 20523 0 S 4:00,16 /usr/bin/perl /usr/local/nodeny/noserver.pl -d last pid: 21811; load averages: 0,97, 0,70, 0,63 252 threads: 14 running, 209 sleeping, 29 waiting CPU 0: 4,8% user, 0,0% nice, 4,2% system, 0,0% interrupt, 91,0% idle CPU 1: 3,0% user, 0,0% nice, 6,6% system, 0,0% interrupt, 90,4% idle CPU 2: 6,0% user, 0,0% nice, 0,0% system, 0,0% interrupt, 94,0% idle CPU 3: 1,8% user, 0,0% nice, 4,8% system, 0,0% interrupt, 93,4% idle CPU 4: 3,0% user, 0,0% nice, 3,0% system, 0,0% interrupt, 94,0% idle CPU 5: 2,4% user, 0,0% nice, 3,6% system, 0,0% interrupt, 94,0% idle CPU 6: 1,8% user, 0,0% nice, 4,8% system, 0,0% interrupt, 93,4% idle CPU 7: 2,4% user, 0,0% nice, 9,6% system, 0,0% interrupt, 88,0% idle CPU 8: 3,0% user, 0,0% nice, 4,2% system, 0,0% interrupt, 92,8% idle CPU 9: 5,4% user, 0,0% nice, 0,6% system, 0,0% interrupt, 94,0% idle CPU 10: 3,6% user, 0,0% nice, 0,6% system, 0,0% interrupt, 95,8% idle CPU 11: 0,6% user, 0,0% nice, 2,4% system, 0,0% interrupt, 97,0% idle Mem: 106M Active, 4351M Inact, 2507M Wired, 1287M Buf, 8968M Free Swap: 4096M Total, 4096M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 20523 root 29 0 65M 50M select 2 1:39 37,01% perl 0 root -76 - 0B 1232K - 1 24:48 7,58% kernel{if_io_tqg_1} 1750 root 20 -15 97M 68M sbwait 2 47:50 7,57% ipcad{ipcad} 0 root -76 - 0B 1232K - 3 31:25 7,12% kernel{if_io_tqg_3} 0 root -76 - 0B 1232K - 7 21:48 6,61% kernel{if_io_tqg_7} 0 root -76 - 0B 1232K CPU8 8 18:28 4,10% kernel{if_io_tqg_8} 0 root -76 - 0B 1232K - 4 23:51 3,64% kernel{if_io_tqg_4} 1750 root 20 -15 97M 68M sbwait 4 19:40 2,77% ipcad{ipcad} 0 root -76 - 0B 1232K - 6 21:09 2,17% kernel{if_io_tqg_6} 0 root -76 - 0B 1232K - 0 26:24 2,04% kernel{if_io_tqg_0} 0 root -76 - 0B 1232K - 11 15:04 2,02% kernel{if_io_tqg_11} 0 root -76 - 0B 1232K - 5 24:15 1,77% kernel{if_io_tqg_5} 0 root -76 - 0B 1232K - 10 16:59 1,09% kernel{if_io_tqg_10} 0 root -92 - 0B 1232K - 0 6:28 0,96% kernel{dummynet} 0 root -76 - 0B 1232K - 2 22:05 0,88% kernel{if_io_tqg_2} 0 root -76 - 0B 1232K - 9 16:42 0,72% kernel{if_io_tqg_9} Думаю это как-то связанно: ipfw pipe show > pipe.log cat -n pipe.log
12425 02296: 52.000 Mbit/s 0 ms burst 0 12426 q133368 50 sl. 0 flows (1 buckets) sched 67832 weight 0 lmax 0 pri 0 droptail 12427 sched 67832 type FIFO flags 0x0 0 buckets 0 active По факту, на данный момент, через этот сателлит бежит порядка 150 абонентов и ±200 Мбит трафика (сколько особо значения не имеет). В перспективе это накладывает ограничения на горизонтальный рост. Возможно его научить работать только с теми сетями которые есть на конкретном сателлите? Или мой вывод по этому поводу не верный? PS: Можно конечно забить и не париться Особо не напрягает.
|
|
|
3
|
Главная категория / Курилка / MySQL репликации БД
|
: 02 Июня 2019, 09:04:03
|
Добрый день! Помогите пожалуйста! Необходимо сделать репликацию БД MASTER-SLAVE на сателит. Столкнулся с проблемой - не работают (создаются) бинарные логи. uname -a FreeBSD 10.3-RELEASE FreeBSD 10.3-RELEASE #0: Mon Dec 10 02:00:43 EET 2018 pkg info mysql56-server mysql56-server-5.6.41_2 Name : mysql56-server Version : 5.6.41_2 Installed on : Sun Dec 9 11:22:33 2018 EET Origin : databases/mysql56-server Architecture : FreeBSD:10:amd64 Prefix : /usr/local Categories : databases ipv6 Licenses : GPLv2 Maintainer : mmokhi@FreeBSD.org Comment : Multithreaded SQL database (server) Options : ARCHIVE : off BLACKHOLE : off EXAMPLE : off FEDERATED : off INNOBASE : off PARTITION : off PERFSCHEMA : off PERFSCHM : on Annotations : FreeBSD_version: 1004000 cpe : cpe:2.3:a:mysql:mysql:5.6.41:::::freebsd10:x64:2 repo_type : binary repository : FreeBSD Flat size : 81.9MiB Description : MySQL is a very fast, multi-threaded, multi-user and robust SQL (Structured Query Language) database server.
cat /etc/my.cnf [mysqld] #skip-networking character-set-server=utf8 init-connect="SET NAMES utf8" query_cache_size=64M long_query_time=5 slow_query_log=1 slow_query_log_file=/var/db/mysql/slow.log collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 skip-external-locking low-priority-updates myisam-recover=backup,force log-bin=mysql-bin server-id=1 expire_logs_days = 2
[client] default-character-set=utf8
[mysql] default-character-set=utf8 ls -l /var/db/ drwx------ 7 mysql mysql 512 2 июн 09:52 mysql drwxr-x--- 2 mysql mysql 512 20 окт 2018 mysql_secure drwxr-x--- 2 mysql mysql 512 20 окт 2018 mysql_tmpdir /usr/local/etc/rc.d/mysql-server restart Stopping mysql. Waiting for PIDS: 92055. Starting mysql. ps -ax | grep mysql 93606 - Is 0:00,01 /bin/sh /usr/local/bin/mysqld_safe --basedir=/usr/local --datadir=/var/db/mysql --pid-file=/var/db/mysql/xxx01.pid --user=mysql 93723 - S 0:21,19 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/db/mysql --plugin-dir=/usr/local/lib/mysql/plugin --user=mysql --log-error=xxx01.err 94380 0 S+ 0:00,00 grep mysql mysql> mysql> show master status; Empty set (0.00 sec)
mysql> show binary logs; ERROR 1381 (HY000): You are not using binary logging Подскажите куда копать?
|
|
|
4
|
Главная категория / Модули NodenyPlus / Re: Модуль терминалов Приват24
|
: 24 Мая 2019, 11:16:31
|
В metersGlobalTarif я передаю стоимость услуг и их всегда это устраивало. Можешь закомментировать эту стоку если они так хотят Это уже сделал. Тут вопросов нет. По пункту 2: приват делает Search по тому параметру как вы с ним договоритесь (ппк, id, номер договора, email, любое допполе). В ответ в параметре billIdentifier посылается id клиента и дальше ПБ делает платеж по id. Буквально пару дней назад я сделал изменения и в настройках добавил параметр "Запрос Check качестве billIdentifier принимает id пользователя". Попробуй его установить в "Да". Перезалил модуль, в параметре выставил "Да". Провели тест. Тестовые логины: 336,6343. billIdentifier 33 634В ответе ничего не поменялось
|
|
|
5
|
Главная категория / Модули NodenyPlus / Re: Модуль терминалов Приват24
|
: 24 Мая 2019, 09:47:12
|
Доброго времени суток! Купил и скачал данный модуль из личного кабинета. С установкой, настройкой вопросов нет. Вопросы возникли у тех. отдела ПриватБанка при тестировании платежей: 1. metersGlobalTarif="0" Глобальный тариф для услуг с приборами учета. Уберите его (мотивируют тем, что у нас нет приборов учета); 2. В запросе: name="bill_identifier" value="336", в ответе: billIdentifier="33". В запросе и ответе этот параметр должен совпадать.
При беглом изучении: 1. Этот вопрос решился достаточно быстро - комментированием строчки. 2. Как я понял, при запросе по login или ppc в ответе всегда возвращается id пользователя. Вот по этой причине в продакш не пропускают.
Как данную ситуацию можно исправить?
PS: Уговорил их подождать несколько дней, не закрывать тикет. При закрытии нужно будет заново все делать - завки, анкеты и т. д.
|
|
|
6
|
Главная категория / Nodeny Plus / Re: Заглушка загружует ядро в 100%
|
: 15 Марта 2017, 15:16:15
|
Если вы имеете ввиду вот это: pass in quick on lo0 proto tcp from any to any port 80 keep state (source-track rule, max-src-states 2, max-src-nodes 100) то пробовал. Результат не меняется. Запустил заглушку с ключиком -v: 1 NAS - за минуту 5 запросов 2 NAS - вообще тихо Получается что она в режиме простоя нагружает проц. На основном сервере (конфигурация одинаковая с NAS, но там 500-600 Мбит трафика) все еще печальнее: ps -ax | grep no 972 v0- R 43194:04,99 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d 972 root 102 0 83652K 8100K CPU4 4 719.4H 100.00% perl{perl}
По количеству запросов почти тоже самое 7-8 запросов в минуту. Куда еще можно глянуть на эту тему?
|
|
|
7
|
Главная категория / Nodeny Plus / Re: Заглушка загружует ядро в 100%
|
: 15 Марта 2017, 12:44:10
|
Доброго времени суток! Периодически виснет модуль заглушки (вынесен отдельным процессом). Если убить процесс и запустить заново 10-14 дней работает нормально потом опять начинает подвисать. При детальном исследовании заметил: ps -ax | grep no 870 v0- R 31529:12,47 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d
870 root 98 0 79576K 28520K CPU4 4 525.1H 90.58% perl{perl} На локальном интерфейсе пусто: tcpdump -i lo0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes ^C 0 packets captured 0 packets received by filter 0 packets dropped by kernel
tcpdump dst 127.0.0.1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C 0 packets captured 86462 packets received by filter 0 packets dropped by kernel
Все это происходит на 2 NAS серверах. Все остальные процессы нервно курят в сторонке. Версия nodeny: Revision: 400 Node Kind: directory Schedule: normal Last Changed Author: sv Last Changed Rev: 400 Last Changed Date: 2016-03-21 13:57:15 +0200 (пн, 21 мар 2016)
Общий трафик на сервере 400-500 Мбит. ps -ax | grep no 870 v0- R 31536:29,05 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d 871 v0- S 351:03,89 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d 872 v0- S 1879:18,79 /usr/bin/perl /usr/local/nodeny/noserver.pl -d
871 root 20 0 60900K 14068K select 1 351:04 0.00% perl 872 root 21 0 231M 187M sbwait 7 31.3H 1.95% perl 0 root -92 - 0K 304K CPU1 1 123.7H 11.57% kernel{em0 que} 893 root 20 -15 47072K 28684K sbwait 4 156.2H 9.86% ipcad{ipcad} 0 root -92 - 0K 304K - 2 102.6H 8.50% kernel{em1 que} sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu' hw.machine: amd64 hw.model: Intel(R) Xeon(R) CPU E5420 @ 2.50GHz hw.ncpu: 8 hw.machine_arch: amd64
Получается самый ресурсоемкий процесс именно заглушка, при том что на нее особо ничего не валиться. Такая ситуация - это нормально или надо куда-то смотреть? Возможно это и есть причина подвисания процесса?
|
|
|
8
|
Главная категория / Nodeny Plus / Re: После обновления до rev. 440
|
: 11 Февраля 2017, 20:24:05
|
Пока все делаю на тестовом сервере: Услуга которая уже существовала (не отображается блок полностью): 'services' => [ { 'service_id' => '6', 'auto_renew' => '1', 'param' => '$VAR1 = {\'script\' => \'\',\'speed_in3\' => \'\',\'speed_in4\' => \'\',\'tags\' => \'\',\'mode\' => \'1\',\'speed_in1\' => 20000000,\'period\' => 2592000,\'speed_in2\' => \'\',\'min_traf\' => \'\',\'speed_out2\' => \'\',\'speed_out4\' => \'\',\'speed_out1\' => 20000000,\'speed_out3\' => \'\',\'wait_pos_balance\' => \'1\'};', 'title' => 'UNLIM 20', 'no_renew' => '0', 'description' => '', 'grp_list' => ',,', 'next_service_id' => '6', 'tags' => ',inet,speed,start_traf=82876996970,', 'tm_start' => '1486733001', 'price' => '99', 'tm_end' => '1489152201', 'id' => '175', 'uid' => '26', 'pay_id' => '556', 'category' => '', 'module' => 'inet_unlim' } ], Услуга которая создана после обновления (все нормально отображается) 'services' => [ { 'tm_start' => '1485436386', 'auto_renew' => '1', 'id' => '140', 'no_renew' => '0', 'description' => 'Тарифный план - Оптимальный.', 'grp_list' => ',2,', 'param' => '$VAR1 = {\'script\' => \'\',\'speed_in2\' => \'\',\'min_traf\' => \'\',\'period\' => 2592000,\'speed_in3\' => \'\',\'speed_out1\' => 61000000,\'speed_out3\' => \'\',\'wait_pos_balance\' => \'1\',\'speed_out4\' => \'\',\'speed_in1\' => 61000000,\'mode\' => \'1\',\'tags\' => \'\',\'speed_in4\' => \'\',\'speed_out2\' => \'\'};', 'uid' => '34', 'tags' => ',inet,speed,start_traf=66386,', 'next_service_id' => '10', 'title' => 'Оптимальный', 'price' => '200', 'service_id' => '11', 'pay_id' => '461', 'category' => '', 'module' => 'inet_unlim', 'tm_end' => '1488114786' }
|
|
|
9
|
Главная категория / Nodeny Plus / После обновления до rev. 440
|
: 11 Февраля 2017, 15:46:25
|
Доброго времени суток! После обновления Nodeny+ до rev. 440 пропала кнопка управление услугами. Сам блок отображается, кнопки нет. В /usr/local/nodeny/web/tmpl/user/main.html все включено: {% if services %} <p class='big'>{{ lang.Подключены_услуги }}:</p> {% for s in services %} <div class='info_block'> {{ s.human_time }}: {{ s.title }} {% if s.change_url %}<p><a href='{{ s.change_link }}'>{{ lang.Управление_услугой }}</a></p>{% endif %} {% if s.when_end %}<p>{{ s.when_end }}</p>{% endif %} {% if s.next_service %}<p>{{ s.next_service }}</p>{% endif %} </div> {% endfor %} {% endif %} Обновил тестовый сервер - там на существующих услугах перестал отображаться блок полностью. Если создать новую услугу и подключить ее клиенту все нормально. На основном сервере даже при создании и подключении новой услуги ничего не меняется. Подскажите куда копать?
|
|
|
13
|
Главная категория / Nodeny Plus / Re: После установки Nodeny+ есть пару вопросов.
|
: 15 Апреля 2016, 15:24:23
|
Скрипт запущен: ps -ax | grep no 6665 0 S 108:48,07 perl /usr/local/nodeny/nokernel.pl -d 6668 0 S 0:20,45 perl /usr/local/nodeny/noserver.pl -d 7982 0 S+ 0:00,00 grep no
Включаю клиента, попадаю на заглушку ввожу логин, пароль: tail -f /usr/local/nodeny/logs/dhcp.events.log 15.04.2016 15:56:50 [commit] ip=172.16.0.2, mac=8:0:27:f7:c0:17, mac_ok=080027f7c017 | Необходима регистрация мака 15.04.2016 15:56:50 [commit] ip=172.16.0.2, mac=8:0:27:f7:c0:17, mac_ok=080027f7c017 | Необходима регистрация мака
Пробую открыть любой ресурс, попадаю на заглушку: Доступ в интернет открыт. В адресной строке введите нужный вам сайт
Клиент светится в авторизированных в веб интерфейсе, в табличке привязка есть: mysql> SELECT *, INET_NTOA(ip) FROM mac_uid; +----+--------------+------------+-----+------------+------------+-------------+------------+---------------+ | id | mac | ip | uid | time | device_mac | device_port | oneconnect | INET_NTOA(ip) | +----+--------------+------------+-----+------------+------------+-------------+------------+---------------+ | 8 | 08002715a2de | 0 | 0 | 1460675886 | | 0 | 0 | 0.0.0.0 | | 55 | 080027f7c017 | 2886729730 | 3 | 1460725010 | | 0 | 0 | 172.16.0.2 | +----+--------------+------------+-----+------------+------------+-------------+------------+---------------+ 2 rows in set (0,00 sec)
Пайпы на клиента поднимаются: ipfw pipe show 01016: 20.000 Mbit/s 0 ms burst 0 q132088 50 sl. 0 flows (1 buckets) sched 66552 weight 0 lmax 0 pri 0 droptail sched 66552 type FIFO flags 0x0 0 buckets 0 active 01011: 20.000 Mbit/s 0 ms burst 0 q132083 50 sl. 0 flows (1 buckets) sched 66547 weight 0 lmax 0 pri 0 droptail sched 66547 type FIFO flags 0x0 0 buckets 0 active
Если дернуть клиента: 15.04.2016 16:09:51 [commit] ip=172.16.0.2, mac=8:0:27:f7:c0:17, mac_ok=080027f7c017 | Ok 15.04.2016 16:09:51 [commit] ip=172.16.0.2, mac=8:0:27:f7:c0:17, mac_ok=080027f7c017 | Ok pf поднят: ext_if = "igb0" set limit states 128000 set optimization aggressive nat pass on $ext_if from {10.252.252.0/29 172.16.0.1/20 192.168.11.0/24} to any -> ($ext_if)
ipfw show 00050 596 42897 allow tcp from any to me dst-port 65443 00051 355 44209 allow tcp from me 65443 to any 00052 8463 1005647 allow tcp from any to me dst-port 4444 00053 6633 1312467 allow tcp from me 4444 to any 00054 0 0 allow tcp from any to me dst-port 4391 00055 0 0 allow tcp from me 4391 to any 00056 857 49328 allow tcp from any to me dst-port 4392 00057 771 230714 allow tcp from me 4392 to any 00058 12897 733061 allow tcp from any to me dst-port 4393 00059 17520 7477906 allow tcp from me 4393 to any 00110 1533 115162 allow ip from any to any via lo0 00120 7510 1532578 skipto 1000 ip from me to any 00130 0 0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17 00160 7188 1421164 skipto 2000 ip from any to me 00200 219 83122 skipto 500 ip from any to any via igb0 00300 4660 860707 skipto 4500 ip from any to any in 00400 0 0 skipto 450 ip from any to any recv igb0 00420 164 31690 divert 1 ip from any to any 00450 162 31502 divert 2 ip from any to any 00490 162 31502 allow ip from any to any 00500 219 83122 skipto 32500 ip from any to any in 00510 0 0 divert 1 ip from any to any 00540 0 0 allow ip from any to any 01000 3 386 allow udp from any 53,7723 to any 01010 12461 2182462 allow tcp from any to any setup keep-state 01020 563 145935 allow udp from any to any keep-state 01100 776 522304 allow ip from any to any 02000 0 0 check-state 02010 9 761 allow icmp from any to any 02020 731 93220 allow tcp from any to any dst-port 22,80,443,5006 02030 0 0 allow tcp from table(101) to any dst-port 3306 02050 151 8499 deny ip from any to any via igb0 02060 3 175 allow udp from any to any dst-port 53,7723 02100 0 0 deny ip from any to any 04500 0 0 allow ip from any to table(100) 05000 43 6499 skipto 18502 ip from table(21) to table(11) 05001 0 0 allow ip from table(41) to table(11) 18500 270 26253 fwd 127.0.0.1,8080 tcp from any to any dst-port 80 18501 4262 817125 deny ip from any to any 18502 43 6499 pipe tablearg ip from table(21) to any 32000 0 0 deny ip from any to any 32490 85 10830 deny ip from any to any 32500 0 0 allow ip from table(100) to any 33000 0 0 skipto 46501 ip from table(11) to table(31) 33001 0 0 allow ip from table(11) to table(41) 46500 212 81186 deny ip from any to any 46501 0 0 pipe tablearg ip from any to table(31) 60000 0 0 deny ip from any to any 65535 24 3719 deny ip from any to any
|
|
|
14
|
Главная категория / Nodeny Plus / Re: После установки Nodeny+ есть пару вопросов.
|
: 15 Апреля 2016, 01:00:11
|
Доброго времени суток! Биллинг свежеустановленный rev. 400 с читой базой, авторизация ip+mac. Тестовый клиент авторизируется, но при попытке зайти на любой сайт получаю заглушку - Доступ в интернет открыт. В адресной строке введите нужный вам сайт. Пинги на внешние ресурсы не проходят. Подскажите пожалуйста в какую сторону копать.
|
|
|
|