LINUX.ORG.RU
решено ФорумAdmin

Проблема со скоростью маршрутизации


0

1

Дано: [internet]<--->[R]<--->[C] R-роутер C-клиент

На роутере Debian, quagga (bgp full view), аплинки 100,20,10 мегабит, немного DNATа, шейпинг, fprobe-ulogd.

Клиенты в 100 мегабитной сети на физическом интерфейсе, аплинки на vlan-ах.

Проблема обнаружилась при расширении одного аплинка c 20 до 100 мегабит. С роутера закачка с яндекса уверенно разгоняется до 10МБ/сек. При скачивании файла с веб-сервера роутера клиентом тоже. А вот с клиента до яндекса больше 2МБ/сек не хочет. Причём скорость плавает 700-2000КБ/сек.

ULOG убирал. Шейпинг убирал. Policy routing убирал. Не помогает. Причём, при хаотичных манипуляциях с tc (ну как хаотичных, убирал filter и qdisc руками и возвращал скриптом) внезапно ситуация исправилась. Но профилактическая перезагрузка вернула всё на свои, не очень хорошие, места. Снова добиться эффекта не удалось.

Железка - Celeron 3GHz/1.5G/NIC-и самые разные (3com,realtek,Intel,VIA)

Принимаются к рассмотрению любые теории, даже самые дикие. Я уже голову вывихнул.

Заранее спасибо!

Может, у яндекса ограничение? Если есть возможность, поставь на клиенте и на удалённом хосте в инете iperf и тестируй.

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

При скачивании с одного хоста ограничение, а с другого нет?

iperf ставить некуда, второго хоста со сотней+ мегабит нету, к сожалению.

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

Значит, неправильно тебя понял. Я решил, что у тебя скорость исходящего трафика низкая:

А вот с клиента до яндекса больше 2МБ/сек не хочет

Давай тогда список интерфейсов и правила шейпинга. Может, не через тот аплинк трафик уходит? 20 Мбит/c это примерно и есть 2 Мб/с

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

Лишние аплинки отключал в bgp. Скрипт шейпинга выключал и перезагружался. Ну и tcpdump-ом смотрел что куда бежит. Трафик бежит через нужный аплинк.

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

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

> ethtool -S ethN покажи

eth5 - клиентский
eth6 - vlan0098 - аплинк

# c ethtool -S eth5
NIC statistics:
early_rx: 0
tx_buf_mapped: 0
tx_timeouts: 0
rx_lost_in_ring: 0

# ifconfig eth5
eth5 Link encap:Ethernet HWaddr 00:11:95:26:75:47
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.xxx Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fe26:7547/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38542451 errors:0 dropped:0 overruns:0 frame:0
TX packets:46158483 errors:0 dropped:0 overruns:5 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3611613235 (3.3 GiB) TX bytes:908153716 (866.0 MiB)
Interrupt:21 Base address:0xb800

# ethtool -S eth6
NIC statistics:
rx_packets: 47793246
tx_packets: 39218076
rx_bytes: 2010994271
tx_bytes: 3743369521
rx_errors: 0
tx_errors: 0
rx_dropped: 0
tx_dropped: 0
multicast: 0
collisions: 0
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_window_errors: 0
tx_deferred: 0
tx_single_collisions: 0
tx_multi_collisions: 0
tx_flow_control_pause: 0
rx_flow_control_pause: 0
rx_flow_control_unsupported: 0
tx_tco_packets: 0
rx_tco_packets: 0

# ifconfig vlan0098
vlan0098 Link encap:Ethernet HWaddr 00:13:20:8c:b3:fe
inet addr:195.151.217.201 Bcast:195.151.217.203 Mask:255.255.255.252
inet6 addr: fe80::213:20ff:fe8c:b3fe/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19846908 errors:0 dropped:0 overruns:0 frame:0
TX packets:24559118 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1790424265 (1.6 GiB) TX bytes:3909139975 (3.6 GiB)

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

> если на клиенте запустить торрент, он выбирает нужную полосу?

Сейчас попробовал - нет. Разгоняется до 30 мегабит и всё.

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

Вот ещё mpstat для раздумий.

software interrupts не многовато? Может тупо не вывозит аппарат? Но почему тогда каким-то подшаманиванием удалось разоганаться?

