iSCSI boot with Intel NICs added to windows 2008 r2 routing table causes non iscsi traffic to attempt default routes on iscsi networks

I have a server with Intel 82576 Gigabit Dual Port Nics.  I have configured them to use iSCSI boot the primary looks to 10.0.0.1/24 and the secondary looks to 10.0.1.1/24.  The target is configured correctly.  Everything boots as expected.  I have added the MPIO feature and configured MPIO for the iscsi initiator as per: http://blogs.technet.com/b/migreene/archive/2009/08/29/3277914.aspx.  My issue is that the iSCSI networks show up in the routing table like so:

I did not configure a default route in the Intel setup utility:

I tried to explicitly remove the 0.0.0.0 entry and leave blank, with no change.  As you can see with the above routing table traffic attempts to travel over these routes:

 

C:\Users\Administrator>ping google.com

Pinging google.com [209.85.145.99] with 32 bytes of data:
Reply from 10.0.0.201: Destination host unreachable.
Reply from 10.0.1.201: Destination host unreachable.
Reply from 209.85.145.99: bytes=32 time=23ms TTL=51
Reply from 209.85.145.99: bytes=32 time=22ms TTL=51

Ping statistics for 209.85.145.99:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:

A ping to the outside world first attempts on 10.0.0.x/24 network, then on 10.0.1.x/24 network and then finally on the network the traffic should go over.  I don't want my iSCSI traffic to ever show up with a default route.  How do I get rid of it? route delete 0.0.0.0 mask 0.0.0.0 "on-link" results in: The route deletion failed: The parameter is incorrect. route delete 0.0.0.0 mask 0.0.0.0 on-link results in: The route deletion failed: The parameter is incorrect. route delete 0.0.0.0 deletes all default routes, then I have to add back in the "valid default route" of 192.168.100.6. I would like to not have to do a route delete though.

 

November 22nd, 2011 2:04pm

OK, I figured out how to manually delete the entries.  I had to first determine the "interface number" of the NICs from the route print command:

 

===========================================================================
Interface List
 24...00 25 90 14 cc 19 ......Intel(R) 82599 Dual 10 Gigabit Network Connection #2
 23...00 25 90 14 cc 18 ......Intel(R) 82599 Dual 10 Gigabit Network Connection
 19...00 25 90 0e 15 25 ......Intel(R) PRO/1000 PT Dual Port Network Connection #4
 18...00 25 90 0e 15 24 ......Intel(R) PRO/1000 PT Dual Port Network Connection #3
 17...00 25 90 0e 15 27 ......Intel(R) PRO/1000 PT Dual Port Network Connection #2
 15...00 25 90 0e 15 26 ......Intel(R) PRO/1000 PT Dual Port Network Connection
 12...00 25 90 14 cc 1b ......Intel(R) 82576 Gigabit Dual Port Network Connection #2
 11...00 25 90 14 cc 1a ......Intel(R) 82576 Gigabit Dual Port Network Connection
  1...........................Software Loopback Interface 1
 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
 16...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 20...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
 21...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #5
 22...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #6
 25...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #7
 26...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #8
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0         On-link        10.0.0.201    266
          0.0.0.0          0.0.0.0         On-link        10.0.1.201    266
          0.0.0.0          0.0.0.0    192.168.100.6  192.168.100.127    266
         10.0.0.0    255.255.255.0         On-link        10.0.0.201    266
         10.0.0.1  255.255.255.255         On-link        10.0.0.201    266
       10.0.0.201  255.255.255.255         On-link        10.0.0.201    266
       10.0.0.255  255.255.255.255         On-link        10.0.0.201    266
         10.0.1.0    255.255.255.0         On-link        10.0.1.201    266
         10.0.1.1  255.255.255.255         On-link        10.0.1.201    266
       10.0.1.201  255.255.255.255         On-link        10.0.1.201    266
       10.0.1.255  255.255.255.255         On-link        10.0.1.201    266
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
    192.168.100.0    255.255.255.0         On-link   192.168.100.127    266
  192.168.100.127  255.255.255.255         On-link   192.168.100.127    266
  192.168.100.255  255.255.255.255         On-link   192.168.100.127    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link        10.0.0.201    266
        224.0.0.0        240.0.0.0         On-link        10.0.1.201    266
        224.0.0.0        240.0.0.0         On-link   192.168.100.127    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link        10.0.0.201    266
  255.255.255.255  255.255.255.255         On-link        10.0.1.201    266
  255.255.255.255  255.255.255.255         On-link   192.168.100.127    266
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0    192.168.100.6  Default 
===========================================================================


In my case it was the bold entries above interface numbers 11 & 12.  I knew this by comparing ipconfig results for the names of the interfaces.  Then I can type:

route delete 0.0.0.0 mask 0.0.0.0 if 11
route delete 0.0.0.0 mask 0.0.0.0 if 12

However, I still do not want the Intel iSCSI DHCP responder in the NIC to return a default route in the first place, any Ideas?

Free Windows Admin Tool Kit Click here and download it now
November 22nd, 2011 2:45pm

Hi Ben,

 

Thanks for posting here.

 

