Здравствуйте уважаемые.Столкнулся со странным поведением cisco в ответ на запросы по rsh.
Имеются маршрутизаторы cisco 2951 (одинаковые по конфигурации и IOS) и сервер под FreeBSD. На цисках настроен доступ по rsh с Free. Есть скрипты, которые снимают статистику по счетчикам и температуру для mrtg по cron-у. Все настроено, все работает за одним исключением - бессистемно при отработке скриптов для одного из маршрутизаторов данные в файлы не пишутся. Проявляется следующим образом:
log mrtg:
1462481400 40 0 41 0
1462481100 41 0 41 0
1462480800 0 0 0 0
1462480500 0 0 0 0
1462480200 41 0 41 0
1462479900 41 0 41 0
1462479600 0 0 0 0
1462479300 40 0 41 0
1462479000 40 0 41 0Т. е. во время 1462480800, 1462480500, 1462479600 скрипт отработал, но ничего в файл не записалось.
Сбор данных для mrtg по snmp проходит без проблем.
Сбор статистики ip accounting:
Fri May 6 00:01:00 MAGT 2016
Source Destination Packets Bytes
192.168.3.250 3.3.3.250 21858 1136616
3.3.3.251 192.168.3.250 33203 42138192
192.168.3.250 3.3.3.251 18558 965016
1.1.1.50 192.168.3.250 28745 39960198
192.168.3.250 1.1.1.50 24148 1255696
192.168.197.9 192.168.8.103 60 8220
1.1.1.51 192.168.3.250 28565 39773898
192.168.3.250 1.1.1.51 22146 1151592
1.1.1.52 192.168.3.250 31627 42709735
192.168.3.250 1.1.1.52 17481 909012
192.168.3.148 1.1.1.2 12 9666Accounting data age is 5
Fri May 6 00:06:00 MAGT 2016
Fri May 6 00:11:01 MAGT 2016Source Destination Packets Bytes
192.168.3.250 3.3.3.250 21674 1127048
3.3.3.251 192.168.3.250 33546 42466934
1.1.1.50 192.168.3.250 29393 40774453
192.168.3.250 1.1.1.50 23939 1244828
1.1.1.51 192.168.3.250 29236 40552965
192.168.3.250 1.1.1.51 21930 1140360
192.168.3.250 1.1.1.52 17656 918112
192.168.3.148 1.1.1.2 12 9666Опять же в 00:06:00 скрипт отработал, но никаких данных в файл не свалилось. Это происходит бессистемно, иногда по 2-3 раза подряд. Переполнения буферов нет, т. к. "ip accounting-threshold 100000", с памятью тоже все прекрасно
При этом если тут же запустить скрипт руками, в файлы данные записываются и по mrtg и по статистике.
Обратил внимание на одну странную особенность: те же самые скрипты работают без сбоев на другом маршрутизаторе. Единственное отличие маршрутизаторов друг от друга - стоят они на разном расстоянии от сервера. Ping до Cisco, на котором происходят пропадания в среднем 0.214 мс, до второго, с которым проблем нет - 0.996 мс.
Гугление выдало пару подобных случаев без последующего решения проблемы.
Для справки настройки cisco, crontab и скрипты.
Cisco (все ненужное убрано):
version 15.2
!
hostname gw
!
ip domain name my_domen.ru
ip accounting-threshold 100000
!
no ip rcmd domain-lookup
ip rcmd rsh-enable
ip rcmd remote-host root 192.168.3.6 root enable
ip rcmd remote-host stat 192.168.3.6 stat enable
!
interface GigabitEthernet0/1
ip address xxx.xxx.xxx.xxx 255.255.255.252
ip accounting output-packets
!
interface GigabitEthernet0/2
ip address 192.168.3.1 255.255.255.0
ip accounting output-packetscrontab:
# Cisco account
#
1-56/5 * * * * root sh /usr/local/bin/script/acc
# MRTG
#
*/5 * * * * root /usr/local/bin/mrtg /usr/local/mrtg/temp/temp.mrtgТ. е. обращение по rsh на cisco идет с разницей в минуту.
Скрипты:
/usr/local/bin/script/acc:
D=`date +%Y%m%d`
/usr/local/bin/script/getacc >> /usr2/stat/cisco/acc.$D/usr/local/bin/script/getacc:
{
echo " `date`"
rsh 192.168.3.1 clear ip accounting
rsh 192.168.3.1 show ip accounting checkpoint
rsh 192.168.3.1 clear ip accounting checkpoint
} | fromdosMRTG /usr/local/mrtg/temp/temp.mrtg:
Target[temp]:`/usr/local/mrtg/temp/temp.sh`
Language: russian
Options[temp]: growright,gauge, noinfo, nopercent, nobanner, nolegend
MaxBytes[temp]: 100
WorkDir: /usr/local/mrtg/temp
Title[temp]: T CPU
Legend1[temp]:
LegendI[temp]: T CPU:
LegendO[temp]:
YLegend[temp]: Temperature
ShortLegend[temp]: C
Unscaled[temp]: dwm
PageTop[temp]: <H1><C>T CPU</C></H1>/usr/local/mrtg/temp/temp.sh:
rsh 192.168.3.1 sho env | grep -i CPU | cut -f4 -d" "
echo 0
echo 0
echo 0
echo
SNMP чем не устраивает?
> SNMP чем не устраивает?Хочу rsh.
"- Жалеете по полтиннику?
- Нет.
- Так почему же?
- Не хочу."(с) Михаил Булгаков. Собачье сеpдце.
В десятке других мест подобная связка cisco-FreeBSD работает без проблем. Должна работать и здесь.
>> SNMP чем не устраивает?
> Хочу rsh.Ну тогда включи дебаг, запусти tcpdump на сервере, сохрани в файл, проанализируй, уходят ди пули и откуда.
>[оверквотинг удален]
> ShortLegend[temp]: C
> Unscaled[temp]: dwm
> PageTop[temp]: <H1><C>T CPU</C></H1>
> /usr/local/mrtg/temp/temp.sh:
> rsh 192.168.3.1 sho env | grep -i CPU | cut -f4 -d"
> "
> echo 0
> echo 0
> echo 0
> echosyslog, насколько я понимаю не собирается с этого маршрутизатора?
>[оверквотинг удален]
>> Unscaled[temp]: dwm
>> PageTop[temp]: <H1><C>T CPU</C></H1>
>> /usr/local/mrtg/temp/temp.sh:
>> rsh 192.168.3.1 sho env | grep -i CPU | cut -f4 -d"
>> "
>> echo 0
>> echo 0
>> echo 0
>> echo
> syslog, насколько я понимаю не собирается с этого маршрутизатора?Собирается, с этим все нормально:
logging facility local4
logging host 192.168.3.6
>[оверквотинг удален]
>>> rsh 192.168.3.1 sho env | grep -i CPU | cut -f4 -d"
>>> "
>>> echo 0
>>> echo 0
>>> echo 0
>>> echo
>> syslog, насколько я понимаю не собирается с этого маршрутизатора?
> Собирается, с этим все нормально:
> logging facility local4
> logging host 192.168.3.6Тогда наверное можно посмотреть какие команды выполнялись на устройстве в эти моменты времени и производилось-ли вообще подключение к устройству.
>> logging facility local4
>> logging host 192.168.3.6
> Тогда наверное можно посмотреть какие команды выполнялись на устройстве в эти моменты
> времени и производилось-ли вообще подключение к устройству.Все ОК :-/ И все, что по крону (20, 25, 30, 30:01 минут) в фал не упало, пусто. Запросы в 35:57 и 36 минут запускались руками - там информация в файл записалась.
May 11 09:20:01 192.168.3.1 4894: 004906: May 11 09:19:51.130: RCMD: [514 <- 192.168.3.6:798] recv 951\0
May 11 09:20:01 192.168.3.1 4895: 004907: May 11 09:19:51.330: RCMD: [514 <- 192.168.3.6:798] recv root\0root\0sho env\0
May 11 09:20:01 192.168.3.1 4896: 004908: May 11 09:19:51.330: RCMD: [514 -> 192.168.3.6:798] send <OK>
May 11 09:25:01 192.168.3.1 4907: 004919: May 11 09:24:50.976: RCMD: [514 <- 192.168.3.6:713] recv 620\0
May 11 09:25:01 192.168.3.1 4908: 004920: May 11 09:24:51.180: RCMD: [514 <- 192.168.3.6:713] recv root\0root\0sho env\0
May 11 09:25:01 192.168.3.1 4909: 004921: May 11 09:24:51.180: RCMD: [514 -> 192.168.3.6:713] send <OK>
May 11 09:30:02 192.168.3.1 4920: 004932: May 11 09:29:51.682: RCMD: [514 <- 192.168.3.6:946] recv 833\0
May 11 09:30:02 192.168.3.1 4921: 004933: May 11 09:29:51.886: RCMD: [514 <- 192.168.3.6:946] recv root\0root\0sho env\0
May 11 09:30:02 192.168.3.1 4922: 004934: May 11 09:29:51.886: RCMD: [514 -> 192.168.3.6:946] send <OK>
May 11 09:35:01 192.168.3.1 4935: 004947: May 11 09:34:51.617: RCMD: [514 <- 192.168.3.6:880] recv 915\0
May 11 09:35:01 192.168.3.1 4936: 004948: May 11 09:34:51.817: RCMD: [514 <- 192.168.3.6:880] recv root\0root\0sho env\0
May 11 09:35:01 192.168.3.1 4937: 004949: May 11 09:34:51.817: RCMD: [514 -> 192.168.3.6:880] send <OK>
May 11 09:35:57 192.168.3.1 4939: 004951: May 11 09:35:46.748: RCMD: [514 <- 192.168.3.6:620] recv 899\0
May 11 09:35:57 192.168.3.1 4940: 004952: May 11 09:35:46.948: RCMD: [514 <- 192.168.3.6:620] recv root\0root\0sho env\0
May 11 09:35:57 192.168.3.1 4941: 004953: May 11 09:35:46.948: RCMD: [514 -> 192.168.3.6:620] send <OK>
May 11 09:36:53 192.168.3.1 4951: 004963: May 11 09:36:43.468: RCMD: [514 <- 192.168.3.6:666] recv 608\0
May 11 09:36:53 192.168.3.1 4952: 004964: May 11 09:36:43.668: RCMD: [514 <- 192.168.3.6:666] recv root\0root\0sho env\0
May 11 09:36:53 192.168.3.1 4953: 004965: May 11 09:36:43.668: RCMD: [514 -> 192.168.3.6:666] send <OK>
>[оверквотинг удален]
> May 11 09:35:57 192.168.3.1 4940: 004952: May 11 09:35:46.948: RCMD: [514 <-
> 192.168.3.6:620] recv root\0root\0sho env\0
> May 11 09:35:57 192.168.3.1 4941: 004953: May 11 09:35:46.948: RCMD: [514 ->
> 192.168.3.6:620] send <OK>
> May 11 09:36:53 192.168.3.1 4951: 004963: May 11 09:36:43.468: RCMD: [514 <-
> 192.168.3.6:666] recv 608\0
> May 11 09:36:53 192.168.3.1 4952: 004964: May 11 09:36:43.668: RCMD: [514 <-
> 192.168.3.6:666] recv root\0root\0sho env\0
> May 11 09:36:53 192.168.3.1 4953: 004965: May 11 09:36:43.668: RCMD: [514 ->
> 192.168.3.6:666] send <OK>Ок. А если перенаправить "сырые" данные в tmp файл - все пишется? Блокировку файла другим процессом в момент записи пока не рассматриваем, но возможен вариант.
Дурацкая идея, но у вас паблик и внутренний интерфейс. Запрос идет на внутренний интерфейс. Значит между mrtg и lan интерфейсом Cisco есть туннель (gre, ipip, ipsec, dmvpn или еще что-то). Попробуйте поставить для rsh source interface, если запрашиваете с внутреннего интерфейса.ip rcmd source-interface <bla-bla-interface0/0>
Попробуйте уйти от rsh на ssh. Expect может помочь в этом.