PowerShell y en particular PowerCLI de VMware, es una de las herramientas que más estoy utilizando últimamente y cada vez me gusta más todas las opciones que nos ofrece a los administradores de sistemas. Es verdad que te tiene que gustarte también el tema de la programación, pero con los caminos que está tomando Windows, PowerShell se está convirtiendo en una de sus principales características.
Hoy vamos a comentar brevemente algunos de los comandos necesarios para gestionar la red de las máquinas virtuales en una infraestructura con VMware. Hay varias situaciones en las que PowerCLI es casi una herramienta básica a la hora de poder realizar varias tareas con las máquinas virtuales:
- Tener un inventario de las redes a las que están conectadas las máquinas virtuales
- Tener un inventario de direcciones IP asignadas
- Ver los tipos de interfaces de red de las máquinas virtuales
- Hacer un cambio masivo de alguno de los parámetros de las máquinas (por ejemplo cambiar las tarjetas de red de las máquinas a las de tipo VMXNET3)
Es importante hacer indicar que además de poder consultar la información, por así decirlo, hardware de la máquina virtual, también tenemos cmdlets que nos permiten consultar información en el sistema operativo de cada máquina, pudiendo obtener información más detallada.
Obtener información de las máquinas virtuales
El primer comando para obtener información de las máquinas virtuales es Get-NetworkAdapter
Este comando nos devolverá el listado de tarjetas de red que tiene asignada una máquina virtual.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
PowerCLI C:\> Get-NetworkAdapter windows2008 Name Type NetworkName MacAddress WakeOnLan Enabled ---- ---- ----------- ---------- --------- Network adapter 1 e1000 VMWARE-In... 00:50:56:8f:70:67 False PowerCLI C:\> Get-NetworkAdapter windows2008 | fl MacAddress : 00:50:56:8f:70:67 WakeOnLanEnabled : False NetworkName : VMWARE-Interna Type : e1000 ParentId : VirtualMachine-vm-1182 Parent : WINDOWS2008 Uid : /VIServer=localdomain\usuario@vcenter01.localdomain.local:443/VirtualMachine=VirtualMachine-vm-1182/NetworkAdapter= 4000/ ConnectionState : Connected, GuestControl, StartConnected ExtensionData : VMware.Vim.VirtualE1000 Id : VirtualMachine-vm-1182/4000 Name : Network adapter 1 |
Vemos que con este comando podemos obtener la principal información relacionada con el interfaz que tiene la máquina virtual (en este caso la máquina virtual llamada Windows2008)
- Tenemos la MAC: 00:50:56:8f:70:67
- Red a la que se conecta: VMWARE-Interna
- Tipo de tarjeta: e1000
- Estado de la conexión: Connected, GuestControl, StartConnected
- Nombre: Network adapter 1
Pero todavía hay más, si queremos obtener, por ejemplo, si la dirección MAC está configurada de forma manual o de forma automática, no tenemos más que acceder a la propiedad ExtensionData
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PowerCLI C:\> (Get-NetworkAdapter windows2008).ExtensionData AddressType : assigned MacAddress : 00:50:56:8f:70:67 WakeOnLanEnabled : False Key : 4000 DeviceInfo : VMware.Vim.Description Backing : VMware.Vim.VirtualEthernetCardNetworkBackingInfo Connectable : VMware.Vim.VirtualDeviceConnectInfo SlotInfo : VMware.Vim.VirtualDevicePciBusSlotInfo ControllerKey : 100 UnitNumber : 7 DynamicType : DynamicProperty : |
Vemos que en este caso es de tipo assigned y no manual, por lo que la MAC se ha generado de forma automática.
Con el comando Get-NetworkAdapter vemos que podemos obtener la información que podríamos definir como Hardware, pero ¿cómo podemos acceder a la información de la tarjeta de red a nivel de sistema operativo? ¿qué dirección IP tiene asignada? ¿qué máscara de red?
Si queremos tener acceso a esta información tenemos dos opciones. Si únicamente queremos acceder a la dirección IP únicamente tenemos que acceder a la propiedad correspondiente de la máquina virtual
1 2 |
PowerCLI C:\> (Get-VM Windows2008).Guest.IPAddress 169.254.34.128 |
Si queremos obtener más información lo que tenemos que hacer es utilizar el comando Get-VMGuestNetworkInterface
Con este comando podemos acceder a la información desde el propio Sistema Operativo por lo que necesitaremos proporcionar las credenciales de un usuario con acceso al sistema operativo cliente de la máquina virtual.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
PowerCLI C:\> Get-VMGuestNetworkInterface -VM Windows2008 -GuestUser Administrat or -GuestPassword Passw0rd VM Name IP IPPolicy SubnetMask -- ---- -- -------- ---------- WINDOWS2008 Local Area Connection 192.168.0.11 Dhcp 255.255... PowerCLI C:\> (Get-VMGuestNetworkInterface -VM Windows2008 -GuestUser Administra tor -GuestPassword Passw0rd) | fl VMId : VirtualMachine-vm-1182 VM : WINDOWS2008 NetworkAdapter : Network adapter 1 SubnetMask : 255.255.0.0 NicId : VirtualMachine-vm-1182/4000 NetworkAdapterId : VirtualMachine-vm-1182/4000 Name : Local Area Connection IPPolicy : static Ip : 192.168.0.11 Dns : 192.168.1.2 DefaultGateway : 192.168.0.1 Description : Intel(R) PRO/1000 MT Network Connection Mac : 00-50-56-8F-70-67 RouteInterfaceId : 12 Uid : /VIServer=localdomain\user@vcenter01.localdomain.local:443/VMGuestNetworkInterface=VirtualMachine-vm-1182-Local Area Connection/ |
Como podemos ver, aquí tenemos más información relacionada con la configuración de red a nivel de sistema operativo. Podemos ver que el interfaz está configurado por con una IP fija (static), máscara de red (255.255.0.0), puerta de enlace (192.168.0.1) el nombre de la conexión a nivel de Windows (Local Area Connection) …
Para completar los comandos con los que podemos obtener información de la red de las máquinas virtuales, vamos a mostrar el comando Get-VMGuestRoute. Este comando nos muestra la tabla de rutas del sistema operativo. Al igual que el comando anterior es necesario pasar las credenciales de un usuario con acceso al sistema operativo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
PowerCLI C:\> Get-VMGuestRoute -VM Windows2008 -GuestUser Administrator -GuestPa ssword Passw0rd Interface Destination Netmask Gateway --------- ----------- ------- ------- 127.0.0.1 127.0.0.0 255.0.0.0 On-link 127.0.0.1 127.0.0.1 255.255.255.255 On-link 127.0.0.1 127.255.255.255 255.255.255.255 On-link 169.254.34.128 169.254.0.0 255.255.0.0 On-link 169.254.34.128 169.254.34.128 255.255.255.255 On-link 169.254.34.128 169.254.255.255 255.255.255.255 On-link 127.0.0.1 224.0.0.0 240.0.0.0 On-link 169.254.34.128 224.0.0.0 240.0.0.0 On-link 127.0.0.1 255.255.255.255 255.255.255.255 On-link 169.254.34.128 255.255.255.255 255.255.255.255 On-link PowerCLI C:\> Get-VMGuestRoute -VM Windows2008 -GuestUser Administrator -GuestPa ssword Passw0rd | fl Destination : 127.0.0.0 Gateway : On-link Interface : 127.0.0.1 Netmask : 255.0.0.0 VMId : VirtualMachine-vm-1182 VM : WINDOWS2008 Persistent : False Destination : 127.0.0.1 Gateway : On-link Interface : 127.0.0.1 Netmask : 255.255.255.255 VMId : VirtualMachine-vm-1182 VM : WINDOWS2008 Persistent : False Destination : 192.168.15.0 Gateway : On-link Interface : 192.168.0.55 Netmask : 255.255.0.0 VMId : VirtualMachine-vm-1182 VM : WINDOWS2008 Persistent : true |
Como vemos, podemos obtener la tabla de rutas tanto las de sistema como las creadas por el usuario de forma persistente, como puede ser la última entrada del ejemplo anterior.
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?