When GTM responds with the IP address of the virtual server, there are different NAT translations that must be performed depending on where the request is coming from. This iRule looks at 4 classes (DataGroups) to determine which (If any) of the NAT translations it must perform on the response.
This iRule differs from the pinhole example by only examining the response and the 'client' IP address. The hostname requested is ignored so there is only 1 event that needs to fire.
Note that although developed for GTM, this is an LTM iRule and is attached to the LTM VS that is created by the GTM when you configure a listener address
These data-groups are required but MAY be empty if no translations are necessary.
When i go to use this GTM rule - i get the following error:
1070151:3: Rule [/Common/GTM_TRANSLATION_IRULE] error: Unable to find pool (hsl-log-01) referenced at line 32: [HSL::open -proto UDP -pool hsl-log-01]
I was trying to attach to LTM VS but that does not have any pool - because its just VS pushed from GTM, when you configure listener IP.
P.S. I have already configured the needed DATA GROUPS.
Appreciate your help?
just to confirm, you have this iRule applied to an LTM virtual server with a dns services profile, or are you trying to use strictly a GTM iRule? They are different, and not all features work on GTM iRules like they do on LTM.
I did try to attach on LTM VS but it does not allow to apply with the error above.
For UDP - i do see UDP_GTM_DNS profile attached for TCP VS, its not.
Any suggestion to fix it? Looks like, its looking for a pool to be used?
Hi Madni, the error is from this line:
set gteHSL [HSL::open -proto UDP -pool hsl-log-01]
You either need to define an HSL pool named hsl-log-01, or update this line to reflect whatever you named your nsl pool.