For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

3 Replies

  • I don't know what technology or language you're using to make the calls, but getting all VIP status would use the following URL, using GETs: (use your own values for the $ variables obviously)

     

    https://$ltmname/mgmt/tm/ltm/virtual?ver=12.1.1&expandSubcollections=true

     

    For an individual VIP it it would look something like this:

     

    https://$ltmname/mgmt/tm/ltm/virtual/~$ltmpartitionname~$ltmvipname?ver=12.1.1&expandSubcollections=true

     

    Pool status would be similar but with "pool" instead of "virtual" in the URI.

     

    • AJ_01_135899's avatar
      AJ_01_135899
      Icon for Cirrostratus rankCirrostratus

      I'm not aware of a way to get this directly from the REST API via a filter, so you'd probably have to get the entire collection then parse it however you see fit.

      If you provided the scripting language or technology you're using to make the calls I'm sure someone will throw up a script sample for you. In PowerShell, this would be the basic script example:

      $LTM = yourltmname.yourdomain.com
      
      Powershell Credential Object
      $LTMCredentials = Get-Credential
      
      Builds the URI string for the Invoke-RestMethod cmdlet
      $VIPListURI = ("https://$LTM/mgmt/tm/ltm/virtual?ver=12.1.1&expandSubcollections=true")
      
      returns the result of Invoke-RestMethod to $vipresult.  $vipResult.items contains the array of VIPs
      $vipResult = Invoke-RestMethod -Method Get -Uri $VIPListURI -Credential $LTMCredentials
      
      simple Where-Object filter on destination IP:PORT
      $vipResult.items | Where-Object -Property "destination" -eq "/partition_name/100.100.100.100:80"
      

      This is the sample result data from a single VIP, just for reference.

      kind                       : tm:ltm:virtual:virtualstate
      name                       : vip_name
      partition                  : partition_name
      fullPath                   : /partition_name/vip_name
      generation                 : 1
      selfLink                   : https://localhost/mgmt/tm/ltm/virtual/~partition_name~vip_name?ver=12.1.1
      addressStatus              : yes
      autoLasthop                : default
      cmpEnabled                 : yes
      connectionLimit            : 0
      destination                : /partition_name/100.100.100.100:80
      enabled                    : True
      gtmScore                   : 0
      ipProtocol                 : tcp
      mask                       : 255.255.255.255
      mirror                     : disabled
      mobileAppTunnel            : disabled
      nat64                      : disabled
      pool                       : /partition_name/pool_name
      poolReference              : @{link=https://localhost/mgmt/tm/ltm/pool/~partition_name~pool_name?ver=12.1.1}
      rateLimit                  : disabled
      rateLimitDstMask           : 0
      rateLimitMode              : object
      rateLimitSrcMask           : 0
      serviceDownImmediateAction : none
      source                     : 0.0.0.0/0
      sourceAddressTranslation   : @{type=none}
      sourcePort                 : preserve
      synCookieStatus            : not-activated
      translateAddress           : enabled
      translatePort              : enabled
      vlansDisabled              : True
      vsIndex                    : 37
      rules                      : {/Common/snat_samesubnet_common}
      rulesReference             : {@{link=https://localhost/mgmt/tm/ltm/rule/~Common~snat_samesubnet_common?ver=12.1.1}}
      policiesReference          : @{link=https://localhost/mgmt/tm/ltm/virtual/~partition_name~vip_name_80_uat/policies?ver=12.1.1; isSubcollection=True}
      profilesReference          : @{link=https://localhost/mgmt/tm/ltm/virtual/~partition_name~vip_name_80_uat/profiles?ver=12.1.1; isSubcollection=True; items=System.Object[]}