Doing debugging of SwitchMap I have discovered that SwitchMap spends a LOT of time doing DNS queries. In my case the total run-time for SwitchMap is almost 11 minutes, and you can see below that it spent 3:25 doing the DNS lookups (205sec/655sec= 31%!!!). I suppose running a caching-only DNS server on my system is a possibility, but I wonder if there might be some more clever option/method. Have you looked in to this at all?
$ time ./SwitchMap.pl -d 2 > /tmp/dbg.out 2> /tmp/dbg.err
2009/06/24 15:27:17: main::: SwitchMap version 11.13 starting...
2009/06/24 15:27:17: CiscoConstants::initialize: called, reading /home/thorsond/switchmap-11.13/CISCO-PRODUCTS-MIB.my
2009/06/24 15:27:17: CiscoConstants::initialize: reading /home/thorsond/switchmap-11.13/CISCO-STACK-MIB.my
2009/06/24 15:27:17: CiscoConstants::initialize: returning, got 947 product OIDs, 61 workgroup OIDs and 264 module descriptions
2009/06/24 15:27:17: SnmpCommunities::initialize: called
2009/06/24 15:27:17: SnmpCommunities::initialize: reading SNMP communities from file ./netmon.cmstr on local host...
2009/06/24 15:27:17: SnmpCommunities::initialize: returning, got 2 SNMP community strings
2009/06/24 15:27:17: MacIpTables::initialize: called, getting switch names and MAC/IP relationships...
2009/06/24 15:27:17: MacIpTables::GetMacTablesFromFiles: called, reading MAC/IP table from /var/local/switchmap/MacList
2009/06/24 15:27:18: MacIpTables::GetMacTablesFromFiles: returning, got 12720 MAC-IPs
2009/06/24 15:27:18: MacIpTables::GetHostNames: called, getting DNS names for the IP addresses
2009/06/24 15:30:43: MacIpTables::GetHostNames: returning, got 11004 hostnames with 178 misses
2009/06/24 15:30:43: MacIpTables::initialize: returning, got 140 switch names from static array [snip]
2009/06/24 15:38:12: main::: exiting normally...
real 10m55.077s
user 3m6.260s
sys 0m2.710s
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
FYI after correcting my DNS issues, SwitchMap.pl now spends 92% of it's time in "CreateSwitches"... which is good. Any new optimizations need to focus there.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wow. This has got to be the longest, fastest thread about SwitchMap that I've seen. 28 messages in less than 24 hours!
FWIW, we have 48 switches at my site, with ~8700 ports. SwitchMap takes about 5 minutes and 40 seconds to run. It spends 7 seconds in MacIpTables, which contains the DNS lookup code, and looks up about 4400 names. It runs on Linux box, and queries a (bind) DNS server running on another Linux box. I don't have much experience with Windows.
I run SwitchMap once a day, at 02:05pm. That's when our network is the busiest, so that's when the bridge tables in the switches have the most MACs. I run GetArp and ScanSwitch every hour. I'm not very concerned if SwitchMap takes a while to run.
BTW, when I made the speed improvements in version 11.0, it was because I just like faster code - it seemed the right thing to do. I think it's fast enough now. To make it faster, I'd have to consider asynchronous I/O, which doesn't seem worth the complexity, or threads, which Perl doesn't support portably.
I can understand that people with more switches might me more concerned about the speed.
I had the same DNS problem that Dan had. We have DNS subdomains at my site, and when the DNS server for a subdomain isn't working, SwitchMap does a 2 minute timeout on each individual lookup for addresses in the subdomain. To help find the problem, I put in a hack in MacIpTables.pm. If you look in that code for a comment that starts "If your DNS seems broken...", there are comments that describe how to make SwitchMap display DNS lookups as they happen. You'll be able to see which addresses are timing out, and hopefully go fix your DNS.
If I've read this thread correctly, Dan fixed his DNS problem, but Nick and Jeff still have problems. Can you guys try the mods to MacIpTables.pm?
I think this a DNS problem, not a SwitchMap problem. I don't like some of the solutions proposed, which involve another file and/or job that has to be run. I don't like doing DNS in GetArp either, which at my site would mean that I'd do the DNS lookups 24 times a day, to support a program that runs once a day.
Anyway, I enjoy the discussion, and I'd be happy to fix SwitchMap if this is a SwitchMap problem.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have just uncommented those lines, and as I expected its my IP phones that are causing the problem.
All of my hosts respond instantly, but my phones take a few seconds to come back with 'Failed'.
If I run a reverse dns using nslookup, i get an instant response for the non existant record, so this (in my mind) rules out the name server. MS DNS in my case and bind in Jeff's. So whilst we are using different DNS servers, we are experiencing the same delays, which i figure points to the host running switchmap, which for us poor souls is windows.
Now, i'm not blaming the switchmap code, but for some reason the windows host introduces the delay when quering a sever (MS or bind) for a non-existant record.
Just as a side note, this is not a major problem for me, as our production server is CentOS, but my windows test rig suffers from this, which again points to the host, not the server.
it would be great if we can identify precisly what is causing the problem in windows, I am now off to start digging...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It does look like the Windows name lookup API will use NetBIOS over Tcpip to resolve names for everything if DNS does not work. If I ping a name that has no A record it does take a while to time out. However DNS does not time out it responds with a no record exists. If I disable NetBIOS over Tcpip the ping fails right away.
So this does not look like a DNS server issue or a switchmap issue, but a OS issue. On that note I have been researching NetBIOS over Tcpip for a while now and it looks like for the most part it is no longer needed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Peter you are correct the OS should be doing caching. However us Windows servers people (I know don't say it) didn't understand that switchmap (perl really) was using the OS tools for DNS resolution and assumed Perl or switchmap was using it's own DNS client. Now that we know it is using Windows DNS client, and that client by default looks up unresolved names via NetBios (with a very long timeout) once we turn that off we are running so much better.
Thank you all for your help on this issue. There is noting for switchmap to fix as it is an OS config issue nothing else!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So it's taking about 1/3 of your total time, too... at least that's consistent!
It seems to me that Switchmap will have to pay the price of the DNS queries no matter what... so the issue is where/when to take the hit.
Given that GetArp.pl
1) takes a small fraction of SwitchMap.pl's runtime (about 20 seconds on my system, compared to SwitchMap.pl's 11 minutes), and
2) since that's where the initial IP addr information comes from, and
3) since it runs frequently enough (hourly)...
therefor I would vote for modifying GetArp.pl to do the DNS queries, and either modify the output of MacList to include the matching DNS name, or write a new file with IP and FQDN.
Then, of course, SwitchMap.pl would have to read in the file, and either use the 'cached' data, or if no "hit" then attempt a gethostbyaddr().
Pete: if you concur, then would you want me to write some of this?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here is the idea I would suggest. Since Windows DNS is INCREDIBLY slow and DNS timeouts add up quickly I would suggest making the DNS function its own function that can be called independently and the output of it would go into a file. This file could be one of a couple of things 1) effectively update the /etc/hosts file, 2) update the .idlesince / MAC-IP file with these DNS entries. Once you have the ability to create a file with the DNS entries you can then simply run the DNS bit once, twice, or how ever many time you want a day.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I like the idea of a separate function, that updates a file. It would be nice if it would not check every IP every time. (At least make it a config option)
The only issue I see with SwitchMap.pl checking the IP's the file does not have is most likely they will timeout and timeouts are what is causing the slowness. So in turn you just put all the slowness back in.
How about list the timeouts in the file and only have SwitchMap.pl check for DNS in ones not in the file. This would let you get any new ones at the end, but skip all the timeouts.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In all reality if you are using standard DNS functions you are correct. If it is merely looking at a file and taking what it finds in there then you don't have such an issue. I think updating the .idlesince or MAC-IP file would be the best then that way it will port between windows and *nix.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think this is a DNS timeout issue... I'm seeing about a 20msec/query rate, which is not horrible. The problem is doing 15,000 DNS queries in the first place.
Offloading the DNS queries to a different app (or putting them in GetArp) means that during SwitchMap.pl itself the time-to-resolve is nearly instantaneous... at the cost of increasing SwitchMap.pl's memory footprint.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
With the work I have done in perl hold 15K DNS queries in memory shouldn't be very much at all. I could certainly be wrong.
You are probably seeing 20msec/query for successful DNS queries not DNS queries that are unknown. Call it 20msec call it 500msec it is going to be MUCH slower than reading in a file, creating a hash/array/list/etc, then doing a lookup for what you want based on IP/MAC.
Just my two cents. It would be great if someone had time to spend coding this small change. :(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
as another windows user, I wonder if the DNS data can be extracted from a Microsoft DHCP server via netsh. This could produce a CSV file which could be used to populate switchmap in a fraction of the time.
Having not examined the DNS routines that switchmap uses, i'm not sure why windows DNS is so much slower than bind. - Presumably its only requesting resolution on IP addresses discovered on interfaces, and thus its IP addresses that have no registered name that causes the delay??
I know that standard DNS timeout in windows is 2seconds per request, is this the cause of the problem?
Nick
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not sure what the cause is of Windows being so slow to get the DNS stuff. However I have the issue and yes my switchmap runs on Windows. However I do use bind on a linux box. So it is not using a MS DNS server that causes the issue.
On that note exporting data from a MS DNS or DHCP server would not work well as it will not port to any other environment.
However what about looking at grabbing the zone file via DNS? you would have to config your DNS server to allow it, but the decreased load on the server may be worth it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Both are great ideas, the issue with zone transfers is if they corporation is secure they won't allow it. Zone transfers are normally restricted to only other DNS servers.
Windows is much slower for the timeout compared to Bind on Linux. I don't know if it is configuration issue or not, but I know Windows DNS resolution has always been slower in every corp env I have been in.
I think the simplest and most universal way is to do the DNS queries x number of times a day (user configurable). This will fit everyones environment and it will lower the time to complete switchmap.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
but is this because nslookup (which runs on the host) be default is configured for 2 seconds is the root cause. This could explain why its not the DNS server that introduces the problem, but the OS routine that queries it??
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am not a windows user when it comes to servers. A windows server does take longer to return a response for a DNS query which it has no record for.
To further the point of using a cache file would be to do what this thread is all about, speed up DNS queries. No matter what you will not have less than 1 sec for a DNS query timeout. That is why it would be ideal to keep a file for this bit of info then you can simply update it as needed and not affect the time it takes to run switchmap.
My suggestion would be to turn off DNS resolution on your server and see how fast switchmap runs for you. If at that time it runs real fast then you can clearly see what is taking up all the time.
Quite honestly it is up to Pete as to what he will go ahead with since he will likely be coding it as I don't have any time at the moment to contribute. Granted it would be rather trivial.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Jeff I if I am not mistaken you would need to remove your DNS server configuration on your adapter. Switchmap uses what ever the OS uses for DNS. It is completely oblivious DNS as far as the app goes it just makes a DNS query expecting that there will be a DNS server to respond. If no DNS server responds it will fail immediately (rather from what I recall).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
But if I do that then SwitchMap.pl would run very fast or fail, because it would have no switches to run on. If there is no DNS servers it can't run the list of switches.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Doing debugging of SwitchMap I have discovered that SwitchMap spends a LOT of time doing DNS queries. In my case the total run-time for SwitchMap is almost 11 minutes, and you can see below that it spent 3:25 doing the DNS lookups (205sec/655sec= 31%!!!). I suppose running a caching-only DNS server on my system is a possibility, but I wonder if there might be some more clever option/method. Have you looked in to this at all?
$ time ./SwitchMap.pl -d 2 > /tmp/dbg.out 2> /tmp/dbg.err
2009/06/24 15:27:17: main::: SwitchMap version 11.13 starting...
2009/06/24 15:27:17: CiscoConstants::initialize: called, reading /home/thorsond/switchmap-11.13/CISCO-PRODUCTS-MIB.my
2009/06/24 15:27:17: CiscoConstants::initialize: reading /home/thorsond/switchmap-11.13/CISCO-STACK-MIB.my
2009/06/24 15:27:17: CiscoConstants::initialize: returning, got 947 product OIDs, 61 workgroup OIDs and 264 module descriptions
2009/06/24 15:27:17: SnmpCommunities::initialize: called
2009/06/24 15:27:17: SnmpCommunities::initialize: reading SNMP communities from file ./netmon.cmstr on local host...
2009/06/24 15:27:17: SnmpCommunities::initialize: returning, got 2 SNMP community strings
2009/06/24 15:27:17: MacIpTables::initialize: called, getting switch names and MAC/IP relationships...
2009/06/24 15:27:17: MacIpTables::GetMacTablesFromFiles: called, reading MAC/IP table from /var/local/switchmap/MacList
2009/06/24 15:27:18: MacIpTables::GetMacTablesFromFiles: returning, got 12720 MAC-IPs
2009/06/24 15:27:18: MacIpTables::GetHostNames: called, getting DNS names for the IP addresses
2009/06/24 15:30:43: MacIpTables::GetHostNames: returning, got 11004 hostnames with 178 misses
2009/06/24 15:30:43: MacIpTables::initialize: returning, got 140 switch names from static array
[snip]
2009/06/24 15:38:12: main::: exiting normally...
real 10m55.077s
user 3m6.260s
sys 0m2.710s
FYI after correcting my DNS issues, SwitchMap.pl now spends 92% of it's time in "CreateSwitches"... which is good. Any new optimizations need to focus there.
FYI actual measurements per routine in SwitchMap.pl
Routine Name Time Pct
=========================== ======= ===
Initialize (less MacTables) 0:00:00 0%
GetMacTablesFromFiles 0:00:00 0%
GetHostNames 0:00:00 0%
CreateSwitches 0:06:53 92%
Vlans, Main Index, Css 0:00:06 1%
WriteSwitchesFiles 0:00:05 1%
WriteSwitchesIndex 0:00:00 0%
WriteSwitchTextFiles 0:00:04 1%
WriteUnusedDirectory 0:00:10 2%
WriteSparePortsFile 0:00:00 0%
WriteGigePerVlansDirectory 0:00:04 1%
WritePoePortsFile 0:00:03 1%
WriteSwitchCsvFiles 0:00:03 1%
WriteSearchHelpFile 0:00:00 0%
WriteModulesFile 0:00:00 0%
WriteStatisticsFile 0:00:00 0%
Wow. This has got to be the longest, fastest thread about SwitchMap that I've seen. 28 messages in less than 24 hours!
FWIW, we have 48 switches at my site, with ~8700 ports. SwitchMap takes about 5 minutes and 40 seconds to run. It spends 7 seconds in MacIpTables, which contains the DNS lookup code, and looks up about 4400 names. It runs on Linux box, and queries a (bind) DNS server running on another Linux box. I don't have much experience with Windows.
I run SwitchMap once a day, at 02:05pm. That's when our network is the busiest, so that's when the bridge tables in the switches have the most MACs. I run GetArp and ScanSwitch every hour. I'm not very concerned if SwitchMap takes a while to run.
BTW, when I made the speed improvements in version 11.0, it was because I just like faster code - it seemed the right thing to do. I think it's fast enough now. To make it faster, I'd have to consider asynchronous I/O, which doesn't seem worth the complexity, or threads, which Perl doesn't support portably.
I can understand that people with more switches might me more concerned about the speed.
I had the same DNS problem that Dan had. We have DNS subdomains at my site, and when the DNS server for a subdomain isn't working, SwitchMap does a 2 minute timeout on each individual lookup for addresses in the subdomain. To help find the problem, I put in a hack in MacIpTables.pm. If you look in that code for a comment that starts "If your DNS seems broken...", there are comments that describe how to make SwitchMap display DNS lookups as they happen. You'll be able to see which addresses are timing out, and hopefully go fix your DNS.
If I've read this thread correctly, Dan fixed his DNS problem, but Nick and Jeff still have problems. Can you guys try the mods to MacIpTables.pm?
I think this a DNS problem, not a SwitchMap problem. I don't like some of the solutions proposed, which involve another file and/or job that has to be run. I don't like doing DNS in GetArp either, which at my site would mean that I'd do the DNS lookups 24 times a day, to support a program that runs once a day.
Anyway, I enjoy the discussion, and I'd be happy to fix SwitchMap if this is a SwitchMap problem.
Hi Pete,
I have just uncommented those lines, and as I expected its my IP phones that are causing the problem.
All of my hosts respond instantly, but my phones take a few seconds to come back with 'Failed'.
If I run a reverse dns using nslookup, i get an instant response for the non existant record, so this (in my mind) rules out the name server. MS DNS in my case and bind in Jeff's. So whilst we are using different DNS servers, we are experiencing the same delays, which i figure points to the host running switchmap, which for us poor souls is windows.
Now, i'm not blaming the switchmap code, but for some reason the windows host introduces the delay when quering a sever (MS or bind) for a non-existant record.
Just as a side note, this is not a major problem for me, as our production server is CentOS, but my windows test rig suffers from this, which again points to the host, not the server.
it would be great if we can identify precisly what is causing the problem in windows, I am now off to start digging...
Nick,
I don't recall what method Switchmap uses to do DNS resolution in windows. Make sure your are doing the reverse resolution the same way switchmap is.
i have a suspicion NetBios is at fault here.
The priorities in the windows registry go: Local name, host file, DNS, and finally NetBios.
it seems reasonable to me that the code and DNS is working perfectly, but windows in its infinate wisdom tries a netbios lookup when dns fails.
i'm trying to prove this on my windows box in the office (i'm at home) but its going to need a reboot, and its late here.
i'll try and pick this up tomorrow, but this would explain the windows problem if i'm right.
It does look like the Windows name lookup API will use NetBIOS over Tcpip to resolve names for everything if DNS does not work. If I ping a name that has no A record it does take a while to time out. However DNS does not time out it responds with a no record exists. If I disable NetBIOS over Tcpip the ping fails right away.
So this does not look like a DNS server issue or a switchmap issue, but a OS issue. On that note I have been researching NetBIOS over Tcpip for a while now and it looks like for the most part it is no longer needed.
Turning off NetBIOS over Tcpip on the server running switchmap just took a third of the run time.
Average run time was 28 min. now 17 minutes.
Peter you are correct the OS should be doing caching. However us Windows servers people (I know don't say it) didn't understand that switchmap (perl really) was using the OS tools for DNS resolution and assumed Perl or switchmap was using it's own DNS client. Now that we know it is using Windows DNS client, and that client by default looks up unresolved names via NetBios (with a very long timeout) once we turn that off we are running so much better.
Thank you all for your help on this issue. There is noting for switchmap to fix as it is an OS config issue nothing else!
I have noticed that myself. However my run time is about 30 minutes with 10 of that being DNS.
I was wondering could switchmap keep a cache of DNS with an expiration? Even if we used half of the TTL that would speed up the runtime a lot.
So it's taking about 1/3 of your total time, too... at least that's consistent!
It seems to me that Switchmap will have to pay the price of the DNS queries no matter what... so the issue is where/when to take the hit.
Given that GetArp.pl
1) takes a small fraction of SwitchMap.pl's runtime (about 20 seconds on my system, compared to SwitchMap.pl's 11 minutes), and
2) since that's where the initial IP addr information comes from, and
3) since it runs frequently enough (hourly)...
therefor I would vote for modifying GetArp.pl to do the DNS queries, and either modify the output of MacList to include the matching DNS name, or write a new file with IP and FQDN.
Then, of course, SwitchMap.pl would have to read in the file, and either use the 'cached' data, or if no "hit" then attempt a gethostbyaddr().
Pete: if you concur, then would you want me to write some of this?
Here is the idea I would suggest. Since Windows DNS is INCREDIBLY slow and DNS timeouts add up quickly I would suggest making the DNS function its own function that can be called independently and the output of it would go into a file. This file could be one of a couple of things 1) effectively update the /etc/hosts file, 2) update the .idlesince / MAC-IP file with these DNS entries. Once you have the ability to create a file with the DNS entries you can then simply run the DNS bit once, twice, or how ever many time you want a day.
I like the idea of a separate function, that updates a file. It would be nice if it would not check every IP every time. (At least make it a config option)
The only issue I see with SwitchMap.pl checking the IP's the file does not have is most likely they will timeout and timeouts are what is causing the slowness. So in turn you just put all the slowness back in.
How about list the timeouts in the file and only have SwitchMap.pl check for DNS in ones not in the file. This would let you get any new ones at the end, but skip all the timeouts.
In all reality if you are using standard DNS functions you are correct. If it is merely looking at a file and taking what it finds in there then you don't have such an issue. I think updating the .idlesince or MAC-IP file would be the best then that way it will port between windows and *nix.
I don't think this is a DNS timeout issue... I'm seeing about a 20msec/query rate, which is not horrible. The problem is doing 15,000 DNS queries in the first place.
Offloading the DNS queries to a different app (or putting them in GetArp) means that during SwitchMap.pl itself the time-to-resolve is nearly instantaneous... at the cost of increasing SwitchMap.pl's memory footprint.
Dan,
With the work I have done in perl hold 15K DNS queries in memory shouldn't be very much at all. I could certainly be wrong.
You are probably seeing 20msec/query for successful DNS queries not DNS queries that are unknown. Call it 20msec call it 500msec it is going to be MUCH slower than reading in a file, creating a hash/array/list/etc, then doing a lookup for what you want based on IP/MAC.
Just my two cents. It would be great if someone had time to spend coding this small change. :(
as another windows user, I wonder if the DNS data can be extracted from a Microsoft DHCP server via netsh. This could produce a CSV file which could be used to populate switchmap in a fraction of the time.
Having not examined the DNS routines that switchmap uses, i'm not sure why windows DNS is so much slower than bind. - Presumably its only requesting resolution on IP addresses discovered on interfaces, and thus its IP addresses that have no registered name that causes the delay??
I know that standard DNS timeout in windows is 2seconds per request, is this the cause of the problem?
Nick
Not sure what the cause is of Windows being so slow to get the DNS stuff. However I have the issue and yes my switchmap runs on Windows. However I do use bind on a linux box. So it is not using a MS DNS server that causes the issue.
On that note exporting data from a MS DNS or DHCP server would not work well as it will not port to any other environment.
However what about looking at grabbing the zone file via DNS? you would have to config your DNS server to allow it, but the decreased load on the server may be worth it.
Both are great ideas, the issue with zone transfers is if they corporation is secure they won't allow it. Zone transfers are normally restricted to only other DNS servers.
Windows is much slower for the timeout compared to Bind on Linux. I don't know if it is configuration issue or not, but I know Windows DNS resolution has always been slower in every corp env I have been in.
I think the simplest and most universal way is to do the DNS queries x number of times a day (user configurable). This will fit everyones environment and it will lower the time to complete switchmap.
but is this because nslookup (which runs on the host) be default is configured for 2 seconds is the root cause. This could explain why its not the DNS server that introduces the problem, but the OS routine that queries it??
I am not a windows user when it comes to servers. A windows server does take longer to return a response for a DNS query which it has no record for.
To further the point of using a cache file would be to do what this thread is all about, speed up DNS queries. No matter what you will not have less than 1 sec for a DNS query timeout. That is why it would be ideal to keep a file for this bit of info then you can simply update it as needed and not affect the time it takes to run switchmap.
My suggestion would be to turn off DNS resolution on your server and see how fast switchmap runs for you. If at that time it runs real fast then you can clearly see what is taking up all the time.
Quite honestly it is up to Pete as to what he will go ahead with since he will likely be coding it as I don't have any time at the moment to contribute. Granted it would be rather trivial.
Lance -
That is a great idea on how to test to see if DNS is the slowness issue, or if there is just a lot that switchmap is doing.
However I don't see an option to turn off DNS resolution in the ThisSite.pm. How would someone do that?
Thank You
Jeff I if I am not mistaken you would need to remove your DNS server configuration on your adapter. Switchmap uses what ever the OS uses for DNS. It is completely oblivious DNS as far as the app goes it just makes a DNS query expecting that there will be a DNS server to respond. If no DNS server responds it will fail immediately (rather from what I recall).
But if I do that then SwitchMap.pl would run very fast or fail, because it would have no switches to run on. If there is no DNS servers it can't run the list of switches.