При диагностике проблем бывает необходимо записать дамп пакетов на одном или нескольких интерфейсах маршрутизатора для последующего анализа в wireshark.
Средствами CLI маршрутизатора ESR этого сделать невозможно. Но можно сделать в linux-shell. Для этого необходимо:
1. Задать пароль и активировать пользователя techsupport на маршрутизаторе
configure username techsupport password <Пароль пользователя techsupport> exit tech-support login enable end commit confirm
2. Подключиться к маршрутизатору esr по ssh с использованием логина techsupport и ранее заданного пароля.
3. При помощи команды "ip a" оределить системное наименование интерфейсов, на которых необходимо захватывать пакеты
techsupport@esr:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether b6:c0:48:6f:0e:6d brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST> mtu 1518 qdisc noop state DOWN group default qlen 1000 link/ether a8:f9:4b:ab:62:68 brd ff:ff:ff:ff:ff:ff 4: eth1: <BROADCAST,MULTICAST> mtu 1514 qdisc noop state DOWN group default qlen 1000 link/ether a8:f9:4b:ab:62:68 brd ff:ff:ff:ff:ff:ff 5: eth2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1514 qdisc pfifo_fast state UP group default q0 link/ether a8:f9:4b:ab:62:68 brd ff:ff:ff:ff:ff:ff 6: eth3: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1514 qdisc pfifo_fast state UP group default q0 link/ether a8:f9:4b:ab:62:68 brd ff:ff:ff:ff:ff:ff 7: gi1_1@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LOW0 link/ether a8:f9:4b:ab:62:69 brd ff:ff:ff:ff:ff:ff inet 192.168.115.8/20 brd 192.168.127.255 scope global gi1_1 valid_lft forever preferred_lft forever 8: gi1_2@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LOW0 link/ether a8:f9:4b:ab:62:6a brd ff:ff:ff:ff:ff:ff 9: gi1_3@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LOW0 link/ether a8:f9:4b:ab:62:6b brd ff:ff:ff:ff:ff:ff 10: gi1_4@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LO0 link/ether a8:f9:4b:ab:62:6c brd ff:ff:ff:ff:ff:ff 11: gi1_5@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LO0 link/ether a8:f9:4b:ab:62:6d brd ff:ff:ff:ff:ff:ff 12: gi1_6@eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue switchid 00000000 state LO0 link/ether a8:f9:4b:ab:62:6e brd ff:ff:ff:ff:ff:ff 13: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0 14: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1 link/gre 0.0.0.0 brd 0.0.0.0 15: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 16: ip_vti0@NONE: <NOARP> mtu 1364 qdisc noop state DOWN group default qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0 17: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 link/sit 0.0.0.0 brd 0.0.0.0 18: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1 link/tunnel6 :: brd :: 19: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1 link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:000 20: gi1_2.64@gi1_2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN g0 link/ether a8:f9:4b:ab:62:6a brd ff:ff:ff:ff:ff:ff inet 172.16.16.1/30 brd 172.16.16.3 scope global gi1_2.64 valid_lft forever preferred_lft forever 21: vlan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 100 link/ether 5e:2c:79:05:e5:a4 brd ff:ff:ff:ff:ff:ff 22: dvlan: <BROADCAST,NOARP> mtu 1500 qdisc noop master vlan state DOWN group default qlen 1000 link/ether 5e:2c:79:05:e5:a4 brd ff:ff:ff:ff:ff:ff 23: vlan.1@vlan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN grou0 link/ether 5e:2c:79:05:e5:a4 brd ff:ff:ff:ff:ff:ff techsupport@esr:~$
- Для физических интерфейсов, системное имя интерфейса выглядит как gi1_<номер интерфейса>
- Для саб-интерфейсов, системное имя интерфейса выглядит как gi1_<номер интерфейса>.<номер vlan в 16-тиричной форме>
- Для bridge-интерфейсов, системное имя интерфейса выглядит как br<номер bridge в CLI>
4. Запустить захват пакетов на необходимых интерфейсах в файл:
techsupport@esr:~$ sudo tcpdump -i <системное имя интерфейса1> <ключи для фильтрации пакетов1> -w /tmp/<имя файла для дампа1> -C 1M & techsupport@esr:~$ sudo tcpdump -i <системное имя интерфейса2> <ключи для фильтрации пакетов2> -w /tmp/<имя файла для дампа2> -C 1M &
Если/когда система потребует ввода пароля - необходимо ввести пароль пользователя techsupport
Дамп можно записывать как на одном так и на нескольких интерфейсах. Всё зависит от текущей проблемы и необходимости.
Нельзя пренебрегать ключами для фильтрации пакетов т.к. размер файла может оказаться слишком большим и он займет всю память маршрутизатора.
Ключ -C 1M ограничивает размер файла дампа в 1 Мегабайт. Можно использовать другое ограничение или не использовать его вовсе, но следить, чтобы файлы не заняли много места в памяти маршрутизатора
5. Сгенерировать необходимые пакеты или дождаться проявления той или иной проблемы
Это может быть попытка регистрации телефона на SBC или SoftSwitch, совершение телефонного звонка, или пакеты любого другого протокола маршрутизируемые или обрабатываемые маршрутизатором ESR.
6. Остановить захват пакетов в techsupport-ssh-сессии
techsupport@esr:~$ sudo pkill tcpdump
7. Скопировать с маршрутизатора собранные дампы.
7. ver1. по протоколу scp
Для ли linux можно использовать команды:
scp techsupport@<ip-маршрутизатора>:/tmp/<имя файла> /home/<путь для копирования>
Для windows - можно использовать scp-клиент отдельный или интегрированный в другие приложения.
7. ver2. по протоколу tftp
При наличии в сети tftp-сервера, можно с маршрутизатора загрузить на него полученные дампы при помощи команды:
techsupport@esr:~$ tftp <ip-адрес tftp-сервера> -pl /tmp/<имя файла> -r <имя файла>
8. Удалить файлы дампов с маршрутизатора
techsupport@esr:~$ sudo rm /tmp/<имя файла для дампа1> techsupport@esr:~$ sudo rm /tmp/<имя файла для дампа2>
Скопировав в п. 7 файлы можно более удобно обрабатывать на ПК при помощи утилиты wireshark.