lost and found ( for me ? )

How to have Solaris 10 x86 VM running within ESXi recognize vNICs

I’ve installed Solaris 10 on ESXi as a virtual machine.
# uname –a
SunOS unknown 5.10 Generic_147441-01 i86pc i386 i86pc

After finishing the installation , I added two additional vNICs to the VM.
However Solaris VM does not seem to recognize vNICs I added to the VM.

The VM has totally three vNICs ( driver is e1000 )
e1000g0 is the vNIC I added when installing Solaris.
# ifconfig  e1000g0
e1000g0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 2
       inet 192.168.11.215 netmask ffffff00 broadcast 192.168.11.255
       ether aa:aa

There are no two vNICs I added to the VM after the installation
bash-3.2# ifconfig  e1000g1
ifconfig: status: SIOCGLIFFLAGS: e1000g1: no such interface
bash-3.2# ifconfig  e1000g2
ifconfig: status: SIOCGLIFFLAGS: e1000g2: no such interface

dmesg
bash-3.2# dmesg | grep e1000g | grep register
Dec 26 22:37:06 unknown mac: [ID 469746 kern.info] NOTICE: e1000g0 registered
Dec 26 22:37:37 unknown mac: [ID 469746 kern.info] NOTICE: e1000g1 registered
Dec 26 22:37:37 unknown mac: [ID 469746 kern.info] NOTICE: e1000g2 registered
Dec 26 22:37:59 unknown mac: [ID 736570 kern.info] NOTICE: e1000g1 unregistered
Dec 26 22:37:59 unknown mac: [ID 736570 kern.info] NOTICE: e1000g2 unregistered

check “/etc/path_to_inst” file
bash-3.2# egrep e1000 /etc/path_to_inst
"/pci@0,0/pci15ad,790@11/pci15ad,750@0" 0 "e1000g"
"/pci@0,0/pci15ad,790@11/pci15ad,750@2" 1 "e1000g"
"/pci@0,0/pci15ad,790@11/pci15ad,750@3" 2 "e1000g"

Seen from the logs , the VM seems to recognize vNICs at the hardware level.

enable e1000g1 and e1000g2 with ifconfig.
bash-3.2# ifconfig e1000g1 plumb
bash-3.2# ifconfig e1000g2 plumb

The VM has recognized all vNICs
bash-3.2# ifconfig e1000g1
e1000g1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
       inet 0.0.0.0 netmask 0
       ether zz:zz

bash-3.2# ifconfig e1000g2
e1000g2: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
       inet 0.0.0.0 netmask 0
       ether zz:zz


Seen from the man of “ifconfig” , it describes :
    plumb

        Open the device associated with the  physical  interface
        name  and  set  up  the streams needed for IP to use the
        device. When used with a logical  interface  name,  this
        command  is  used  to  create  a  specific named logical
        interface. An interface must be separately  plumbed  for
        use  by IPv4 and IPv6. The address_family parameter con-
        trols whether the ifconfig command applies  to  IPv4  or
        IPv6.

        Before an interface has been plumbed, the interface will
        not show up in the output of the ifconfig -a command.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.