05-02-2014 02:58 AM
Hello.
We are looking for a way to discover all cluster ids visible on the physical network in order to choose a unique id.
How can we do this?
Regards,
Carlyle
Solved! Go to Solution.
05-28-2014 07:47 AM
I sincerely thank you all for trying to help. My final solution is as follows.
First I used tcpdump to gather the llt broadcasts and cut out the MAC addresses and the cluster IDs.
<code>tcpdump -a -X -c 1000 broadcast and ether proto 0xcafe 2>/dev/null |
sed -n '
/^[012][0-9]:/{
s/^[^ ]* \([^ ]*\) .*/\1/
h
n
s/^[ ][ ]*[^ ]* *[^ ]* *\([^ ]*\) .*$/\1/
H
g
s/\n/ /
p
}
' | sort -uk2</code>
This would actualy have been enough to answer my original question but I was curious which clusters have which IDs.
Then I used arp to gather the MAC addresses together with the IP information. Of course I needed to feed the arp cache on the local server first so I chose to use a SYN request in perl.
<code>function sshping
{
typeset -x SERVER=$1
typeset -x PORT=22
[[ -n $2 ]] && PORT=$2
/usr/bin/perl -w -e '
use strict;
use Net::Ping;
use Socket;
my $ip;
my $host = $ENV{"SERVER"};;
my $packed_ip = gethostbyname($host);
if (defined $packed_ip) {
$ip = inet_ntoa($packed_ip);
} else {
print "$host ssh port is unreachable.\n";
exit( 1 );
}
my $p = Net::Ping->new("tcp", 6);
$p->{port_num} = $ENV{"PORT"};
if( $p->ping($ip) ) {
print "$host port $p->{port_num} is reachable.\n";
exit( 0 );
} else {
print "$host port $p->{port_num} is unreachable.\n";
exit( 1 );
}
'
}
i=1;while ((i<255)) ; do sshping 10.217.130.$i >/dev/null 2>&1 ; ((i+=1)) ; done</code>
Then I was ready for my arp requst.
<code>arp -a | tr -d '][)(' | sed -n '
/ethernet/{
s/\([ :]\)\([0-9]\)\([ :]\)/\10\2\3/g
s/at //
s/ ethernet .*$//
p
}
'</code>
05-02-2014 03:07 AM
You can use "lltconfig -N" - see extract from 6.1 man page:
-N List all the used cluster ids in the network.
This option must not be used when LLT is configured. This option
may not list all the cluster ids if the LLT broadcast message
frequency on the remote clusters is decreased or if the LLT
broadcast feature is disabled.
You can also use download at https://www-secure.symantec.com/connect/downloads/find-cluster-id-script
Mike
05-05-2014 07:35 AM
If you try to configure SFHA using installer script, it will ask to "check for unique cluster id" in a network.
05-07-2014 09:50 AM
# lltconfig -N
lltconfig: illegal option -- N
LLT lltconfig ERROR V-14-2-15010 usage: lltconfig
05-07-2014 09:54 AM
# find_cluster_id.sh
-n Counting 50 Heartbeats
find_cluster_id.sh[51]: snoop: not found
find_cluster_id.sh[52]: snoop: not found
Cluster and Node ID's detected.
-------------------------------
cat: cannot open /tmp/fndclid.out
05-07-2014 04:09 PM
-N option is available on 6.x, so you must have a lower version.
If script is using snoop, then this will probably only work on Solaris.
So if you do not have access to 6.x system or a Solaris system, then other option as Novonil says is to run the vcsinstaller which you MAY be able to run with option to makeresponse file so that installer doesn't actually do anything.
Mike
05-28-2014 02:06 AM
check /etc/llttab:
bash-3.2# more /etc/llttab
set-node t5120a
set-cluster 44353 <<<<<<<<<<<<<cluster id
link e1000g2 /dev/e1000g:2 - ether - -
link e1000g3 /dev/e1000g:3 - ether - -
05-28-2014 07:47 AM
I sincerely thank you all for trying to help. My final solution is as follows.
First I used tcpdump to gather the llt broadcasts and cut out the MAC addresses and the cluster IDs.
<code>tcpdump -a -X -c 1000 broadcast and ether proto 0xcafe 2>/dev/null |
sed -n '
/^[012][0-9]:/{
s/^[^ ]* \([^ ]*\) .*/\1/
h
n
s/^[ ][ ]*[^ ]* *[^ ]* *\([^ ]*\) .*$/\1/
H
g
s/\n/ /
p
}
' | sort -uk2</code>
This would actualy have been enough to answer my original question but I was curious which clusters have which IDs.
Then I used arp to gather the MAC addresses together with the IP information. Of course I needed to feed the arp cache on the local server first so I chose to use a SYN request in perl.
<code>function sshping
{
typeset -x SERVER=$1
typeset -x PORT=22
[[ -n $2 ]] && PORT=$2
/usr/bin/perl -w -e '
use strict;
use Net::Ping;
use Socket;
my $ip;
my $host = $ENV{"SERVER"};;
my $packed_ip = gethostbyname($host);
if (defined $packed_ip) {
$ip = inet_ntoa($packed_ip);
} else {
print "$host ssh port is unreachable.\n";
exit( 1 );
}
my $p = Net::Ping->new("tcp", 6);
$p->{port_num} = $ENV{"PORT"};
if( $p->ping($ip) ) {
print "$host port $p->{port_num} is reachable.\n";
exit( 0 );
} else {
print "$host port $p->{port_num} is unreachable.\n";
exit( 1 );
}
'
}
i=1;while ((i<255)) ; do sshping 10.217.130.$i >/dev/null 2>&1 ; ((i+=1)) ; done</code>
Then I was ready for my arp requst.
<code>arp -a | tr -d '][)(' | sed -n '
/ethernet/{
s/\([ :]\)\([0-9]\)\([ :]\)/\10\2\3/g
s/at //
s/ ethernet .*$//
p
}
'</code>