LINUX.ORG.RU

Сообщения frealy121212

 

GRE Потери пакетов, странное поведение сети

Уважаемые форумчане, подскажите кто и что знает. Есть сервер, условно «А» - основной(source), от которого идут все IP на другие сервера, а так же 15 других(destination ip) условно «1,2,3,4» и тд.

Появилась очень странная проблема, которая не поддаётся никакой логике. Появились потери пакетов, именно на IP которые идут в туннель. Например 155.44.33.22 - находится на сервере «А», по GRE идёт в сервер «1» При пинге 155.44.33.22, есть потери примерно 20%. Между серверами «А» и «1», при прямой проверке связи, вообще всё отлично. Но, при проверке пинга внутри туннеля, по локальному адресу например 192.168.0.50, есть потери, от чего потери идут уже и на внешнем адресе.

Что очень интересно, то если проблема появляется, то только в таком виде:

64 bytes from 155.44.33.22: icmp_seq=215 ttl=51 time=61.221 ms
64 bytes from 155.44.33.22: icmp_seq=216 ttl=51 time=54.311 ms
64 bytes from 155.44.33.22: icmp_seq=217 ttl=51 time=49.040 ms
64 bytes from 155.44.33.22: icmp_seq=218 ttl=51 time=51.325 ms
Request timeout for icmp_seq 219
64 bytes from 155.44.33.22: icmp_seq=220 ttl=51 time=49.756 ms
64 bytes from 155.44.33.22: icmp_seq=221 ttl=51 time=53.280 ms
64 bytes from 155.44.33.22: icmp_seq=222 ttl=51 time=52.730 ms
64 bytes from 155.44.33.22: icmp_seq=223 ttl=51 time=52.830 ms
Request timeout for icmp_seq 224
64 bytes from 155.44.33.22: icmp_seq=225 ttl=51 time=54.453 ms
64 bytes from 155.44.33.22: icmp_seq=226 ttl=51 time=51.656 ms
64 bytes from 155.44.33.22: icmp_seq=227 ttl=51 time=53.333 ms
64 bytes from 155.44.33.22: icmp_seq=228 ttl=51 time=52.741 ms
Request timeout for icmp_seq 229
64 bytes from 155.44.33.22: icmp_seq=230 ttl=51 time=51.533 ms
64 bytes from 155.44.33.22: icmp_seq=231 ttl=51 time=59.256 ms
64 bytes from 155.44.33.22: icmp_seq=232 ttl=51 time=50.136 ms
64 bytes from 155.44.33.22: icmp_seq=233 ttl=51 time=53.572 ms
Request timeout for icmp_seq 234
64 bytes from 155.44.33.22: icmp_seq=235 ttl=51 time=51.787 ms
64 bytes from 155.44.33.22: icmp_seq=236 ttl=51 time=51.866 ms
64 bytes from 155.44.33.22: icmp_seq=237 ttl=51 time=51.229 ms
64 bytes from 155.44.33.22: icmp_seq=238 ttl=51 time=50.872 ms
Request timeout for icmp_seq 239

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

64 bytes from 192.168.0.50: icmp_seq=85 ttl=64 time=7.79 ms
64 bytes from 192.168.0.50: icmp_seq=86 ttl=64 time=7.75 ms
64 bytes from 192.168.0.50: icmp_seq=87 ttl=64 time=7.77 ms
64 bytes from 192.168.0.50: icmp_seq=88 ttl=64 time=7.75 ms
64 bytes from 192.168.0.50: icmp_seq=90 ttl=64 time=7.74 ms
64 bytes from 192.168.0.50: icmp_seq=91 ttl=64 time=7.73 ms
64 bytes from 192.168.0.50: icmp_seq=92 ttl=64 time=7.76 ms
64 bytes from 192.168.0.50: icmp_seq=93 ttl=64 time=7.73 ms
64 bytes from 192.168.0.50: icmp_seq=95 ttl=64 time=7.95 ms
64 bytes from 192.168.0.50: icmp_seq=96 ttl=64 time=7.73 ms
64 bytes from 192.168.0.50: icmp_seq=97 ttl=64 time=7.73 ms
64 bytes from 192.168.0.50: icmp_seq=98 ttl=64 time=7.88 ms
64 bytes from 192.168.0.50: icmp_seq=100 ttl=64 time=7.77 ms
64 bytes from 192.168.0.50: icmp_seq=101 ttl=64 time=7.74 ms
64 bytes from 192.168.0.50: icmp_seq=102 ttl=64 time=7.74 ms
64 bytes from 192.168.0.50: icmp_seq=103 ttl=64 time=7.76 ms
64 bytes from 192.168.0.50: icmp_seq=105 ttl=64 time=7.73 ms
64 bytes from 192.168.0.50: icmp_seq=106 ttl=64 time=7.75 ms
64 bytes from 192.168.0.50: icmp_seq=107 ttl=64 time=7.76 ms

Каждый 5 пакет, потеря. Буфер сетевой карты увеличил до максимальных значений, в dmesg никаких проблем нет от слова совсем. Правила iptables кристально чисты. Что это может быть и что делать?

