The public interface of my ISA Server is configured for DHCP. It is in turn attached to a cable modem. The problem that this presents is that the cable provider could change the DNS server addies, and the caching-only DNS server installed on the ISA Server would no longer have correct addresses for its forwarders.
The solution I implemented is to dynamically update the forwarder addie whenever there is a lease expiration on the public interface. I achieve this using two tools. The first tool is William Levra-Juillet’ s DirectUpdate. The second app is a custom C# app that I wrote.
DirectUpdate serves two functions. First and formost, it updates dyndns.org with the public IP addie of the ISA Server. The second responsibility that it has it launch my custom app. DirectUpdate has the ability to start a script/console app when it detects a change. Therefore, I have directed it to call my app.
The function my app has it update the DNS forwarder addies with the ones assigned from the cable provider. The is achieved utilizing WMI (which is Microsoft’s implementation of WBEM). The app first loops through each interface on the ISA Server until it reached the interface that is configured for DHCP. Then it reads the DNS addies from the interface. The second step is to again use WMI to connect to the DNS server running locally and update its forwarder addies.
My custom app can be found here, along with some setup info.