13:18:51     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
13:18:52     all    2.97    0.00   13.86    0.00    3.96   22.77    0.00    0.00   56.44
13:18:53     all    2.02    0.00   14.14    0.00    4.04   16.16    0.00    0.00   63.64
13:18:54     all    5.00    0.00   26.00    0.00    6.00   22.00    0.00    0.00   41.00
13:18:55     all    6.86    0.00   17.65    0.98    5.88   27.45    0.00    0.00   41.18
13:18:56     all    5.05    0.00   20.20    0.00    4.04   26.26    0.00    0.00   44.44
13:18:57     all    4.00    0.00   17.00    0.00    4.00   26.00    0.00    0.00   49.00
13:18:58     all    5.00    0.00   21.00    0.00    6.00   26.00    0.00    0.00   42.00
13:18:59     all    4.00    0.00   18.00    0.00    5.00   23.00    0.00    0.00   50.00
13:19:00     all    5.05    0.00   19.19    0.00    3.03   22.22    0.00    0.00   50.51
13:19:01     all    4.95    0.00   22.77    0.00    8.91   19.80    0.00    0.00   43.56
13:19:02     all    6.06    0.00   22.22    0.00    7.07   21.21    0.00    0.00   43.43
13:19:03     all    5.94    0.00   24.75    0.00    5.94   28.71    0.00    0.00   34.65
13:19:04     all    4.00    0.00   20.00    0.00    4.00   25.00    0.00    0.00   47.00
13:19:05     all    9.09    0.00   29.29    0.00    3.03   29.29    0.00    0.00   29.29
13:19:06     all    5.00    0.00   23.00    0.00    7.00   23.00    0.00    0.00   42.00
13:19:07     all    7.92    0.00   20.79    0.00    8.91   31.68    0.00    0.00   30.69
13:19:08     all    5.00    0.00   25.00    0.00    3.00   22.00    0.00    0.00   45.00
13:19:09     all    7.00    0.00   21.00    0.00    4.00   23.00    0.00    0.00   45.00
13:19:10     all    9.00    0.00   18.00    0.00    2.00   25.00    0.00    0.00   46.00
13:19:11     all    5.00    0.00   20.00    2.00    5.00   23.00    0.00    0.00   45.00
13:19:12     all    4.04    0.00   13.13    0.00    3.03   24.24    0.00    0.00   55.56
13:19:13     all    5.94    0.00   16.83    0.00    5.94   24.75    0.00    0.00   46.53
13:19:14     all    5.94    0.00   23.76    0.00    5.94   26.73    0.00    0.00   37.62
13:19:15     all    8.00    0.00   18.00    0.00    5.00   27.00    0.00    0.00   42.00
13:19:16     all    6.06    0.00   22.22    0.00    5.05   29.29    0.00    0.00   37.37
13:19:17     all    5.00    0.00   29.00    1.00    4.00   30.00    0.00    0.00   31.00
13:19:18     all   31.00    0.00   22.00    0.00    7.00   37.00    0.00    0.00    3.00
13:19:19     all   36.36    0.00   21.21    0.00    7.07   35.35    0.00    0.00    0.00
13:19:20     all   37.62    0.00   15.84    0.00    8.91   37.62    0.00    0.00    0.00
Serg_Junior
() автор топика
Ответ на: комментарий от Serg_Junior

Я идиот )

Посыпаю всего себя пеплом.

После перезагрузки поднялся конфиг bgp в котором быстрый аплинк был зажат препендами. Как убрал препенды, так всё и побежало...

router, каюсь, поленился перепроверить...

Всем огромное спасибо за внимание. Обещаю впредь не ковырять роутеры в 2 ночи, высыпаться, и перестать бредить по утрам )

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

а вы точно уверены, что входящий трафик для проблемного клиента ВСЕГДА и ПОЛНОСТЬЮ идет через нужного аплинка?

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

Однако как для соточки мегабит si в самом деле многовато. Либо железо у вас слабое, либо чето там в iptables, tc неоптимально.

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

> а вы точно уверены, что входящий трафик для проблемного клиента ВСЕГДА и ПОЛНОСТЬЮ идет через нужного аплинка?

Конечно нет. Я могу только предполагать на основании настроек и возможностей отказа аплинков и текущей картины связности.

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

> Однако как для соточки мегабит si в самом деле многовато. Либо железо у вас слабое, либо чето там в iptables, tc неоптимально.

Переезд на другую железку в планах, да. SI, думаю, ULOG жрёт. Надо экспериментировать.

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

ну кагбе если трафика дохрена, то лучше считать NetFlow, ИМХО. У меня ULOG славился тем, что безбожно врал(от 10% и выше). NetFlow конечно тоже не панацея, но погрешность, в районе 0,2%-0,5% я готов стерпеть

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

У сенсор какой использовать? У меня и так netflow через fprobe-ulog. С простым fprobe (pcap) было хуже.

У меня точность приличная.
Со счётчиками iptables (общими) и данными от поставщиков трафика расхождение в единицы процентов.

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