Forum Discussion

dyobbs_25515's avatar
dyobbs_25515
Icon for Nimbostratus rankNimbostratus
Apr 17, 2017

DNS Requests / Sec per IP

Is there a way to get the number of DNS requests per sec in a BIG-IP on a per IP basis? What command to use get have it on chronological order?

 

  • Attached this to your DNS listener

    when CLIENT_DATA {
        table set -subtable [IP::client_addr] [TMM::cmp_unit][clock clicks] 0 1
        table set -subtable tracking [IP::client_addr] 0 5
    }
    

    Attached this to a HTTP virtual server with HTTP profile

    when HTTP_REQUEST {
      if {[HTTP::uri] eq "/stats"} {
        set response ""
        foreach IP [table keys -subtable tracking] {
          append response "$IP Count [table keys -subtable tracking -count]\r\n"
        }
        HTTP::respond 200 content $response Content-Type "text/plain" Connection Close
      }
    }
    

    The first collects the statistics, the second allows you to see them from a virtual server.

    • dyobbs_25515's avatar
      dyobbs_25515
      Icon for Nimbostratus rankNimbostratus

      Thanks Kevin, put the first irule on my DNS listener and created a VS with HTTP profile and put in the 2nd irule. Pardon me. How to see the stats per IP? I went into the browser . Is that how to see results?

       

    • Kevin_Davies_40's avatar
      Kevin_Davies_40
      Icon for Nacreous rankNacreous

      Yes however their is a typo. Inside the foreach loop the subtable name needs to be $IP and not tracking.

      append response "$IP count [table keys -subtable $IP ....