Jump to content
  • 0

USB NIC with XenServer 7?


uemit.ince

Question

Hello together,

 

I plan to buy an Intel NUC Kit NUC6i7KYK for my lab environment. Unfortunately the NUC has only 1 NIC and I need another one for Management. Anyone know if there is a USB NIC out there which supported by XenServer 7?

 

Thank you.

 

 

Cheers,

 

Ümit

Link to comment

18 answers to this question

Recommended Posts

Hi

I installed Startech USB31000NDS usb3-ethernet adapter, and I can access it, and read traffic.

However, every time I reboot the hypervisor server the device name changes, such as side-735-eth0  (even the port can change, despite it being in the same usb3 port).

 

Is there a reason for this, can it be aliased to show itself as eth1 for example?

 

Any tips gratefully received.

 

Aimee

 

ps as an aside, there are an increasing number of NIC's, and I cannot see a way to delete them, however ifconfig only sees the latest one after the reboot.

 

Same here, please post an update if you can find a way around this which is rather simple.

//Niklas

Link to comment
On 12/9/2016 at 10:51 AM, Trond Eirik Haringvarstein said:

I'm planning on doing the same for my upcoming Automation Framework Master Class. I would highly recommend the following : StarTech USB 3.0 to Gigabit Ethernet NIC Network Adapter - http://a.co/bS5UxSG

 

The VMware Community have got it working with ESXi so I guess it will fly with XenServer as well.

 

Unfortunately I don't have the chance to pick this up now, so if there's anyone out there from US/UK that are running Citrix XenServer 7 on Intel NUC 6th Gen (NUC6i5SYH) I will happily ship one for free so you can test, even get some developer to produce a driver if needed.

 

Eric

I was wondering if anyone tested the StarTech USB 3.0 (http://a.co/bS5UxSG) Model usb31000S  with XenServer 7.6 and a Skull Canyon? I have one of these and the SC can see the adapter, but when a cable is plugged in it just sees it as disconnected.

Link to comment

I see that this thread hasn't had many posts in a while.  I recently started assembling my home lab for a masters program in Cyber Security.  After researching I found that I could work with a NUC7i7DNHE or something like that.  For a hypervisor I selected Xenserver.  I went with the latest version (7.6) and after configuring some settings in the BIOS I was able to get it to work.  I also purchased the Startech USB 3.0 Dual Gigabit ethernet adapter.  I was unable to get it to work, so I purchased two of the Startech USB 2.0 Ethernet adapters.  I was trying to look through these forums for a solution, but none of them seemed to work for me. 

 

After watching a video about how the simplest and easiest hacking methods (low hanging fruit) are the staple for Cyber Security professionals, it dawned on me to search some linux forums instead of using xenserver as a key search term.  My interfaces were not maintaining a persistent name, and the naming convention was part of this "sideways" function of interface-rename.py.  I learned that you can modify device names by adding them to /etc/udev/rules.d/70-persistent-net.rules.  In XenServer, this file does not exist, or is empty.

 

This is the format in which you add it using vi:

 

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd"(enter your mac here), ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"(enter the device name here)

 

One thing you need to do is add the onboard NIC to this along with any adapter NIC's.  To get the information you need to add to the file above, you will want to first connect your USB adapters and log into the xenserver.  Enter #ifconfig -a to get a list of all of the interfaces on the device.  My adapters were listed as "side-1234-eth1" and "side-4321-eth0." Make sure to write down the MAC for these two devices as well as eth0 which would be your onboard NIC.

 

When editing the 70-persistent-net.rules file make sure you set up the onboard NIC as "eth0."  And then name the other two "eth1" and "eth2" for simplicity.  When you have entered this information in insert mode, press esc to enter command mode in vi and then you can type :w and press enter, then type :q to quit, or just type :x to write and exit.  Once these entries are made you will want to restart your xenserver for the changes to take effect.

 

When the server reboots, you will want to run xe pif-list to display the current devices listed.  If the old side-1234-eth1 interfaces are in there still, run a xe pif-forget uuid=(enter the device uuid from xe pif-list output.)  You are going to need to verify that the NIC's are listed in the interface, so run #ifconfig -a to make sure you are seeing the device names with the MAC addresses.  At this time you will also want to get your host-uuid, so enter #xe host-list to get this information.  Some tutorials will also tell you to run #xe pif-scan host-uuid=(host uuid from #xe host-list) to see the new devices.

 

The next step would be to introduce the devices and retrieve a uuid from xenserver.  #xe pif-introduce host-uuid=(host uuid here) device=(eth0,eth1, or eth3) mac=(MAC address, all lowercase with colons.)  The output of the terminal will be the uuid of the device.  You will use that to enter #xe pif-plug uuid=(uuid from pif-introduce.)  This should complete the process, make sure to run #xe pif-list to check that your devices are shown and currently attached = true.  

 

If anyone has input on how to make this work better, or if this is the wrong way to do things I am open to suggestions.  My xenserver is currently up and running with all three interfaces.  

 

Thanks! -360mtucker@gmail.com

Link to comment

Here is a better solution, perhaps.

This works on real nics, as I don't have the usb nic any more, perhaps someone can test it?

 

#!/bin/sh

# false is good
looking=true
# snooze time
snooze=5
# looking for
viflook=vif
# file to show time and vif
file=/opt/ranbridge
# nic to bridge, the real one attatched to the hyperviser
# ie the one with a cable in it :)
nic=eth1

touch $file

while ($looking)
do

    echo "looking..."

    #BRIDGE="$(ovs-vsctl show | grep "\.1" | grep "Interface" | awk '{ print $2 }' | tr -d '"' )" 

    BRIDGE="$(ovs-vsctl show | grep "\.1" | grep "Interface" | awk '{ print $2 }' | tr -d '"' )"

    if [[ $BRIDGE =~ $viflook ]];
    then
            echo "True"

        echo $BRIDGE

        declare -a arr=($BRIDGE)

        ## now loop through the above array
    
        for i in "${arr[@]}"
        do
               #echo "$i"
               # or do whatever with individual element of the array

            #ovs-vsctl -- set Bridge xenbr1 mirrors=@m -- --id=@eth1 get Port eth1 -- --id=@$i get Port $i -- --id=@m create Mirror name=eth1-mirror select-dst-port=@eth1 select-src-port=@eth1 output-port=@$i

            ovs-vsctl -- set Bridge xenbr1 mirrors=@m -- --id=@$nic get Port $nic -- --id=@$i get Port $i -- --id=@m create Mirror name=eth1-mirror select-dst-port=@$nic select-src-port=@$nic output-port=@$i   

            truncate -s  0 $file

            echo "$(cat $file)$BRIDGE" > $file
            
            looking=false

            #ovs-vsctl show 
        done
    else

        sleep $snooze

    fi
done


echo "exiting..."
exit

Link to comment

Hi

 

This worked for me

 

 

#!/bin/sh

 

sleep 30

 

#change if required

new="eth1"

 

old="$(ip a | grep side | awk '{ print $2 }')"

 

echo $old

echo $new

 

#ip change name will not work if the iface is up

ifconfig $old down

 

#rename

ip link set $old name $new

 

# bring it up

ifconfig $new promisc up

 

 

The delay was required, dont know why or what the best value will be for other servers,

I am sure someone will improve on my script, and tell me the better way to initiate it :)

 

