Что то типа путевых записок, и размышлений об жизни, ну и о FreeBSD конечно, иногда какие нибудь новости и что то типа переводов.

15.09.2010

What is MTR?

Мне как то не так уж и часто приходится мониторить состояние соединения до какого либо хоста, чаще всего мне достаточно показаний простого ping'а, ну или traceroute, если уж захотелось поэстетствовать. А тут больше по работе посоветовали посмотреть программку MTR, которая на редкость любопытна, и вдобавок вроде мало описана по русски.
Итак, MTR по заявлению в man, это утилита объединяющая в себе возможности traceroute и ping. Надо добавить что вдобавок она даёт возможность наблюдать их показания в динамике, во вполне юзерфрендли интерфейсах. Тоесть в принципе ничего нового, но если привыкнуть то пожалуй можно извлечь полезную информацию.
Во FreeBSD, как это не странно, устанавливается из порта net/mtr, что немного неприятно, почему то мантейнер пренебрег менюшкой выбора опций, и по дефолту ставится Х'овый интерфейс и используется IPv6, хотя судя по Makefile, при нужных ключах оно легко отключается.
В одном из коментариев к комитам попалась интересная строка
- Welcome X.org 7.2 \o/.
О работе самой программы писать особо нечего, ну разве что немного лирики и скриншотов для любопытных, и тех кому лень было в ман глядеть
Так выглядит графическая GTK "морда", которая и запускается по дефолту если у вас есть Х'ы, как видно она хоть и похорошела со времен официального скриншота, но особого удобства не добавилось, из неё можно задать только испытуемый адрес и интервал опроса, кстати нашел интересную багу/фичу, если поставить паузу и поменять интервал, то она сразу же снимается, а кнопка паузы уже не работает, до перезапуска :)
У програмы есть, по моему более удобный и функциональный интерфейс --curses, который в работе выглядит вот так

> mtr -a 192.0.2.1 www.freebsd.org
My traceroute  [v0.80]
example.org (0.0.0.0)                                         Tue Sep 14 23:24:46 2010
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                           Packets               Pings
 Host                                               Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 74.86.115.1-static.reverse.softlayer.com        0.0%    14    0.3   4.9   0.2  48.5  13.0
 2. po103.dar01.sr01.dal01.networklayer.com         0.0%    14    3.4   4.6   0.3  37.9  10.2
 3. po8.bbr01.eq01.dal01.networklayer.com           0.0%    14    9.3   7.9   0.3  55.8  16.7
 4. exchange-cust2.da1.equinix.net                  0.0%    14    0.8   8.1   0.5  52.8  16.8
 5. ae-5.pat2.pao.yahoo.com                         0.0%    14   55.5  57.7  52.7  85.1  10.3
 6. ae-0-d151.msr2.sp1.yahoo.com                    0.0%    13   59.3  61.7  53.2 110.1  16.5
    ae-0-d141.msr1.sp1.yahoo.com                                                         
    ae-1-d141.msr1.sp1.yahoo.com                                                         
    ae-1-d151.msr2.sp1.yahoo.com
 7. gi-1-39.bas-b2.sp1.yahoo.com                    0.0%    13   53.3  57.4  53.3 104.3  14.1
    gi-1-36.bas-b1.sp1.yahoo.com                                                         
    gi-1-33.bas-b2.sp1.yahoo.com                                                             
    gi-1-38.bas-b2.sp1.yahoo.com
 8. www.freebsd.org                                 0.0%    13   53.7  56.3  53.1  76.8   7.4

причём хитрые yahoo'вские шлюзы вначале показываются одним хостом, а со временем накапливаются, то есть при старте картинка выглядит так, вернее это первый проход, строчки отрисовываются последовательно

My traceroute  [v0.80]
example.org (0.0.0.0)                                         Tue Sep 14 23:24:46 2010
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                         Packets               Pings
 Host                                               Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 74.86.115.1-static.reverse.softlayer.com        0.0%    1     0.3   4.9   0.2  48.5  13.0
 2. po103.dar01.sr01.dal01.networklayer.com         0.0%    1     3.4   4.6   0.3  37.9  10.2
 3. po8.bbr01.eq01.dal01.networklayer.com           0.0%    1     9.3   7.9   0.3  55.8  16.7
 4. exchange-cust2.da1.equinix.net                  0.0%    1     0.8   8.1   0.5  52.8  16.8
 5. ae-5.pat2.pao.yahoo.com                         0.0%    1    55.5  57.7  52.7  85.1  10.3
 6. ae-0-d151.msr2.sp1.yahoo.com                    0.0%    1    59.3  61.7  53.2 110.1  16.5
 7. gi-1-39.bas-b2.sp1.yahoo.com                    0.0%    1    53.3  57.4  53.3 104.3  14.1
 8. www.freebsd.org                                 0.0%    1    53.7  56.3  53.1  76.8   7.4

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

