Topic
6 replies Latest Post - ‏2012-11-27T17:13:22Z by swlinn
dp_rb
dp_rb
9 Posts
ACCEPTED ANSWER

Pinned topic Replace Host Alias with IP address

‏2012-11-22T17:05:37Z |
Hi,

I'm looking to do a transformation (xslt), but struggling to find the function to do what I'm trying.

We have an incoming request, which contains an alias. That alias is defined in DataPower (default domain > Network > Host Alias) as a host alias. What I have working is setting that alias (from the incoming request) as my routing url, the message then gets routed to the correct back end system.

What I want to do now is, when setting the routing url, I want to match the alias to the host alias name held in DataPower (they are both the same), get the matching IP address and then set the routing url to use the IP address.

The bit I'm struggling with is finding the dp function to get an IP address from the host alias, when the name is given.

Is this possible?
Updated on 2012-11-27T17:13:22Z at 2012-11-27T17:13:22Z by swlinn
  • HermannSW
    HermannSW
    2818 Posts
    ACCEPTED ANSWER

    Re: Replace Host Alias with IP address

    ‏2012-11-23T08:51:56Z  in response to dp_rb
    One question first:
    Why do you want to replace the host alias by its IP in a stylesheet?

    routing-url may contain an alias -- DataPower will resolve that alias when contacting the backend for you.

     
    Hermann<myXsltBlog/> <myXsltTweets/>
    • dp_rb
      dp_rb
      9 Posts
      ACCEPTED ANSWER

      Re: Replace Host Alias with IP address

      ‏2012-11-23T09:52:03Z  in response to HermannSW
      It works fine for using the host alias in the routing url, which we have been doing for all our back end systems. However, one of our back end systems does not accept the host alias, when testing, it only accepts IP addresses.

      We think it maybe to do with the host field in the http header being populated with the alias, which cannot be resolved, but I also think resolving the alias and populating the routing url with the ip address will fix the problem.
      • kenhygh
        kenhygh
        792 Posts
        ACCEPTED ANSWER

        Re: Replace Host Alias with IP address

        ‏2012-11-23T12:23:06Z  in response to dp_rb
        Can I suggest something different? I typically use an XML lookup table for routing, something similar to what's described in the DataPower Handbook (http://books.google.com/books?id=acullmuy8zEC&pg=PT1051&lpg=PT1051&dq=datapower+%22routing+xml%22+rasmussen&source=bl&ots=OEHVwjNkVE&sig=cYw8K35zBv67g1T6olwyfdfqMGY&hl=en&sa=X&ei=r2avUL-zJIWu8AS-sIDwDg&ved=0CFIQ6AEwBQ)

        This kind of thing can be used across multiple dev/test/prod environments cleanly, you can put into such a table either DNS names or IP addresses, whatever you want.

        Ken
        • dp_rb
          dp_rb
          9 Posts
          ACCEPTED ANSWER

          Re: Replace Host Alias with IP address

          ‏2012-11-23T15:48:25Z  in response to kenhygh
          Hi Ken,

          Thanks for the suggestion, although that solution would work, I'd prefer not to go down that route, considering that the IP address's are already stored in the host alias and I didn't want to have anything duplicated.
  • dp_rb
    dp_rb
    9 Posts
    ACCEPTED ANSWER

    Re: Replace Host Alias with IP address

    ‏2012-11-26T17:07:22Z  in response to dp_rb
    Is there a way around this without having to access the XML management interface from within an XSLT?
    • swlinn
      swlinn
      1327 Posts
      ACCEPTED ANSWER

      Re: Replace Host Alias with IP address

      ‏2012-11-27T17:13:22Z  in response to dp_rb
      This would be the only way to get configuration for your use within a processing stylesheet. Also as I am just catching up on the forum after some time away, please note that the best practice is to use host aliases for DataPower local addresses ONLY. If you have backend servers you wish to associate a name to an IP, that is technically a DNS static host entry. Functionally they are the same as far as resolving the IP in a URL, but when you have a front side handler for example that has a local address field, you get to choose from a list of host aliases, and off box IPs don't apply. I concur with Ken, it is a very common practice to use a routing table. You can keep your static dns entries in DataPower and have the table map some criteria to the static dns name, and DataPower will get the proper IP.

      Regards,
      Steve