LINUX.ORG.RU
ФорумAdmin

Большие потери пакетов

 , ,


1

2

Здравствуйте уважаемое сообщество!
В сетях я не особо силен, по этому прошу Вас помощи.
Имеется Ubuntu 12.04.5 LTS, на нем астериск, сервер в инет выходит через VPN (l2tp ppp0), никаким клиентам NAT не отдает, т.е инет на нем исключительно в собственных целях.
В некоторых случаях при звонках начали появляться заикания, «дыры» в речи итд итп. Решил продиагностировать ppp0 соединение путем пингования большими пакетами, (ping 8.8.8.8 -l 1000) потери около 50%, ну думаю проблема в интернет соединении, да не тут то было:
Пингую 127.0.0.1

root@asterisk:~# ping 127.0.0.1 -l 1000
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.103 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_req=4 ttl=64 time=0.032 ms
64 bytes from 127.0.0.1: icmp_req=5 ttl=64 time=0.034 ms
64 bytes from 127.0.0.1: icmp_req=6 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_req=7 ttl=64 time=0.026 ms
64 bytes from 127.0.0.1: icmp_req=8 ttl=64 time=0.025 ms
64 bytes from 127.0.0.1: icmp_req=9 ttl=64 time=0.026 ms
64 bytes from 127.0.0.1: icmp_req=10 ttl=64 time=0.026 ms
[b]Пакеты идут по порядку[/b]
64 bytes from 127.0.0.1: icmp_req=464 ttl=64 time=0.025 ms
64 bytes from 127.0.0.1: icmp_req=465 ttl=64 time=0.025 ms
64 bytes from 127.0.0.1: icmp_req=466 ttl=64 time=0.025 ms
[b] После 466 пакета начинает отчислять с 1001 [/b]
64 bytes from 127.0.0.1: icmp_req=1001 ttl=64 time=0.049 ms
64 bytes from 127.0.0.1: icmp_req=1002 ttl=64 time=0.049 ms
--- 127.0.0.1 ping statistics ---
1002 packets transmitted, 468 received, 53% packet loss, time 2039ms
rtt min/avg/max/mdev = 0.024/0.027/0.103/0.008 ms, pipe 1000
root@asterisk:~#


Пингую сам себя по адресу в локалке с указанием интерфейса

root@asterisk:~# ping 192.168.55.216 -I eth0 -l 1000
PING 192.168.55.216 (192.168.55.216) from 192.168.55.216 eth0: 56(84) bytes of data.
64 bytes from 192.168.55.216: icmp_req=1 ttl=64 time=0.089 ms
64 bytes from 192.168.55.216: icmp_req=2 ttl=64 time=0.028 ms
64 bytes from 192.168.55.216: icmp_req=3 ttl=64 time=0.027 ms
64 bytes from 192.168.55.216: icmp_req=4 ttl=64 time=0.032 ms
64 bytes from 192.168.55.216: icmp_req=5 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=6 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=7 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=8 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=9 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=10 ttl=64 time=0.025 ms
[b]Пакеты идут по порядку[/b]
64 bytes from 192.168.55.216: icmp_req=464 ttl=64 time=0.029 ms
64 bytes from 192.168.55.216: icmp_req=465 ttl=64 time=0.026 ms
64 bytes from 192.168.55.216: icmp_req=466 ttl=64 time=0.026 ms
[b] После 466 пакета начинает отчислять с 1001 [/b]
64 bytes from 192.168.55.216: icmp_req=1001 ttl=64 time=0.054 ms
64 bytes from 192.168.55.216: icmp_req=1002 ttl=64 time=0.088 ms
--- 192.168.55.216 ping statistics ---
1002 packets transmitted, 468 received, 53% packet loss, time 2038ms
rtt min/avg/max/mdev = 0.025/0.027/0.089/0.005 ms, pipe 1000
root@asterisk:~#


Нормально, что такие потери на локалхост?


Ответ на: комментарий от Radjah

Отваливания сети в dmesg нету.
З.Ы Проверил тока-что на еще одной убунте 14.04 в этой же локалке, пинг большими пакетами на локалхост выдает те же результаты.
Проверил на ноуте под дебианом 8, те же результаты, даже при отключеных всех сетевухах.
Проверил на другом дебиане, который дома, проблемы нету.
Проверил на той машине описаной в 1м посте, в локалку на любые другие машины пинг -l 1000 проходит без потерь, если в инет например на 8.8.8.8, то потери около 50%

CeMKa
() автор топика

man ping

-l preload      If preload is specified, ping sends that many packets not waiting for reply.  
                Only the super-user may select preload more than 3.
-s packetsize   Specifies the number of data bytes to be sent.  The default is 56, which translates into 
                64 ICMP data bytes when combined with the 8 bytes of ICMP header data.
NeOlip ★★
()
Ответ на: комментарий от NeOlip

Божечки, какой же я кхэм... Олень...
Смотрю в книгу, вижу фигу называется.
Благодарю Вас уважаемый, проблема в моей невнимательности и виндузятности. Большие пакеты по ppp0 проходят нормально.

CeMKa
() автор топика

Ты попутал опции пинга с виндовым?

когда я хочу проверить сеть в линуксе максимальным размером пакета я делаю так:

ping 172.16.1.100 -s 65000 -c 1000

А если со станции пользователей с винды так:

ping 172.16.1.100 -l 65000 -n 1000

в локалке потери должны быть Нулевыми

alex_sim ★★★★
()

В некоторых случаях при звонках начали появляться заикания, «дыры» в речи итд итп

Похоже на jitter. То есть, у тебя плавает значение задержки в доставке пакетов. Размер пакетов тут, скорее всего, не при чём.

Попробуй померить задержки на канале. Подробнее тут и тут

CaveRat ★★
()

rtt min/avg/max/mdev = 0.024/0.027/0.103/0.008 ms

rtt min/avg/max/mdev = 0.025/0.027/0.089/0.005 ms

Собственно, оно. Большой разлет rtt (round trip time) говорит о плавающей задержке, которая называется джиттер и гробит голосовой трафик.

Посмотри использование RX/TX, в принципе, можно их даже уменьшить. АФАИК, для голоса лучше потери, чем джиттер.

CaveRat ★★
()
Ответ на: комментарий от darkenshvein

PING 127.0.0.1 (127.0.0.1)

rtt min/avg/max/mdev = 0.024/0.027/0.103/0.008 ms

роутер то перезагружал?

Ты тему-то читал? Если у него на 127.0.0.1 джиттер, то маршрутизатор явно не при делах.

CaveRat ★★
()
Ответ на: комментарий от CaveRat

хых, проверил у себя:
64 bytes from 127.0.0.1: icmp_seq=554 ttl=64 time=0.003 ms
64 bytes from 127.0.0.1: icmp_seq=555 ttl=64 time=0.004 ms
64 bytes from 127.0.0.1: icmp_seq=1001 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1002 ttl=64 time=0.031 ms
64 bytes from 127.0.0.1: icmp_seq=1003 ttl=64 time=0.033 ms
64 bytes from 127.0.0.1: icmp_seq=1004 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=1005 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1006 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=1007 ttl=64 time=0.030 ms

сначала быстро шло, потом как у ТС

darkenshvein ★★★★★
()
Ответ на: комментарий от CaveRat

Померял:
Замер через инет, результаты с сервера iperf

root@debian:/# iperf -su
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  160 KByte (default)
------------------------------------------------------------
[  4] local 91.23.226.8 port 5001 connected with 195.24.96.222 port 43201
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  4]  0.0-60.0 sec  7.50 MBytes  1.05 Mbits/sec   0.082 ms    0/ 5351 (0%)
[  5] local 91.23.226.8 port 5001 connected with 195.24.96.222 port 48483
[  5]  0.0-60.0 sec  7.50 MBytes  1.05 Mbits/sec   0.147 ms    0/ 5351 (0%)
Замер внутри локалки, результат так же с сервера
root@zx:~# iperf -su
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  160 KByte (default)
------------------------------------------------------------
[  3] local 192.168.55.9 port 5001 connected with 192.168.55.216 port 38752
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-59.9 sec  7.50 MBytes  1.05 Mbits/sec   0.022 ms    0/ 5351 (0%)
[  4] local 192.168.55.9 port 5001 connected with 192.168.55.216 port 55599
[  4]  0.0-59.9 sec  7.50 MBytes  1.05 Mbits/sec   0.024 ms    0/ 5351 (0%)
[  3] local 192.168.55.9 port 5001 connected with 192.168.55.216 port 38408
[  3]  0.0-59.9 sec  7.50 MBytes  1.05 Mbits/sec   0.023 ms    0/ 5351 (0%)

Допустима такая разница джиттера как на замерах по инету, или нет?

Посмотри использование RX/TX, в принципе, можно их даже уменьшить. АФАИК, для голоса лучше потери, чем джиттер.


Уменьшать путем редактирования sysctl?

CeMKa
() автор топика
Ответ на: комментарий от CeMKa

Допустима такая разница джиттера как на замерах по инету, или нет?

Я встречал рекомендацию по джиттеру в 1-2% от задержки. Задержка = rtt/2, в твоем случае берем максимальную из топика - 0.1/2 = 0.05мс. А джиттер - 0.15. Очевидно, это не есть гуд. Внутри локалки у тебя всё в норме, rx/tx тут не при чём.

Как у тебя сервак в инет смотрит?

CaveRat ★★
()
Ответ на: комментарий от CaveRat

Сервак в инет смотрит не совсем «стандартно». Подключен к локалке с инетом без указания маршрута по умолчанию, статикой прописан маршрут до VPN сервера в дата центре через гейт этой самой локалки. Далее сервер звонит по l2tp в датацентр на виртуалку с микротиком и поднимает тунель с белым адресом и маршрутом по умолчанию в этот тунель. Сделано это для того, чтоб Астер всегда имел один внешний IP не зависимо от того, через какой канал (резерв или основа) работает офис. Связь с виртуалкой в ДЦ по городским сетям (100мбит/с, пинг до 2-3мс)

CeMKa
() автор топика
Ответ на: комментарий от CeMKa

Я думаю, что проблемы будут между asterisk и mikrotik. Попробуй там померить задержку и джиттер.

В ЦОДе какая виртуализация? vmWare? У vmWare виртуальная сеть работает на магии хаоса и пакеты передаются совершенно дикими путями. Это, в принципе, лечится биндингом интерфейса ВМ прямо к физическому интерфейсу, но это не всегда возможно.

CaveRat ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.