> mtr -a 192.0.2.1 -o "LSD BA" www.freebsd.org
example.org (0.0.0.0)                                         Wed Sep 15 00:12:05 2010
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                               Packets               Pings
 Host                                                      Loss%   Snt Drop   Best   Avg StDev
 1. 74.86.115.1-static.reverse.softlayer.com               0.0%   105    0    0.2   3.9  14.2
 2. po103.dar01.sr01.dal01.networklayer.com                0.0%   105    0    0.3   8.7  30.4
 3. po8.bbr01.eq01.dal01.networklayer.com                  0.0%   105    0    0.3   9.7  35.7
 4. exchange-cust2.da1.equinix.net                         0.0%   104    0    0.4   6.1  21.7
 5. ae-5.pat2.pao.yahoo.com                                0.0%   104    0   52.5  58.8  15.8
 6. ae-0-d151.msr2.sp1.yahoo.com                           0.0%   104    0   53.0  58.2  14.9
    ae-1-d151.msr2.sp1.yahoo.com                                                             
    ae-1-d141.msr1.sp1.yahoo.com                                                             
    ae-0-d141.msr1.sp1.yahoo.com
 7. gi-1-33.bas-b2.sp1.yahoo.com                           0.0%   104    0   53.1  56.6   8.2
    gi-1-36.bas-b1.sp1.yahoo.com                                                             
    gi-1-38.bas-b2.sp1.yahoo.com                                                             
    gi-1-39.bas-b2.sp1.yahoo.com
 8. www.freebsd.org                                        0.0%   104    0   53.1  56.3   9.9

Так же в этом режиме есть разные способы отображения, например вот такой (да при изменении ширины окна на нем изменяется количество pings)
Но что всё это значит я пока не очень понял :)

Ну если кратенько то пожалуй и всё, хотя пожалуй напишу про пару любопытных ключей и применений.
-a как не странно IP адрес(с которого шлется запрос), например на VDS-ке без него тупо не работало, видимо особенности сетевого стека.
-u использовать ICPM пакеты, аккуратнее для них часто устанавливают низший приоритет, и они "теряются"

Остальное пожалуй лучше посмотреть в документации, ещё пожалуй было бы любопытно глянуть как применяются режимы raw и отчетов, но тут уже скорее к более компетентным товарищам которые смогут красиво рассказать как это анализировать, я тут не очень силен.

8 комментариев:

  1. Самое классное -- это колонка Loss. По ней проще всего можно найти, на каком участке потери пакетов.

    ОтветитьУдалить
  2. Ну в принципе да, хотя вот те другие режимы отображения в curses по моему тоже могут быть полезны, надо поискать будет что там и нафига.

    ОтветитьУдалить
  3. Отличная штука! Побежал пробовать... ;)

    ОтветитьУдалить
  4. Ага, хорошая программа, кстати говоря есть и порт под Windows (расскажите о нём своим знакомым виндузятникам :), http://winmtr.sf.net/

    По поводу указания IP-адреса ключом -a, у меня на двух VPS'ках работает и без этого.

    ОтветитьУдалить
  5. Вау йе(Win) кто то ещё пользуется? :)

    Ну я же говорю что может от технологии зависит, у меня то это джейл, с 2-мя IP'шниками, так что не мудрено. На ноуте тоже без -a нормально работало.

    ОтветитьУдалить
  6. Виндовую версию mtr я таскал с собой для диагностики сетей, когда админом работал, вместе с другими полезными сетевыми тулзами :)
    Вообще же mtr - штука очень полезная. Пожалуй, напишу у себя пост про те сетевые утилиты которыми часто пользуюсь, глядишь и пригодится кому. Спасибо за толчок :)

    ОтветитьУдалить
  7. О давай, особенно любопытно о каких нибудь реально полезных применениях, ибо ключи и в мане прочесть недолго, а вот как с ними работать, и толковать, все обычно ленятся, хотя оно и понятно, часто применение даже одного ключа тянет на хорошую статью, со всякими теориями :)

    ОтветитьУдалить
  8. Да, замечательная утилитка, уже с пол-года как пользуюсь у себя в генту :)

    ОтветитьУдалить

Здесь можно записать свои мысли о посте :)
Если ваш ответ не появился сразу, не паникуйте, тут работает спамоловка, и вероятно вы угодили в неё, так как были анонимом или в вашем посте ссылка, ну или вас не любит google.
Я проснусь и одобрю комент ;)