Forum Discussion

smp_86112's avatar
smp_86112
Icon for Cirrostratus rankCirrostratus
Jul 20, 2011

Enable WideIP IPv6 NoError Response

How can I enable the IPv6 NoError Response property on a new WIP with v10? I don't see the WideIP method - is there some other way to do this?

 

 

 

 

1 Reply

  • I ran into the same problem, it turns out you don't have access to the ipv6 no errorresponse until v11. So i wrote my little app to do what it needs to do with the wide IP's and pools, etc. Then later the application SSH's to the gtm and uses tmsh::modify... etc, etc, to get the state of the wide IP and if need be set it too enabled.

    It is definitely a work around but until we go to v11, the coding ends up looking something like:

    
    using Tamir.SharpSsh;
    .... program..
    method examples.....
      public static Dictionary GetIPV6state(string strGTM, string strUsername, string strPassword)
            {
                Dictionary dictReturn = new Dictionary();
                Regex rgxWideIP = new Regex(@".*gtm\swideip\s(?.*?)\s{");
                Regex rgxIPV6 = new Regex(@"^.*ipv6-no-error-response\s(?.*)");
                string strOutput = sshGTMCommand(strGTM, strUsername, strPassword,"list ipv6-no-error-response", false);
    
    
                string[] strOutputArray = strOutput.Split(Environment.NewLine.ToString().ToCharArray());
                List lstResults = new List();
                foreach (string strTemphold in strOutputArray)
                {
                    if (strTemphold != "")
                    {
                        lstResults.Add(strTemphold);
                    }
                }
    
    
                //---(less 17%)---gtm wideip es.fxse.ml.com {
                //---(less 17%)---    enabled
                //---(less 17%)---    ipv6-no-error-response disabled
                //---(less 18%)---}
                strOutputArray = lstResults.ToArray();
    
                for (int i = 0; i < strOutputArray.Length; i++)
                {
                    Match mtWideIP = rgxWideIP.Match(strOutputArray[i]);
                    if (mtWideIP.Success)
                    {
                        
                        string strWIP = mtWideIP.Groups["wideIP"].Value;
                        i = i + 2;
                        Match mtIPV6 = rgxIPV6.Match(strOutputArray[i]);
                        if(mtIPV6.Success)
                        {
                            dictReturn.Add(strWIP, mtIPV6.Groups["IPV6"].Value);
                        }
                        else
                        {
                            dictReturn.Add(strWIP, "Error Parsing Value");
                        }
    
                    }
    
                }
    
    
                return dictReturn;
                
            }
            public static string sshGTMCommand(string strGTM, string userName, string passWord, string GTMCmd, bool debugMode)
            {
                // connects over SSH to a NetScaler and runs a single SSH command
                string output = "";
                try
                {
    
                    SshShell ssh = new SshShell(strGTM, userName, passWord);
                    ssh.Connect();
    
                    //ssh.ExpectPattern = "";
                    ssh.RemoveTerminalEmulationCharacters = true;
                    ssh.WriteLine(@"tmsh");
                    ssh.WriteLine(Environment.NewLine);
                    ssh.WriteLine(@"gtm wideip");
                    ssh.WriteLine(Environment.NewLine);
                    ssh.WriteLine(GTMCmd);
                    ssh.WriteLine(Environment.NewLine);
                    string strOutput = ssh.Expect();
                    while (strOutput.Substring(strOutput.Length -5) != "(END)")
                    {
                        ssh.WriteLine(Environment.NewLine);
    
                        strOutput = strOutput + ssh.Expect();
                    }
                    ssh.Close();
    
                    return strOutput;
    
                }
                catch (Exception e)
                {
                    Console.Write("failure connecting to " + strGTM + ". " + e.Message);
                }
                return output;
            }
    
    
        }