URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 1966
[ Назад ]

Исходное сообщение
"Непонятное поведение rsh"

Отправлено install , 06-Май-16 03:11 
  Здравствуйте уважаемые.

  Столкнулся со странным поведением 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                9666

Accounting data age is 5

Fri May  6 00:06:00 MAGT 2016
Fri May  6 00:11:01 MAGT 2016

   Source           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-packets

crontab:

# 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
} | fromdos

MRTG /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


Содержание

Сообщения в этом обсуждении
"Непонятное поведение rsh"
Отправлено ShyLion , 06-Май-16 07:39 
SNMP чем не устраивает?

"Непонятное поведение rsh"
Отправлено install , 06-Май-16 08:49 
> SNMP чем не устраивает?

Хочу rsh.

"- Жалеете по полтиннику?
- Нет.
- Так почему же?
- Не хочу."

(с) Михаил Булгаков. Собачье сеpдце.

В десятке других мест подобная связка cisco-FreeBSD работает без проблем. Должна работать и здесь.


"Непонятное поведение rsh"
Отправлено ShyLion , 06-Май-16 12:02 
>> SNMP чем не устраивает?
> Хочу rsh.

Ну тогда включи дебаг, запусти tcpdump на сервере, сохрани в файл, проанализируй, уходят ди пули и откуда.


"Непонятное поведение rsh"
Отправлено Andrey , 07-Май-16 19:54 
>[оверквотинг удален]
> 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

syslog, насколько я понимаю не собирается с этого маршрутизатора?


"Непонятное поведение rsh"
Отправлено install , 10-Май-16 01:07 
>[оверквотинг удален]
>> 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"
Отправлено Andrey , 10-Май-16 13:07 
>[оверквотинг удален]
>>> 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"
Отправлено install , 11-Май-16 01:55 
>> 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>



"Непонятное поведение rsh"
Отправлено Andrey , 11-Май-16 12:51 
>[оверквотинг удален]
> 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 может помочь в этом.