<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content="MSHTML 6.00.2900.2963" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2>Hello,</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>I am using
check_ifstatus to monitor the status of several hundred Nokia/Check Point
firewalls. There are two issues with check_ifstatus that seem to be errors as
far as I can tell:</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>1) Dormant serial
interfaces return status of "OK". A dormant serial connection should be
CRITICAL, right? I changed the following line # 189 to address
this:</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>
if ($ifdown > 0) {</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2>becomes:</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2> if
(($ifdown > 0) || ($ifdormant > 0)) {</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>For example here is
the output from a Nokia/Check Point firewalls with eight interfaces: four
Ethernet and one each of PPOE, Loop, Tunnel and Serial. The Serial is down and
the 4th Ethernet is disabled. It shows 8 up and one dormant.
</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>Status
Information: OK: host 'xxx.yyy.zzz.www', interfaces up: 8, down: 0,
dormant: 1, excluded: 0, unused: 0<BR>Performance
Data: up=8,down=0,dormant=1,excluded=0,unused=0</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>I contend that it
should show "up: 6", "dormant: 1", and "unused: 1", and that the returned status
should be CRITICAL. Is this a misunderstanding on my part, or a
bug?</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2>===============================================================================</FONT></SPAN></DIV></FONT></SPAN></SPAN><SPAN
class=823454618-27102006><FONT face=Arial size=2>2) Administratively down
interfaces are not counted. Shouldn't these be added to the "unused"
category?</FONT></SPAN></DIV></DIV><SPAN class=823454618-27102006><FONT
face=Arial size=2>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2>===============================================================================</FONT></SPAN></DIV>
<DIV></FONT></SPAN><SPAN class=823454618-27102006><FONT face=Arial size=2>Here
is the interesting part of the ifTable for the firewall in question. It has an
admin down physical Ethernet, and admin down Logical Ethernet a dormant serial
and a dormant T1. Yet check_interfaces shows no unused interfaces and OK
status.</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2> interfaces.ifNumber.0 =
12<BR> interfaces.ifTable.ifEntry.ifIndex.1 =
1<BR> interfaces.ifTable.ifEntry.ifIndex.2 =
2<BR> interfaces.ifTable.ifEntry.ifIndex.3 =
3<BR> interfaces.ifTable.ifEntry.ifIndex.4 =
4<BR> interfaces.ifTable.ifEntry.ifIndex.5 =
5<BR> interfaces.ifTable.ifEntry.ifIndex.6 =
6<BR> interfaces.ifTable.ifEntry.ifIndex.7 =
7<BR> interfaces.ifTable.ifEntry.ifIndex.8 =
8<BR> interfaces.ifTable.ifEntry.ifIndex.9 =
9<BR> interfaces.ifTable.ifEntry.ifIndex.10 =
10<BR> interfaces.ifTable.ifEntry.ifIndex.11 =
11<BR> interfaces.ifTable.ifEntry.ifIndex.12 =
12<BR> interfaces.ifTable.ifEntry.ifDescr.1 = ser-s1p1 DS1 Serial Link
Nokia TAXI T1<BR> interfaces.ifTable.ifEntry.ifDescr.2 = pppoe0 Ethernet
Layer <BR> interfaces.ifTable.ifEntry.ifDescr.3 = eth1 Ethernet Layer Intel
EtherExpress Pro 10/100B<BR> interfaces.ifTable.ifEntry.ifDescr.4 = eth2
Ethernet Layer Intel EtherExpress Pro
10/100B<BR> interfaces.ifTable.ifEntry.ifDescr.5 = eth3 Ethernet Layer
Intel EtherExpress Pro 10/100B<BR> interfaces.ifTable.ifEntry.ifDescr.6 =
eth4 Ethernet Layer Intel EtherExpress Pro
10/100B<BR> interfaces.ifTable.ifEntry.ifDescr.7 = ser-s1p1c0 CHDLC IP
Layer<BR> interfaces.ifTable.ifEntry.ifDescr.8 = loop0c0 Software Loopback
Layer<BR> interfaces.ifTable.ifEntry.ifDescr.9 = eth1c0 IP
Layer<BR> interfaces.ifTable.ifEntry.ifDescr.10 = eth2c0 IP
Layer<BR> interfaces.ifTable.ifEntry.ifDescr.11 = eth3c0 IP
Layer<BR> interfaces.ifTable.ifEntry.ifDescr.12 = eth4c0 IP
Layer<BR> interfaces.ifTable.ifEntry.ifType.1 =
ds1(18)<BR> interfaces.ifTable.ifEntry.ifType.2 =
eon(25)<BR> interfaces.ifTable.ifEntry.ifType.3 =
ethernetCsmacd(6)<BR> interfaces.ifTable.ifEntry.ifType.4 =
ethernetCsmacd(6)<BR> interfaces.ifTable.ifEntry.ifType.5 =
ethernetCsmacd(6)<BR> interfaces.ifTable.ifEntry.ifType.6 =
ethernetCsmacd(6)<BR> interfaces.ifTable.ifEntry.ifType.7 =
hdlc(118)<BR> interfaces.ifTable.ifEntry.ifType.8 =
softwareLoopback(24)<BR> interfaces.ifTable.ifEntry.ifType.9 =
other(1)<BR> interfaces.ifTable.ifEntry.ifType.10 =
other(1)<BR> interfaces.ifTable.ifEntry.ifType.11 =
other(1)<BR> interfaces.ifTable.ifEntry.ifType.12 =
other(1)<BR> interfaces.ifTable.ifEntry.ifMtu.1 =
8188<BR> interfaces.ifTable.ifEntry.ifMtu.2 =
1514<BR> interfaces.ifTable.ifEntry.ifMtu.3 =
1514<BR> interfaces.ifTable.ifEntry.ifMtu.4 =
1514<BR> interfaces.ifTable.ifEntry.ifMtu.5 =
1514<BR> interfaces.ifTable.ifEntry.ifMtu.6 =
1514<BR> interfaces.ifTable.ifEntry.ifMtu.7 =
1500<BR> interfaces.ifTable.ifEntry.ifMtu.8 =
63000<BR> interfaces.ifTable.ifEntry.ifMtu.9 =
1500<BR> interfaces.ifTable.ifEntry.ifMtu.10 =
1500<BR> interfaces.ifTable.ifEntry.ifMtu.11 =
1500<BR> interfaces.ifTable.ifEntry.ifMtu.12 =
1518<BR> interfaces.ifTable.ifEntry.ifSpeed.1 = Gauge:
1544<BR> interfaces.ifTable.ifEntry.ifSpeed.2 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.3 = Gauge:
100000<BR> interfaces.ifTable.ifEntry.ifSpeed.4 = Gauge:
100000<BR> interfaces.ifTable.ifEntry.ifSpeed.5 = Gauge:
100000<BR> interfaces.ifTable.ifEntry.ifSpeed.6 = Gauge:
100000<BR> interfaces.ifTable.ifEntry.ifSpeed.7 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.8 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.9 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.10 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.11 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifSpeed.12 = Gauge:
0<BR> interfaces.ifTable.ifEntry.ifPhysAddress.1 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.2 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.3 =
0:a0:8e:7a:df:4c<BR> interfaces.ifTable.ifEntry.ifPhysAddress.4 =
0:a0:8e:7a:df:4d<BR> interfaces.ifTable.ifEntry.ifPhysAddress.5 =
0:a0:8e:7a:df:4e<BR> interfaces.ifTable.ifEntry.ifPhysAddress.6 =
0:a0:8e:7a:df:4f<BR> interfaces.ifTable.ifEntry.ifPhysAddress.7 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.8 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.9 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.10 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.11 =
<BR> interfaces.ifTable.ifEntry.ifPhysAddress.12 =
<BR> interfaces.ifTable.ifEntry.ifAdminStatus.1 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.2 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.3 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.4 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.5 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.6 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.7 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.8 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.9 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.10 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.11 =
up(1)<BR> interfaces.ifTable.ifEntry.ifAdminStatus.12 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.1 =
dormant(5)<BR> interfaces.ifTable.ifEntry.ifOperStatus.2 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.3 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.4 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.5 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.6 =
down(2)<BR> interfaces.ifTable.ifEntry.ifOperStatus.7 =
lowerLayerDown(7)<BR> interfaces.ifTable.ifEntry.ifOperStatus.8 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.9 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.10 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.11 =
up(1)<BR> interfaces.ifTable.ifEntry.ifOperStatus.12 =
lowerLayerDown(7)</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>Thanks for your help
!</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2>===============================================================================</FONT></SPAN></DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial size=2>./check_ifstatus
--version<BR>check_ifstatus (nagios-plugins 1.4.2) 1.9<BR>Copyright (C) 2000
Christoph Kron<BR>Updates 5/2002 Subhendu Ghosh</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=823454618-27102006><FONT face=Arial
size=2></FONT></SPAN> </DIV><!-- Converted from text/plain format -->
<DIV align=left><FONT face=Arial size=2>Matthew Martin<BR>Internet Security
Engineer<BR>Qwest Communication Corp.<BR>matthew.martin@qwest.com<BR><BR><FONT
color=#800000>- Internal Use Only -<BR>Disclose and Distribute only to Qwest
Employees and authorized persons working for Qwest. Disclosure outside of
Qwest is prohibited without authorization. </FONT></FONT></DIV>
<DIV> </DIV><br>
<br>
This communication is the property of Qwest and may contain confidential or
privileged information. Unauthorized use of this communication is strictly
prohibited and may be unlawful. If you have received this communication
in error, please immediately notify the sender by reply e-mail and destroy
all copies of the communication and any attachments.</BODY></HTML>