If I understand you correctly , we can first remove all default static route entries by executing the command “route delete 0.0.0.0” then all entries will be removed once . After that we can bind new default route entry for specific interface by specifying interface when execute “route add 0.0.0.0” . Of course we can also let system automatically do these by customizing these commands into a script file and run it after completed start.

 

Thanks.

 

Tiger Li

November 23rd, 2011 9:09am

Yes I can script it.  I suppose I can even use task scheduler to make sure the script runs on boot, but I guess I find it incomprehensible how a feature now so prevalent as iSCSI boot requires such a workaround.  Why does Intel's card respond to the DHCP request with gateway setting when none is specified?

So, Tiger Li, I take it from your response that I am just stuck with this "reality" and need to implement the workaround?

Free Windows Admin Tool Kit Click here and download it now
November 23rd, 2011 1:31pm

So I've sort of given up on fixing the gateway assignment in the route for iSCSI boot.  I configured a DHCP server to give out the information required by iSCSI boot and configured the network cards to use DHCP for their configuration.  I insured that my DHCP server gave out no default gateway entry.  However, I still got the undesired routes in the routing table.  This makes me assume that there isn't a "fix" for it, only the workaround.

Here is the script I run on each iSCSI Boot initiator (you would obviously change the ip number to suit your environment):

@Echo off

Rem fixes iscsi route problem as shown below:

Rem IPv4 Route Table
REM ===========================================================================
REM Active Routes:
REM Network Destination        Netmask          Gateway       Interface  Metric
REM           0.0.0.0          0.0.0.0         On-link        10.0.0.200  10255
REM           0.0.0.0          0.0.0.0         On-link        10.0.1.200    266
REM           0.0.0.0          0.0.0.0    192.168.100.6   192.168.100.98    266

REM The top 2 lines are on the iscsi interface and traffic tries to go out it
REM We need to delete the routes, so we'll just delete all gateway routes and
REM add back in the one we care about.

route delete 0.0.0.0  >c:\iscsibootroutefix.log

route -p add 0.0.0.0 mask 0.0.0.0 192.168.100.6 >>c:\iscsibootroutefix.log


After running it I get:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    192.168.100.6   192.168.100.98     11
         10.0.0.0    255.255.255.0         On-link        10.0.0.200  10255
         10.0.0.1  255.255.255.255         On-link        10.0.0.200  10255
       10.0.0.200  255.255.255.255         On-link        10.0.0.200  10255

Then I added a task in “task scheduler” of "administrative tools"  that ran as the user “system” “when the computer starts” that runs this script.

November 23rd, 2011 6:36pm

Hi Ben,

 

Thanks for posting here.

 

Have you installed any NIC configuration software from Intel on this server ? I knew some settings that we set at OS level will be overrode by such software. Can you verify that ?

If system will keep binding the default route to this interface even if we empty the gateway entry on this interface ,we might also try to change the interface binding to make the interface 192.168.100.127  top one to see how is going:

 

 

 

 

 

Thanks.

 

Tiger Li

Free Windows Admin Tool Kit Click here and download it now
November 24th, 2011 7:12am

A valiant effort for an idea, however, the nics being used for ISCI are already low in the order:

  • Proposed as answer by Samsonitered Tuesday, November 04, 2014 3:52 PM
  • Unproposed as answer by Samsonitered Tuesday, November 04, 2014 3:53 PM
November 27th, 2011 1:11am

Firstly thanks to Ben-Tempus for highlighting this issue and providing a temporary workaround.

This may be many years too late but I think I may have a solution for this. I encountered this issue when I was building Cisco UCS blades using iSCSI boot LUNs. It seems when a default gateway is not specified a default gateway of 0.0.0.0 is automatically appended (this is platform dependent and I have only confirmed this in the Cisco UCS environment using the VIC 1240 adapter) and this can be confirmed by running an ipconfig /all in command prompt. This is where the unhelpful active route pointing to the iSCSI NICs comes from and to cut a long story short the solution is to change the default metric on the iSCSI NIC(s) so that the LAN NIC active route(s) has precedence over the iSCSI active routes. To do this navigate to the relevant iSCSI NIC in the Network and Sharing Center and then click on properties. Select Internet Protocol Version 4 (TCP/IP) and select properties. On the next screen click on Advanced and then look for the Automatic metric tick box and the bottom of the next dialog box and remove the tick from Automatic metric and enter 306 as the new interface metric and OK out.

Image: iSCSI interface advanced settings

After doing this route print command should show the iSCSI active route with a metric of 562 which means it will never take precedence over the LAN interface active route.

Image: Active routes

This has resolved the issue for me but I'm not sure if there are any performance considerations in doing this?

  • Proposed as answer by Samsonitered Wednesday, November 05, 2014 4:34 PM
Free Windows Admin Tool Kit Click here and download it now
November 4th, 2014 5:10pm

I had the same issue with a UCS C220 M4 and bare metal Windows 2008 R2 installation.  The iSCSI vNICs were made gateways for 0.0.0.0 to the on-link.  I was able to delete them manually from the command line.  I ran "route print" and noted the interface number and metric of the route, then added it to the route delete command.

e.g. 

route delete 0.0.0.0 mask 0.0.0.0 0.0.0.0 metric 261 if 11


  • Edited by Max13311 7 hours 29 minutes ago
May 23rd, 2015 7:36pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics