Vamos a estructurar el post en tres partes: En la primera comprenderemos como se organiza la configuración de networking en Oracle Solaris 10, de esta manera sabremos donde tenemos que tocar al momento de lograr esta configuración. Luego nos enfocaremos a realizar la configuración del lado del switch suponiendo que el mismo corre Cisco IOS, y donde generaremos un Channel Group en el cual se encontrará conectado nuestro servidor con Solaris 10 y configuraremos Spanning Tree para evitar loops de red.
Durante el post utilizaremos dos interfaces de red, pero cabe notar que esto puede realizarse con varias interfaces, es común encontrar Link Aggregations con tres o más links.
Networking en Solaris 10
Como seguramente sabrán Solaris es un sistema operativo SYSV, que en algún momento del tiempo fue BSD, poco a poco fue convirtiéndose en el sistema operativo que hoy conocemos, pero actualmente conserva algunos elementos que denotan su pasado como BSD. Un ejemplo claro de ello es el nombre de las interfaces de red y su forma de definir el driver que la controlará, el cual va seguido por la instancia de la misma, por ejemplo e1000g0 para la primera NIC Intel PRO/1000 Gigabit o bge1 para la segunda NIC Broadcom Gigabit Ethernet.
Al momento de iniciar Solaris, durante el booteo interviene SMF, el cual llama al servicio svc:/network/physical:default y este invoca al método /lib/svc/method/net-physical, este método el cual es un script ejecuta el comando ifconfig para configurar cada una de las interfaces de red definidas en el sistema buscando dentro del directorio /etc por uno o más archivos llamados hotsname.XXY siendo XX el nombre de la interfaz e Y la instancia de la misma, por ejemplo: /etc/hostname.qfe0.
El archivo /etc/hostname.XXY contiene el nombre del host o la dirección IP de la interfaz de red, lo cual previamente debe encontrarse definido en el archivo /etc/inet/hosts para ser configurado en el equipo. Por ejemplo para la interfaz bge1 en el archivo /etc/hostname.bge1 encontramos:
# cat /etc/hostname.e1000g0
ns1.foobar.org
# cat /etc/hostname.e1000g0
172.16.1.215
# cat /etc/inet/hosts
::1 localhost
127.0.0.1 localhost
172.16.1.215 ns1.foobar.org ns1
# cat /etc/nodename
ns1.foobar.org
# cat /etc/netmask
172.16.1.0 255.255.255.0
# echo '172.16.1.254' > /etc/defaultrouter
# cat /etc/defaultrouter
172.16.1.254
# route add net 192.168.1.0 netmask 255.255.255.0 172.16.1.254
# cat /etc/gateways
net 192.168.1.0 gateway 172.16.1.254 metric 1 passive
Cisco IOS Link aggregation (LACP) y Spanning Tree (STP):
Para configurar Link Aggregation (IEEE 802.3ad) en un dispositivo corriendo CiscoIOS (similar también en switch Allied Tellesis), debemos conectarnos al mismo mediante SSH, Interfaz web (no cubierto aquí) o puerto serie; Nosotros trataremos este último. Para realizar esto, necesitaremos un emulador de terminal, como es el caso de Minicom (que puede ser instalado en Unix o Linux), PuTTy o HyperTerminal desde Microsoft Windows. En el debemos configurar la terminal a 9600 baudios, 8 bits de datos, sin paridad, 1 bit de stop y sin control de flujo, de todas formas es recomendable previamente leer las especificaciones del fabricante ya que no todas las configuraciones de terminal son iguales.
Nota: Es importante realizar un backup del running-config del switch antes de editar la configuración del mismo.
Una vez conectados al dispositivo y autenticados debemos crear un Channel-Group, en el caso de nuestro Link Aggregation sera po1. Debemos hacer el enable, a fin de tener acceso administrativo al switch, y el configure terminal para poder trabajar con las interfaces del switch.
SW-CORE01> enable
SW-CORE01# configure terminal
SW-CORE01(config)# interface range fastethernet1/0/1-2
SW-CORE01(config)# lacp system-priority 23456
SW-CORE01(config-if-range)# switchport mode access
SW-CORE01(config-if-range)# switchport access vlan 10
SW-CORE01(config-if-range)# channel-protocol lacp
SW-CORE01(config-if-range)# channel-group 1 mode active
SW-CORE01(config-if-range)# no ip address
SW-CORE01(config-if-range)# end
SW-CORE01# conf t
SW-CORE01(config)# interface range fastethernet1/0/1-2
SW-CORE01(config-if-range)# spanning-tree portfast
SW-CORE01(config-if-range)# end
SW-CORE01# copy running-config startup-config
Nuestro equipo cuenta con tres interfaces de red, ce0 es la que utilizaremos para conectarnos al equipo y dos de ellas utilizan el driver INTEL PRO/1000 Gigabit, y son llamadas por nuestro sistema operativo e1000g0 y e1000g1. Por lo cual interfieren los archivos /etc/hostname.e1000g0 y /etc/hostname.e1000g1, configuraremos esto de manera dinámica primero, y si todo funciona lo haremos de manera estática utilizando el modo Active/Backup. Para poder trabajar, necesitaremos estar conectados al equipo, mediante alguna interfaz de red que no sean estas que utilizaremos para el bonding o estando físicamente en el equipo ya que perderemos la conectividad de red durante el procedimiento. Lo primero que debemos hacer es determinar el estado de las interfaces que tenemos disponibles en el sistema
# dladm show-link
ce0 type: legacy mtu: 1500 device: ce0
e1000g0 type: non-vlan mtu: 1500 device: e1000g0
e1000g1 type: non-vlan mtu: 1500 device: e1000g1
# ifconfig unplumb e1000g0
# ifconfig unplumb e1000g1
# dladm create-aggr -d e1000g0 -d e1000g1 1
# ifconfig aggr1 plumb 172.16.1.215 up
# dladm show-aggr
key: 1 (0x0001) policy: L4 address: 0:3:ba:7:84:5e (auto)
device address speed duplex link state
e1000g0 0:3:ba:7:84:5e 1000 Mbps full up attached
e1000g0 0:3:ba:7:84:5e 0 Mbps unknown down standby
# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=1000843 mtu 1500 index 2
inet 192.168.1.115 netmask ffffff00 broadcast 192.168.1.255
ether 0:3:ba:7:84:5e
aggr1: flags=1000843 mtu 1500 index 3
inet 172.16.1.115 netmask ffffff00 broadcast 172.16.1.255
ether 0:3:ba:7:84:5e
# mv /etc/hostname.e1000g0 /etc/hostname.aggr1
Muy Bueno muchas Gracias..
ResponderEliminarQue grande Facu..
ResponderEliminarSolaris 10 link Aggregation da esta pagina como primer resultado!
esto es aplicable para multi-wan ? aumentar ancho de banda ?
ResponderEliminarExactamente, se podrían establecer links simultáneos pudiendo manejar el límite de cada medio físico cada link de manera independiente. Por tener 2 links de 1 gbps no significa que vas a tener 2 gbps, sino que vas a poder establecer simultáneamente dos conexiones a gbps. La diferencia entre etherchannel y LACP es que LACP envia LACPDU's, y combinado con un adecuado método de spanning-tree (mstp, pvstp), podrías lograr incrementar el throughput. De todas formas, esta es una configuración activo/pasivo, cosa que deberías tocar la configuración por parte del OS.
ResponderEliminar