in /etc/rc.local (dont forget to follow the instruction to make it executable) insert a call to the script

for example

 

/opt/renusbeth &

 

Hope it works for you, ensure you backup the server prior to doing this (standard disclaimer) :)

 

Aimee 

 

ps I got rid of all the other bogus entries, eventually using xe pif-forget uuid=whatever

 

where whatever is the long uid

Link to comment

Hi Aime

 

Hello Niklas,

 

can you post an update to this thread? Did it work with the StarTech USB Device?

 

Thanks

Sebastian

 

Sorry, I missed this one.

Yes I got it to work, but everytime I reboot the machine I get a new NIC-id which is really frustrating.
All tho I tested it in ESXI and it works fine so I went that way instead for my home-lab :-)
//Niklas

Link to comment

Hi

I installed Startech USB31000NDS usb3-ethernet adapter, and I can access it, and read traffic.

However, every time I reboot the hypervisor server the device name changes, such as side-735-eth0  (even the port can change, despite it being in the same usb3 port).

 

Is there a reason for this, can it be aliased to show itself as eth1 for example?

 

Any tips gratefully received.

 

Aimee

 

ps as an aside, there are an increasing number of NIC's, and I cannot see a way to delete them, however ifconfig only sees the latest one after the reboot.

Link to comment

I'm planning on doing the same for my upcoming Automation Framework Master Class. I would highly recommend the following : StarTech USB 3.0 to Gigabit Ethernet NIC Network Adapter - http://a.co/bS5UxSG

 

The VMware Community have got it working with ESXi so I guess it will fly with XenServer as well.

 

Unfortunately I don't have the chance to pick this up now, so if there's anyone out there from US/UK that are running Citrix XenServer 7 on Intel NUC 6th Gen (NUC6i5SYH) I will happily ship one for free so you can test, even get some developer to produce a driver if needed.

 

Eric

Link to comment

Doubtful. What I would do is get one that says it supports Linux like the Plugable USB Ethernet Adapter and if it doesn't work by default then you would need to use the DDK to compile a driver for it. Unfortunately its going to be hit and miss on getting something to work since thats not a normal supported server for installation.

 

--Alan--

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...