How to be able to ping or telnet to groups

Alan Hannan (alan@gi.net)
Mon, 3 Jun 1996 12:16:54 -0500 (CDT)

Hello,

I run a network of approximately 250 ciscos.

Several of these are 'larger' ciscos, like AGS+, 4000, and 7xxx.

I have setup each of my routers as a 'group', with the 'members'
of that group being:

1/ the router itself (having the loopback address of the router)

2/ the cards on the router (ie ethernet, serial, fddi).

Further, each card then, is a group, which has members being the
interfaces:

I would like to modify the tkined code such that I can ping,
telnet, and do snmp queries to 'groups'. The rationale for this
is that the operators can have a map w/ a few simple routers, and
ping them, and telnet to them. If there's a problem, a member of
the group will start flashing (like say a particular interface)
then they can open up the group/router, and look to see what part
of the router has the problem, ie what interface isn't reachable.

Is this a large undertaking?

I have tried to modify the tkined code of library.tcl in the
following manner:

Before:

if { ([ined type $comp] == "NODE") }

After:

if { ([ined type $comp] == "NODE") || ([ined type $comp] == "GROUP"]) }

But, it does not work :(

Perhaps someone could give me some direction on this:

1/ Is it relatively simple or hard?

2/ What procedures must be changed?

3/ Are there any side effects of this that I should be concerned with?

Thanks alot!

Alan Hannan

ps -> here's the modified code I've done, w/ debugging in the form
of 'ined acknowledge's. It never appears to actually get into the
routine, and never runs the line:

ined acknowledge "lid = $lid"

------------------------ = ------------------------
##
## Evaluate body for every node where we get an IP address for. The id
## and ip variables are set to the id of the NODE object and it's IP
## address.
##

proc ForeachIpNode { id ip host list body } {
upvar $id lid
upvar $ip lip
upvar $host lhost
foreach comp $list {
ined acknowledge "I am executing ForeachIpNode on list = $list ."
ined acknowledge "The comp is $comp."
if { ([ined type $comp] == "NODE") || ([ined type $comp] == "GROUP"]) }
{
set lid [ined id $comp]
ined acknowledge "lid = $lid"
set lip [GetIpAddress $comp]
ined acknowledge "lip = $lip"
set lhost [ined name $comp]
ined acknowledge "lhost = $lhost"
if {$lip == ""} {
set host [lindex [ined name $comp] 0]
ined acknowledge "Can not lookup IP Address for $host."
continue
}
uplevel 1 $body
ined acknowledge "body = $body"
}
}
}