Forum Discussion

thagmann_128177's avatar
thagmann_128177
Icon for Nimbostratus rankNimbostratus
Oct 15, 2004

iControl v9.0 Primary Failover Method

What method would I call in i-control 9.0 to find the name and ip of the BIGIP failover device?

 

 

Thanks,

 

 

-Tom
  • Tom,

    In 9.x, we introduced a method to retrieve the address(es) of peer systems.

        
        String[] System::Failover::get_peer_address();    
        

    From the SDK:

    This will return the peer IP address(es) in a redundant pair. There will be a primary address and possibly a secondary address. The primary will be the first entry in the returned list

    Keep in mind that the address returned from the BIG-IP will be the address that it uses to communicate with the peer. This may be either an external or internal address depending on the configuration.

    For those who are wondering where the equivalent method is in version 4.x of the SDK, we didn't expose a method to retrieve these values directly. What you would need to do is access the configuration database.

        
        String ITCMManagement::Bigdb::get_key(    
            in String db_name,    
            in String key_name    
        );    
        

    Passing an empty string for the db_name will point you to the default configuration database and the peer address can be accessed by using the key name of Local.Bigip.StateMirror.PeerIpAddr

    -Joe
  • Joe,

     

     

    Via the PS snapin I can fetch the remote (thanks!) :

     

    PS T:\> $ic.systemfailover.get_peer_address()

     

    10.10.10.1

     

     

    Is there any way to fetch the unit's own/self failover address (besides grabbing the bigDB...)?

     

     

    This is not exposed via SNMP and makes it a pain for programatically discovering device pairs.

     

     

    Thanks,

     

     

    John

     

     

     

     

  • I previously sent this to our monitoring devs:

     

     

    PS T:\> $ic.managementdbvariable.query("StateMirror.Ipaddr") | fl

     

    name : StateMirror.Ipaddr

     

    value : 10.10.10.2

     

    PS T:\> $ic.managementdbvariable.query("StateMirror.PeerIpaddr") | fl

     

    name : StateMirror.PeerIpaddr

     

    value : 10.10.10.1

     

     

    This is what works in 9.0.x/9.1.x/9.4.0 -- I found that 9.4.0 code introduced a new DB key pair “failover.ipaddr” and “failover.peeripaddr” which return Null on my test box. I need to test on 9.4.1 and 9.4.2 as I believe F5 intends to allow StateMirror and Failover to use different IPs for communication, in which case the new DB keys would replace the 9.0.x/9.1.x/9.4.0 statemirror.(peer)ipaddr keys. Something to keep in mind for the get_peer_address() method.

     

     

    Thanks!

     

     

    John