Я ищу хороший простой инструмент, работающий в стандартной ОС (Windows или Linux), который я могу использовать для проверки правильности передачи многоадресной рассылки маршрутизатором.
Клиент попросил меня включить многоадресную маршрутизацию на Linux-сервере, выступающем в качестве маршрутизатора, так как их телефонная система требует многоадресной передачи для нескольких функций. Поскольку я физически не нахожусь рядом с клиентом, у меня действительно нет возможности экспериментировать с различными методами настройки многоадресной маршрутизации в Linux. Я могу установить на своем столе маршрутизатор, идентичный тому, который развернут в их сети, но я не знаю никаких хороших простых инструментов, которые я мог бы использовать для генерации или прослушивания многоадресного трафика.
Я нашел один инструмент mulicast: инструмент mcast.exe который является частью пакета ресурсов Windows 2000/2003. Из того, что я прочитал в Интернете, кажется, что mcast.exe не работает через маршрутизатор, а работает только в локальной сети, поэтому мне не кажется, что это полезно для тестирования многоадресной маршрутизации.
Итак, какие инструменты вы используете для проверки правильности настройки многоадресной маршрутизации?
iperf идеально подходит для этого и легко доступен для большинства дистрибутивов Linux и Windows.
Со стороны слушателя:
% iperf -s -u -B 224.1.1.1 -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 224.1.1.1
Joining multicast group 224.1.1.1
Receiving 1470 byte datagrams
UDP buffer size: 110 KByte (default)
------------------------------------------------------------
... и будет ждать ответа от источника. На источнике начните отправку:
% iperf -c 224.1.1.1 -u -T 32 -t 3 -i 1
------------------------------------------------------------
Client connecting to 224.1.1.1, UDP port 5001
Sending 1470 byte datagrams
Setting multicast TTL to 32
UDP buffer size: 110 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.220.20 port 59347 connected with 224.1.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 0.0- 3.0 sec 386 KBytes 1.05 Mbits/sec
[ 3] Sent 269 datagrams
в то же время вы увидите, что слушатель получает трафик:
...
[ 3] local 224.1.1.1 port 5001 connected with 192.168.220.20 port 59347
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 0.035 ms 0/ 89 (0%)
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.015 ms 0/ 89 (0%)
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.025 ms 0/ 89 (0%)
[ 3] 0.0- 3.0 sec 386 KBytes 1.05 Mbits/sec 0.068 ms 0/ 269 (0%)
Указав -T 32
на отправителе, вы устанавливаете TTL на 32, что обеспечит маршрутизацию трафика (при условии, что IGMP, PIM и еще много чего на маршрутизаторах настроены правильно)
Кстати, в последний раз, когда я пытался использовать VLC в этом сценарии, я столкнулся с проблемой, когда VLC игнорировал настройку TTL и всегда передавал пакеты с TTL, установленным на 1. Прочтите отчет об ошибке для обходного пути.
У вас мало опыта многоадресной рассылки в реальном мире, но вы видели mz
?
Description: versatile packet creation and network traffic generation tool
mausezahn (mz) is a fast traffic generator written in C which allows you to
send nearly every possible and impossible packet. It is mainly used to test
VoIP or multicast networks but also for security audits to check whether
your systems are hardened enough for specific attacks.
Mausezahn can be used for example:
.
* as traffic generator (e.g. to stress multicast networks);
* to precisely measure jitter (delay variations) between two hosts
(e.g. for VoIP-SLA verification);
* as didactical tool during a datacom lecture or for lab exercises;
* for penetration testing of firewalls and IDS;
* for DoS attacks on networks (for audit purposes of course);
* to find bugs in network software or appliances;
* for reconnaissance attacks using ping sweeps and port scans;
* to test network behaviour under strange circumstances (stress test,
malformed packets, ...).
Homepage: http://www.perihel.at/sec/mz/
Есть также ssmping
:
Description: check your multicast connectivity
Tools to check whether you can receive Source Specific Multicast (SSM)
or Any Source Multicast (ASM) via either IPv4 or IPv6
.
If a host runs ssmpingd, users on other hosts can use the ssmping client
to test whether they can receive SSM from the host. Another program
called asmping is also provided to check whether can receive ASM.
Homepage: http://www.venaas.no/multicast/ssmping/
Оба устанавливаются на Ubuntu 10.10. Удачи!
Это может быть, а может и не быть полезным, но в прошлом я использовал VLC (из всех вещей) в качестве источника многоадресного видео. Однако в моих случаях использования многоадресным потокам никогда не требовалось выходить за пределы домена L2, поэтому я не могу сказать, будет ли генерируемый им трафик «правильной» многоадресной маршрутизацией.
mcast - это инструмент, который мы используем, чтобы узнать, разрешена ли многоадресная рассылка нашим локальным маршрутизатором. По умолчанию он должен быть выключен.
Вы не хотите, чтобы многоадресные пакеты блуждали по засоренным сетям, где они не нужны.
Вы также можете попробовать эти приложения: VIC и RAT, многоадресное приложение, которое раньше разрабатывалось для MBONE, доступно для Windows XP и UNIX. Он также поддерживает IPv4 и IPv6 Multicast. Вы можете увидеть их на http://mediatools.cs.ucl.ac.uk/nets/mmedia/