Ejercicio
de virtualización de servers con cero downtime
Fecha: 4 de julio del 2016 Clase: sesiones vía TeamViewer
Escenario
Este
ejercicio no es de virtualización en sí, sino para planificar la virtualización
de equipos
con
el menor downtime posible y los cablos sueltos que podrían aparecer en el
intento.
Consta
de dos servidores en equipos físicos que deben virtualizarse en un solo equipo
físico
con
la menor cantidad de pings perdidos en la migración.
Se
asume que los servidores virtuales son un snapshot del equipo real (misma IP).
Solución:
Para
tener el menor impacto posible deberán relevarse previamenete los siguientes
datos:
1.-
Los servers están en direcciones IP diferentes, por lo tanto, en VLANs
diferentes, relevar VLANs.
2.-
Relevar puertos/VLANs conectados en el switch real.
3.-
Relevar puertos a utilizar por el uplink entre el switch real y el switch
virtual.
4.-
Relevar puertos a utilizar por el uplink entre el switch virtual y el switch
real.
5.-
Relevar situación de las VLANs en el switch virtual.
6.-
Relevar situación de los puertos/VLANs en el switch virtual.
7.-
Relevar mismas IPs en los servers virtuales.
También debemos tener en cuenta:
8.-
Método para levantar los puertos de forma rápida (portfast en troncales)
9.-
Método para evitar IP duplicadas a la hora de conectar las virtuales.
10.-
Método para impementar y su rollback.
Manos a la obra:
Relevar en el switch real (físico):
Switch#sh vlan brief (ítem
1)
VLAN Name Status Ports
----
-------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/3, Fa0/4, Fa0/5
Fa0/6, Fa0/7, Fa0/8, Fa0/9
Fa0/10, Fa0/11, Fa0/12, Fa0/13
Fa0/14, Fa0/15, Fa0/16, Fa0/17
Fa0/18, Fa0/19, Fa0/20, Fa0/21
Fa0/22, Fa0/23, Fa0/24, Gig0/2
100
DMZ
active Fa0/2 (ítem 2)
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch#
Switch#sh ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual up up
FastEthernet0/2 unassigned YES manual up up
FastEthernet0/3 unassigned YES manual down down
FastEthernet0/4 unassigned YES manual down down
FastEthernet0/5 unassigned YES manual down down
FastEthernet0/6 unassigned YES manual down down
FastEthernet0/7 unassigned YES manual down down
FastEthernet0/8 unassigned YES manual down down
FastEthernet0/9 unassigned YES manual down down
FastEthernet0/10 unassigned YES manual up up
FastEthernet0/11 unassigned YES manual down down
FastEthernet0/12 unassigned YES manual down down
FastEthernet0/13 unassigned YES manual down down
FastEthernet0/14 unassigned YES manual down down
FastEthernet0/15 unassigned YES manual down down
FastEthernet0/16 unassigned YES manual down down
FastEthernet0/17 unassigned YES manual down down
FastEthernet0/18 unassigned YES manual down down
FastEthernet0/19 unassigned YES manual down down
FastEthernet0/20 unassigned YES manual up up
FastEthernet0/21 unassigned YES manual down down
FastEthernet0/22 unassigned YES manual down down
FastEthernet0/23 unassigned YES manual down down
FastEthernet0/24 unassigned YES manual down down
GigabitEthernet0/1 unassigned YES manual up up
GigabitEthernet0/2 unassigned
YES manual down
down (ítem 3)
Vlan1 unassigned YES manual administratively down down
Switch#
Switch#sh interfaces trunk
Port Mode Encapsulation Status
Native vlan
Gig0/1 on 802.1q trunking 1
Port Vlans allowed on trunk
Gig0/1 1-1005
Port Vlans allowed and active in management
domain
Gig0/1 1,100
Port Vlans in spanning tree forwarding state
and not pruned
Gig0/1 1,100 (router inter-VLAN) (también afecta al ítem 3)
Switch#
Relevar en en el switch virtual:
Switch#sh ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/1 unassigned YES manual up up
FastEthernet0/2 unassigned YES manual up up
FastEthernet0/3 unassigned YES manual down down
FastEthernet0/4 unassigned YES manual down down
FastEthernet0/5 unassigned YES manual down down
FastEthernet0/6 unassigned YES manual down down
FastEthernet0/7 unassigned YES manual down down
FastEthernet0/8 unassigned YES manual down down
FastEthernet0/9 unassigned YES manual down down
FastEthernet0/10 unassigned YES manual down down
FastEthernet0/11 unassigned YES manual down down
FastEthernet0/12 unassigned YES manual down down
FastEthernet0/13 unassigned YES manual down down
FastEthernet0/14 unassigned YES manual down down
FastEthernet0/15 unassigned YES manual down down
FastEthernet0/16 unassigned YES manual down down
FastEthernet0/17 unassigned YES manual down down
FastEthernet0/18 unassigned YES manual down down
FastEthernet0/19 unassigned YES manual down down
FastEthernet0/20 unassigned YES manual down down
FastEthernet0/21 unassigned YES manual down down
FastEthernet0/22 unassigned YES manual down down
FastEthernet0/23 unassigned YES manual down down
FastEthernet0/24 unassigned YES manual down down
GigabitEthernet0/1 unassigned YES manual down down
GigabitEthernet0/2 unassigned
YES manual down
down (ítem 4)
Vlan1 unassigned YES manual administratively down down
Vswitch#
Vswitch#sh vlan brief (ítem
5 y 6, no hay VLAN de DMZ)
VLAN Name Status Ports
----
-------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Vswitch#
Configurando
switchs:
Switch
real (físico):
Switch(config)#int gi0/2 (ítem 3)
Switch(config-if)#switchport mode trunk (para que “pasen” ambas VLANs)
Switch(config-if)#spanning-tree portfast trunk (ítem 8)(para que “levante” mas
rápido a la hora de implementar)
%Warning: portfast should only
be enabled on ports connected to a single
host. Connecting hubs,
concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary
bridging loops.
Use with CAUTION
Switch(config-if)#shutdown (ítem 9)(para que no existan IPs duplicadas a la hora
de conectar)
%LINK-5-CHANGED: Interface
GigabitEthernet0/2, changed state to administratively down
Switch(config-if)#end
Switch#
Switch
virtual:
Vswitch#conf t
Vswitch(config)#vlan 100 (ítem 5)
Vswitch(config-vlan)#name DMZ
Vswitch(config-vlan)#exit
Vswitch(config)#int fa0/2
Vswitch(config-if)#switchport mode access
Vswitch(config-if)#switchport access vlan 100 (ítem 6)
Vswitch(config-if)#exit
Vswitch(config)#int gi0/2 (ítem 4)
Vswitch(config-if)#switchport mode trunk
Vswitch(config-if)#spanning-tree portfast trunk (ítem 8)
%Warning: portfast should only
be enabled on ports connected to a single
host. Connecting hubs,
concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary
bridging loops.
Use with CAUTION
Vswitch(config-if)#end
Vswitch#
Vswitch#sh vlan brief
VLAN Name Status Ports
----
-------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/3, Fa0/4, Fa0/5
Fa0/6, Fa0/7, Fa0/8, Fa0/9
Fa0/10, Fa0/11, Fa0/12, Fa0/13
Fa0/14, Fa0/15, Fa0/16, Fa0/17
Fa0/18, Fa0/19, Fa0/20, Fa0/21
Fa0/22, Fa0/23, Fa0/24, Gig0/1
Gig0/2
100
DMZ
active Fa0/2 (ítem 5 y 6)
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Vswitch#
10.- Implementar y rollback:
El
rollback es una buena práctica que siempre debemos respetar, nunca se sabe…
Para
implementar debemos “bajar” los puertos de los servers virtuales y levantar el
trunk entre ambos switchs
lo
mas rápido posible para perder la menor cantidad de pings.
Si
escribimos rápido, bien, de lo contrario, realizamos un template para pegar la
config mas rápido:
Prueba de downtime:
Como
detalle, ver el TTL de la respuesta de 192.168.110.10, que debe utilizar el
router para llegar a la PC.
En
el caso del rollback el portfast hace que los puertos de los servers levanten
mas rápido,
nunca
estuvo configurado y eran puertos de servers en producción, por lo que no se
podían
tocar
mientras estuviesen en línea.
Pegado del template:
Switch#conf t
Enter configuration commands,
one per line. End with CNTL/Z.
Switch(config)#int range fa0/1-2
Switch(config-if-range)#shut
Switch(config-if-range)#int gi0/2
Switch(config-if)#no shut
Switch(config-if)#end
%LINK-5-CHANGED: Interface
FastEthernet0/1, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line
protocol on Interface FastEthernet0/1, changed state to down
%LINK-5-CHANGED: Interface
FastEthernet0/2, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line
protocol on Interface FastEthernet0/2, changed state to down
%LINK-5-CHANGED: Interface
GigabitEthernet0/2, changed state to up
%LINEPROTO-5-UPDOWN: Line
protocol on Interface GigabitEthernet0/2, changed state to up
Switch#
…catástrofe:
Rollback:
Switch#conf t
Enter configuration commands,
one per line. End with CNTL/Z.
Switch(config)#int gi0/2
Switch(config-if)#shut
Switch(config-if)#int range fa0/1-2
Switch(config-if-range)#spanning-tree portfast
%Warning: portfast should only
be enabled on ports connected to a single
host. Connecting hubs, concentrators,
switches, bridges, etc... to this
interface
when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast will be configured
in 2 interfaces due to the range command
but will only have effect when the interfaces
are in a non-trunking mode.
Switch(config-if-range)#no shut
Switch(config-if-range)#end
Switch#
%LINK-5-CHANGED: Interface
GigabitEthernet0/2, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line
protocol on Interface GigabitEthernet0/2, changed state to down
%LINK-5-CHANGED: Interface
FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line
protocol on Interface FastEthernet0/1, changed state to up
%LINK-5-CHANGED: Interface
FastEthernet0/2, changed state to up
%LINEPROTO-5-UPDOWN: Line
protocol on Interface FastEthernet0/2, changed state to up
Switch#
Volvemos a respirar….
Para tener en cuenta:
En
el listado inicial, se omitió (adrede en este caso para poder documentarlo como
“cabo suelto”) la verificación
de
las direcciones MAC de ambos servers, las mismas se deberán replicar en los
equipos virtuales para evitar
justamente
lo que acaba de suceder, las tablas ARP de los PC siguen manteniendo las
direcciones MAC iniciales:
PC>arp -a
Internet Address Physical Address Type
192.168.12.10 0002.4a7a.3a15 dynamic
PC>
En
el caso del server en DMZ la MAC utilizada por el PC es la del gateway, pero el
gateway es quien reenvía
a
la MAC original del server físico:
InterVLAN#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 192.168.12.110 46
0060.4738.8A4D ARPA GigabitEthernet0/0.1 (PC que envía el
ping)
Internet 192.168.100.10 46
000C.85AA.C9B9 ARPA
GigabitEthernet0/0.100 (server real (físico))
InterVLAN#
Solución: clonar las MAC a los equipos
virtuales.
… y a implementar nuevamente:
Switch#conf t
Enter configuration commands,
one per line. End with CNTL/Z.
Switch(config)#int range fa0/1-2
Switch(config-if-range)#shut
Switch(config-if-range)#int gi0/2
Switch(config-if)#no shut
Switch(config-if)#end
%LINK-5-CHANGED: Interface FastEthernet0/1,
changed state to administratively down
%LINEPROTO-5-UPDOWN: Line
protocol on Interface FastEthernet0/1, changed state to down
%LINK-5-CHANGED: Interface
FastEthernet0/2, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line protocol
on Interface FastEthernet0/2, changed state to down
%LINK-5-CHANGED: Interface
GigabitEthernet0/2, changed state to up
%LINEPROTO-5-UPDOWN: Line
protocol on Interface GigabitEthernet0/2, changed state to up
Switch#
Tratemos
de interpretar lo que sucede las conexiones Fa0/1 y 2: al estar en DOWN ambas
interfaces, el switch real (físico)
realiza
flooding y llega mediante el trunk Gi0/2 al Vserver_LAN y el Vserver_DMZ
utiliza la misma conexión hacia el router,
este reenvía por el puerto Gi0/1 y el switch
real (físico) nuevamente realiza flooding para alcanzar Vserver_DMZ vía Gi0/2.
El
switch virtual (Vswitch) también realiza flooding en la primer trama/paquete y
luego reenvía normalmente a cada puerto,
por
lo que ambos deberían perder al
menos un ping.
Igualmente
5 pings en un solo server es buen resultado para una implementación de este
tipo.
(2016) Sensei, I can get girls speaking in low
level ?
Rosario, Argentina