Initiator cannot find the adapter when it has multiple IPs

Initiator (iSCSI, FCoE, AoE, iSER and NVMe over Fabrics), iSCSI accelerator and RAM disk

Moderators: anton (staff), art (staff), Max (staff), Anatoly (staff)

Post Reply
haruka
Posts: 2
Joined: Wed Apr 23, 2025 8:04 pm

Wed Apr 23, 2025 8:32 pm

My main network interface on Windows has 2 IPs - 10.224.2.0/17 and 10.224.128.2/17. However, the CLI tool can only identify the correct adapter with the first IP, not the second one.

Code: Select all

PS C:\Users\User> StarNVMeoF_Ctrl.exe discovery 10.224.128.1:4420 10.224.128.2

StarNVMeoF Controller Application v 2.0.0.672
Our Miniport #9 (ver 2.0 build 672)
Discovering of RDMA addr 10.224.128.1:4420 from 10.224.128.2...
Adapter Addr '10.224.128.2' not found!
Invalid local network adapter's addr 10.224.128.2!
Discovery() failed!
On the target side, there are 2 corresponding IPs - 10.224.1.1/17 and 10.224.128.1/17. However, only the second one can be used for RDMA due to configuration limitations, and while technically I can reach 10.224.128.1 from 10.224.2.0 due to routing configuration, I cannot initiate the session with that IP; I get CM ConnectReject instead.

I guess the CLI tool is using the first IP returned by Windows to identify interfaces, in this case 10.224.2.0, as only that IP is listed in the Windows iSCSI initiator GUI when I choose the StarWind NVMe-oF controller.

There is a workaround for me though: I can remove the offending IP, initiate the session, then add the IP back. I currently have a batch script for this, but I think it might be better if the initiator CLI tool could enumerate all IPs on interfaces instead so the workaround is not needed. Plus I could use the Windows GUI to manage the sessions.

Both NICs are ConnectX-5, but that's probably irrelevant here.

(Before you ask about my network configuration: this is kind of needed for me to use RDMA if I want to use PFC on the Windows side. I don't have a PFC capable switch, so I have to directly connect two machines together. The target machine is also a router, so I have to bridge the RDMA NIC with another link, so the IPv4 network is shared with other devices. However, with PFC and the VLAN 0 Ethernet header, the target machine cannot identify any IB packet, as it's expecting packets without the 1Q header (this probably needs to be fixed instead, but I cannot find a way to fix it). I then have to add a new VLAN for both machines to make IB actually usable, and that's why the second IPv4 network is needed if I don't want to further screw with the routing. It's messed up, but that's what I have to work with for now.)
yaroslav (staff)
Staff
Posts: 3424
Joined: Mon Nov 18, 2019 11:11 am

Thu Apr 24, 2025 3:48 pm

Welcome to StarWind Forum!
I think we are dealing here with unintended configuration: Using 2 IPs is not what we generally recommend and do in any of the deployments
haruka
Posts: 2
Joined: Wed Apr 23, 2025 8:04 pm

Thu Apr 24, 2025 6:12 pm

I agree it's very uncommon to have multiple IPs on one interface. In theory though, I don't think it's too hard to add - you should already have all the data when enumerating adapters in IpAddressList property.
yaroslav (staff)
Staff
Posts: 3424
Joined: Mon Nov 18, 2019 11:11 am

Fri Apr 25, 2025 6:32 am

I will file a feature request, yet we generally recommend assigning a single IP to an adapter.
Post Reply