При этом, проблема частичная, она может не затрагивать часть туннелей, пинг по ним будет без потерь, а потом опять так же их затронуть, начнутся потери на какой-то период, а другие при этом начнут работать без потерь, и так по кругу.

irqbalance стоит, руками в прерывания не лазил, нагрузка 40-50к pps всего, до 100мб\c, обычно 50. Нагрузка на канал, в моменты потери пинга, падает до 20мб\c, из 40-50, т.е грубо говоря в половину, но не полностью.

забыл уточнить, еще есть bridge интерфейс, на сервере крутится несколько виртуалок через proxmox, а так как основной настроен как «inet manual», то и туннель работает через интерфейс vmbr0 Возможна ли проблема здесь?

 

frealy121212
()

proftpd - docker - права на файлы

С наступающим Рождеством!

Пару дней назад решил изучить и перейти на docker контейнеры, всё вроде бы отлично получилось, но возникла одна проблема, это права доступа к файлам. Я не совсем понял до конца как это работает.

docker run я выполняю через sudo -u user (так требуется)

Получается в docker контейнере есть например пользователь с uid 1000 Всё что там запускается, выполняется от него, файлы и папки которые создаются от работы софта, так же от этого юзера. Но, папки я монтировал в контейнер - локальные, которые просто лежат на хостовом сервере в /home/docker и имеют своего ФТП юзера, соответственно с правами юзера.

Получается палка двух концов, либо ФТП юзер ничего менять не сможет, либо docker контейнер даже не запустится в виду отсутствия доступа к папке /home/docker

Пока решением было установить права 777, да действительно работает всё, но опять же, новые файлы которые docker создаёт внутри контейнера, уже под другим юзером в хост сервере (uid 1000). Таким образом права пропадают к новым файлам и папкам, их нужно опять по новому прописывать, ну это костыль редкий.

Собственно образовался вопрос, возможно дать всем папкам владельца, например dock с uid 1000, таким образом он будет совпадать в юзером в контейнерах, а в proftpd создать виртуальных юзеров которые будут работать под этим юзером и редактировать с его правами все файлы, каждый в своей папке?

Если да, как это сделать?

 

frealy121212
()

GRE туннель - OpenVZ virtual network

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

По порядку, есть сервер А, есть сервер Б.

У сервера А ip адрес - 8.8.8.8 и дополнительный для туннеля 9.9.9.9

У сервера Б ip адрес - 10.10.10.10

Debian 7 везде.

С сервера А на сервер Б, проксируется IP адрес 9.9.9.9 по GRE туннелю, есть интерфейс tun и локальный адрес в туннеле 192.168.0.40 Туннель рабочий и по обращению к 9.9.9.9:22 без всяких правил стучит на сервер Б, всё правильно.

На сервере Б есть контейнеры openvz, с локальным адресом 192.168.3.2, нужно завернуть весь исходящий трафик, через 9.9.9.9, у меня не получается, просто нет сети, работает только через 10.10.10.10(реальный ип)

Так же и со входящим, нужно например 9.9.9.9:2525 что бы вело на локальный адрес openvz 192.168.3.2

Такая махинация работает с обычным адресом сервера 10.10.10.10

iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to 10.10.10.10

iptables -t nat -A PREROUTING -p tcp -d 10.10.10.10 --dport 2525 -i eth0 -j DNAT --to-destination 192.168.3.2:22

iptables -t nat -A POSTROUTING -s 192.168.3.2 -o eth0 -j SNAT --to 10.10.10.10

Исходящий трафик работает, входящий по порту так же, как сделать тоже самое но для ip с gre туннеля 9.9.9.9 ?

UP есть небольшие здвиги iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o tun0 -j SNAT --to 9.9.9.9

уже даёт доступ к локальному ip туннеля 192.168.0.40, раньше его не было вообще, хотя почему если я указан внешний ип?)

 ,

frealy121212
()

Как убить процесс с условием

Привет. Возник вопроса, как отправить свою нужную команду для завершения процесса, если его нагрузка превысит условие, типо если ram > 200 то if (procram > 200) then и тд всего синтаксиса не знаю, так как не знаю как узнать нагрузка процесса по памяти подобным образом и сделать правильную команду) Прошу помочь.

 

frealy121212
()

iptables u32 payload

Возникла проблема, как зафильтровать трафик по payload через iptables Всё что мне подсказали, так это фильтр через u32 Собственно сам дамп https://img-host.org.ua/images/20170313192638dzd.png

по началу пытался так

iptables -A INPUT -p udp --dport 27529 -m string --string 'statusResponse' --algo bm -m limit --limit 10/s --limit-burst 1 -j ACCEPT

iptables -A INPUT -p udp --dport 27529 -m string --string 'statusResponse' --algo bm -j DROP

не помогло.

пытался так

iptables -t raw -I PREROUTING -m u32 --u32 «0x1c&0xffff0000=0x73746174» -p udp --dport 27529 -j DROP

не помогло.

а вот так

iptables -t raw -D PREROUTING -m u32 --u32 «0x1c&0xffffffff=0xffffffff» -p udp --dport 27529 -j DROP

вообще закрыло доступ к порту))

как всё сделать правильно? я не понимаю как здесь уточнить с каких байтов читать и что читать.

 ,

frealy121212
()

RSS подписка на новые темы