Documente Academic
Documente Profesional
Documente Cultură
Evaluación de alternativas en
la aplicación de
Spanning Tree Protocol
Universidad de Sevilla
Curso:2007/08
1
2
Índice
1 Introducción y objetivos..................................................................................................................4
3 Propuestas alternativas.................................................................................................................10
4 Metodología....................................................................................................................................16
4.1 Herramientas...................................................................................................................16
4.6 Simulación.......................................................................................................................36
5 Resultados......................................................................................................................................43
6 Conclusiones...................................................................................................................................49
7 Referencias.....................................................................................................................................50
3
1 Introducción y objetivos
La rápida evolución a la que están sometidas las nuevas tecnoligías en el mundo de las
telecomunicaciones, provoca que en periodos cortos de tiempo, las grandes o pequeñas empresas e
incluso los particulares se vean obligados a renovar las tecnologías o programas que hasta ese
momento utilizaban, para poder sacar el máximo provecho a los servicios que ofrecen los mismos.
La motivación principal para el desarrollo de este proyecto final de carrera y por consiguiente el
estudio que él mismo conlleva, es la necesidad de mejora de las infraestructuras de
telecomunicaciones de la empresa Persan, promovido por su evolución tanto en tamaño y cantidad
de prestaciones que demanda como en la obsoletización que sufrían sus instalaciones debido al
transcurso del tiempo y de la rápida evolución en el sector de las telecomunicaciones.
Los protocolos que se estudiarán y analizarán en este proyecto final de carrera son: el STP,
actualmente utilizado por la empresa Persan, sus siglas significan Spanning Tree Protocol, el RSTP
o Rapid Spanning Tree Protocol y el MSTP o Multiple Spanning Tree Protocol. El fundamento
principal de estos protocolos es la creación, en una red compuesta por bridgets o conmutadores, de
un árbol de expansión evitando de esta forma la creación de bucles y permitiendo la reconfiguración
del árbol si se produjese un fallo en un enlace o en un puente.
Es parte del alcance de este proyecto demostrar que tanto STP como RSTP utilizan un único
árbol de expansión para toda la red con un nodo como nodo raíz del cual saldrán todas las ramas del
árbol, esto provocará que si se detectara algún fallo en la red la reconfiguración del único árbol
existente afectaría a todos los nodos de la red. Otra de las partes del alcance será ver el
funcionamiento de MSTP, como podrá contrastarse mas adelante, se diferencia de los anteriores en
el número de árboles que son configurados, ya que la metodología de este protocolo permite dividir
la red en diferentes VLANs permitiendo por ejemplo la creación de un árbol por cada una de ellas,
esto reduciría el tiempo de respuesta ante un fallo ya que sólo se vería afectado el árbol que
perteneciera al dominio de la VLAN que haya sufrido la caída. Otro de los puntos que se van a tener
en consideración en el alcance de este proyecto, es el rol que ejercen los puertos de los
correspondientes conmutadores que forman la red.
En posteriores apartadas se podrá analizar con detalle que dependiendo del protocolo que se
esté utilizando para la configuración de la red, los puertos tomarán ciertos valores, también
conocidos como estados, lo que permitirá observar una variación tanto en los tiempos de formación
del árbol principal como en los tiempos de reconfiguración tras la localización de un fallo en la red.
Una vez definidos y diferenciados los distintos protocolos, se podrá observar de forma
práctica como influye el uso de los mismos en el tiempo de restauración de un enlace ante un fallo o
simplemente en el tiempo que se tarda en crear el árbol de expansión, ya que tal y como se puede
observar en las referencias [4] y [5], el tiempo del protocolo STP ronda las decenas de segundos,
mientras que los tiempos entre los protocolos RSTP y MSTP son del orden de los milisegundos,
quedando para estos últimos la duda de si la diferencia entre milisegundos compensa la mayor
complejidad de MSTP sobre RSTP.
4
Para poder llevar a cabo todas las comprobaciones mencionadas en los párrafos anteriores y
poder alcanzar los objetivos que se marcan, va a ser necesaria la utilización de un programa que
permita la emulación de una red “real” con las características que en todo momento se necesiten
determinar. Este programa es conocido con el nombre de Opnet, en apartadas posteriores se
mostrará con todo detalle como se consigue emular la topología elegida con las variadas
combinaciones y características que permiten los distintos protocolos.
Para poder adquirir la información que se necesita y poder llegar a los objetivos definidos
para este proyecto, no sólo será necesario el manejo de Opnet para crear y definir los escenarios
oportunos, sino también el uso y la modificación de la Consola que utiliza Opnet para simular los
escenarios creados. Esto será viable a través del uso de 3 herramientas. La primera de ellas es
Cygwin que nos permitirá crear un entorno Linux bajo Windows, que a su vez permitirá trabajar
con la segunda herramienta conocido con el nombre de Emacs. Emacs es un editor de texto del que
se hará uso para poder adquirir la información de la consola de forma automatizada, y una vez
adquirida la información se utilizará la última herramienta conocida con el nombre AWK. AWK es
un lenguaje de programación diseñado para procesar datos basados en texto y que permitirá mostrar
los resultados obtenidos de forma clara y concisa.
En este apartado se va a determinar la situación sobre la que el proyecto parte para poder
realizar y alcanzar los objetivos propuestos. La empresa Persan está situada en una nave de un
polígono industrial a las afueras de Sevilla, las dimensiones de las que hace uso son de unas 3 veces
un campo de fútbol, en este espacio Persan dispone de 18 departamentos.
Cada uno de los departamentos esta compuesto por trabajadores que acceden a los servicios
que necesitan a través de un conmutador situado en su misma zona y que a su vez se comunica con
el conmutador raíz o root, en terminología de los protocolos de encaminamiento que se van a
utilizar, para poder acceder a los servidores que ofrecen los servicios demandados por los
trabajadores.
Los departamentos en los que está dividida la empresa Persan son: CPD, Oficinas,
Envasado, Muelles, Alm. P.T.1, HDL, Soplado, Pta. Trasera, Torre, Alm. MPEE1, Taller,
Depósitos, Soplado2, Muelles2, Alm. P.T.2, Alm. Automat.1, Alm. Automat.2 y Alm. MPEE2. En
cada uno de ellos la distribución de los trabajadores es respectivamente: 3, 75, 10, 15, 5, 5, 5, 10, 5,
60, 15, 10, 15, 5, 10, 10 y 5 personas.
5
Figura 1
Las líneas en rojo equivalen a las conexiones físicas entre los distintos conmutadores y los
usuarios que trabajan en cada departamento se ven representados en formato de LANs.
Llegados a este punto es necesario explicar el funcionamiento del protocolo STP, para poder
demostrar de forma feaciente las limitaciones en las que la empresa Persan está sumergida y sobre
las cuales este proyecto final de carrera trabajará para mejorar.
6
otro enlace sea capaz de soportar el tráfico. La necesidad de poder evitar y detectar un lazo
en la creación de la topología viene dada por la falta de existencia del campo TTL (Time To
Live, Tiempo de Vida) en la capa 2 a diferencia de la capa 3, lo que conlleva a un gran
consumo de ancho de banda, y en muchas ocasiones a que la red quede inutilizada. STP
permite solamente una trayectoria activa a la vez entre dos dispositivos de la red, pero
mantiene los caminos redundantes como reserva, para activarlos en caso de que el camino
inicial falle.
Para poder conseguir estos servicios el protocolo STP hace uso de unas tramas
denominadas Configuration Bridget Data Unit, CBPDU o simplemente BPDU, las BPDUs
son mensajes encapsulados en tramas LLC y enviados a un DSAP (01000010) que es
interpretado por todos los puertos. El protocolo establece identificadores de puentes, ID con
independencia de las direcciones MAC de sus puertos, y elige el conmutador que tiene la
prioridad mas alta, el número mas bajo de prioridad numérica, como puente raíz o root. Este
puente raíz establece los caminos de menor coste para toda la red, esto es posible gracias a
que todos los puertos que componen un conmutador disponen de un parámetro configurable
conocido con el nombre de Span Path Cost.
Inicialmente, todos los conmutadores consideran que son el puente raíz, esto
conlleva que cuando un conmutador se enciende envía las BPDU que contienen coste 0 y la
dirección MAC de si mismo tanto en el ID de raíz como de emisor. Los puentes almacenan
las mejores BPDU que recibe por el mismo puerto. Para poder determinar cual es la mejor
de todas, realizan un estudio comparativo entre las que ha recibido por el mismo puerto y la
suya propia. Cada conmutador reemplazará los ID de raíz mas alta por ID de raíz mas baja
en la BPDU que se envían. Cuando un puente recibe una BPDU por un puerto que mejora la
BPDU que él envía, deja de enviar BPDU por ese puerto. Gracias a esta característica
cuando el algoritmo se ha estabilizado, sólo un puente en cada LAN, denominado puente
designado, enviará BPDU en dicha LAN. Para poder calcular la BPDU que envía un puente,
es necesario calcular el RootID y el coste hacia el nodo raíz, lo cual se realiza en función de
las BPDU recibidas por los puertos y la suya propia. El RootID será el menor de todos los
BPDU recibidos por el puente, incluyendo el suyo propio. El coste hacia el puente raíz será
0, en otro caso el coste será la suma del coste de los mejores y el coste por el que llegar
hasta el puente por el que se recibió dicha BPDU. El puerto por el que se ha recibido dicha
BPDU es considerado como puerto raíz. Llegado el momento en el que un puente sabe cual
es su propio coste y RootID, compara su propia BPDU con la mejor recibida por cada
puerto, considerándose puente designado para aquellos puertos que ofrecen una peor BPDU,
y transmitiendo en consecuencia su propia BPDU por esos puertos.
● Cost: Coste del camino de menor coste para llegar hasta el puente raíz.
7
Mencionar que el valor por defecto en la prioridad de un conmutador está estipulado
con un valor de 32768, y que el administrador de la red puede disminuir este valor, lo que
hará que el ID de ese conmutador sea más pequeño.Una vez realizados los pasos
anteriormente mencionados, el algoritmo STP logra realizar una topología libre de bucles
convirtiendo una red física en forma de malla, en una red lógica en forma de árbol. La
necesidad de mantener esta topología sin bucles y sin fallos tanto en los conmutadores como
en los enlaces, hace necesaria asociar un campo a las BPDU, este campo es conocido con el
nombre de message age, el cual ve incrementado su valor en cada unidad de tiempo. Cuando
dicho campo alcanza un valor máximo, max age, la BPDU se descarta y el conmutador
recalcula considerando que dicha BPDU no ha llegado nunca. Cuando la red está
funcionando de forma normal, el puente raíz transmite de forma periódica, cada 2 segundos
por defecto, una BPDU de nombre Hello Time, generada con edad 0. De la misma forma, y
para que la información de que la red está funcionando de un modo correcto se expande por
todo el árbol, cuando un puente recibe la BPDU del raíz, envía su propia BPDU por aquellos
puertos por los que es considerado puente designado con edad 0.
● Blocking o Bloqueado: En este estado sólo se pueden recibir BPDUs. Las tramas de
datos se descartan y no se actualizan las tablas ARP.
● Listening o de Escucha: A este estado se llega desde Bloqueo. En este estado, los
conmutadores determinan si existe alguna otra ruta hacia el puente raíz. En el caso
que la nueva ruta tenga un coste mayor, se vuelve al estado de Bloqueo. Las tramas
de datos se descartan y no se actualizan las tablas ARP. Se procesan las BPDU.
● Learning o Aprendizaje: A este estado se llega desde Escucha. Las tramas de datos
se descartan pero ya se actualizan las tablas de ARP, ya se aprenden las direcciones
MAC. Se procesan las BPDU.
● Forwarding o Envío: A este estado se llega desde aprendizaje. Las tramas de datos
se envían y se actualizan las tablas ARP. Se procesan las BPDU.
8
Figura 2
Los conmutadores que forman la red, se percatan de que existe algún tipo de fallo en
ella cuando el protocolo STP provoca la entrada o la salida de alguno de sus puertos en el
estado de Blocking, esta situación la hace saber a los demás conmutadores trasmitiendo por
su nodo raíz una BPDU de Hello Time. Esta acción será repetida por al conmutador hasta
que reciba un asentimiento. Cuando el conmutador que está conectado al anterior recibe la
BPDU por su puerto designado, realiza la misma operación notificando a los demás del
cambio de topología que se ha realizado en la red. Cuando la BPDU llega al nodo raíz, este
comunica con una BPDU que se procede a un cambio de topología durante un periodo de
tiempo igual a la suma de los parámetros fordward delay y max age. Los puentes que
reciben una BPDU de cambio de topología utilizan la caché de corta duración para la tabla
de reenvío hasta el momento en el que deja de recibir BPDU con la indicación de cambio de
topología [1][2][4].
Los parámetros que son estipulados por el puerto raíz en el periodo de cambio de
topología y que son enviados a través de las BPDU para que todos los utilicen son:
9
A parte de los parámetros nombrados anteriormente existen otros que son
configurables en los conmutadores: Bridge Priority, Port Priority, Long Cache Timer y
Path Cost. De todos los mencionados en los párrafos anteriores, el único que se va a
manipular en los estudios realizados en este proyecto final de carrera será el de Hello Time,
el cual por defecto tiene el valor de 2 segundos y nosotros lo modificaremos a 1 segundo,
modificación que se podrá comprobar en las capturas del programa Opnet.
3 Propuestas alternativas
Una vez vista la situación actual de la empresa Persan, y con ello las limitaciones que
conlleva el uso del protocolo STP, se dispondrá a explicar de forma clara y concisa, enfocando
siempre al objetivo y al alcance de este proyecto, las diferentes alternativas propuestas para
substituir al protocolo STP y las herramientas necesarias que se han tenido que utilizar para ello.
Aunque no haya sido uno de los objetivo de este proyecto, en el trabajo de todo Ingeniero, es
necesario crear una balanza entre lo que es óptimo a nivel tecnológico y lo que es a nivel
económico mas atractivo al inversor o cliente. En este caso los conmutadores que forman la red
física de la empresa Persan, son capaces de soportar tanto el protocolo actual STP, como los
protocolos que se proponen como alternativas a ellos, como es el caso de RSTP y el MSTP. Esto
hace de esta propuesta, una propuesta muy favorable al empresario a nivel económico, y como
veremos mas adelante también a nivel práctico y tecnológico.
Los estados de los puertos en el protocolo RSTP han variado, ya no existen 5 tipos
de estados, ahora hay 3 tipos que corresponden con los tres posibles estados de operación.
Los estados Blocking, Disabled y Listening en el protocolo STP se ven fusionados en el
estado Discarding del protocolo RSTP. El rol es ahora una variable que cada uno de los
puertos tiene asignado. Los roles de puerto raíz y el de puerto designado se mantendrán,
mientras que el de puerto bloqueado ahora pasará a ser el de backup o puerto alternativo.
El algoritmo de Spanning Tree, STA, determina el rol de un puerto basándose en las
BPDUs. Con la intención de simplificar los problemas, lo que hay que recordar de una
BPDU es que hay siempre un método para comparar cualquiera de los dos y decidir si uno
es mas adecuado que el otro. Esto se basa en el valor almacenado en la BPDU y
ocasionalmente en el puerto en cual haya sido recibida. Se considera, que la información en
esta sección explica los roles de los puertos con un enfoque muy práctico.
10
Los puertos que reciben las mejores BPDUs en un puerto se clasifican como puertos
raíz. Este es el puerto mas cercano al puente raíz, en términos de coste en el trayecto. El
STA selecciona un simple puente como puente raíz, de todos los que forman la red, por
VLAN. El puerto raíz envía BPDUs, las cuales son mucho mas útiles que las que pueda
enviar cualquier otro puente de la red. El puente raíz es el único puente en toda la red que
no tiene un puerto raíz. Todos los demás puentes reciben BPDUs por al menos un puerto.
Los puertos serán de carácter designado si este puede enviar la mejor BPDU en el
segmente de red al cual esté conectado. Los puentes 802.1D unen juntos diferentes
segmentos, tales como segmentos Ethernet, para crear un dominio perteneciente a un
puente. En un segmento dado, puede haber solamente un único camino hacia el puente raíz.
Si existen dos, hay un bucle en la red. Todos los puentes conectados a un segmento dado,
escuchan las BPDUs de cada uno de ellos y consienten al puente que manda mejores
BPDUs como puente designado para el segmento. El puerto en ese puente correspondiente
es un puerto designado.
Una vez establecida la topología lógica de la red, las BPDU son enviadas cada Hello
Time, y ya no sólo transmitidas. Con 802.1D, un nodo que no sea el nodo raíz solamente
genera BPDUs cuando recibe una por su puerto raíz. De hecho, un puerto retransmite mas
BPDUs de las que realmente el mismo genera. Este no es el caso de 802.1w. Un puerto
ahora envía BPDUs con su correspondiente información cada Hello Time, por defecto 2
segundos, incluso si este no ha recibido ninguna de su puente raíz.
En un puerto dado, si los mensajes Hello no son recibidos en unos tres tiempos
consecutivos, la información del protocolo puede ser inmediatamente la de caducidad,
también se puede dar el mismo caso si Max Age llega a expirar. Debido a la previa
modificación del protocolo mencionada anteriormente, las BPDUs son usadas ahora como
mecanismos para mantener con vida los mecanismos entre dos puentes. Un puente considera
que ha perdido la conectividad con su puente vecino mas directo si este pierde tres BPDUs
seguidas. Este rápido envejecimiento de la información permite determinar de forma rápida
los fallos. Si un puente falla al recibir BPDUs desde un vecino, esto significa de forma muy
clara que la conexión con ese vecino se ha perdido. Esto es opuesto al procedimiento que se
toma en 802.1D donde el problema podía ser en cualquier parte del trayecto hacia el puente
raíz.
11
El concepto que hace que se pueda crear el corazón del motor de la terminología
conocida como BackboneFast, es la aceptación de BPDUs inferiores. El comité de IEEE
802.1w decidió incorporar un mecanismo similar en RSTP. Cuando un puente recibe
información inferior de sus puertos designados o de su puerto raíz, este inmediatamente los
acepta o reemplaza la información que previamente tiene almacenada.
El nuevo RSTP está capacitado para activamente confirmar que un puerto puede sin
incidentes transicionar al estado de Forwarding sin tener que depender de ningún tiempo de
configuración. Ahora hay realmente un mecanismo de retroalimentación que toma lugar
entre los puentes RSTP. Con la intención de alcanzar una mayor velocidad en la
convergencia de puertos, el protocolo cuenta con dos nuevas variables: edge port o puerto
borde y link type o tipo de enlace [3].
En conclusión: los puertos raíz y los designados forman parte de la topología activa.
Los puertos alternativos y de respaldo no están incluidos en la topología activa de la red.
RSTP monitoriza el estado de todas las trayectorias [3]:
○ De 30 ó 60 segundos a milisegundos.
12
3.2 Multiple Spanning Tree Protocol (MSTP)
IEEE 802.1s Multiple Spanning Tree Protocol usa el concepto de LAN virtual
(VLAN), el cual es una colección de múltiples LANs que se encuentran conectadas
físicamente a una red compartida y operan como si todas esas redes múltiples estuvieran
conectadas virtualmente como una sola LAN. MSTP permite solamente 4096 VLANs en
una red debido a los 12 bits del VLAN ID definidos por IEEE 802.1Q. MSTP introduce el
concepto de región y cada región dispone de su propia VLAN asignada. Una región
representa un grupo de switches que tienen el mismo identificador de región y la misma
VLAN asignada. Cada región dispone de sus instancias MST, multiple spanning tree. El rol
de las instancias MST es optimizar la utilización de la red, mientras que las regiones MST
pueden ser usadas para incrementar la escalabilidad de la red, también pueden ser utilizadas
para mejorar el tiempo de reacción en caso de fallo en la red. Las regiones están conectadas
directamente con una instancia central del STP. Dentro de una región MST, posiblemente
haya varias instancias MST. El protocolo MSTP proporciona un máximo de 64 instancias
de árbol de expansión en una región [5].
Tanto STP como RSTP utilizaban un único árbol de expansión. MSTP define
árboles de expansión y mapea cada VLAN con un único árbol de expansión. Una puede
tener un árbol de expansión por cada VLAN o múltiples VLANs pueden ser mapeadas en
un simple árbol de expansión. Este protocolo está diseñado de tal forma, que la peor de las
situaciones vinculadas con la dimensión de la red, sea tomada en cuenta para fijar los
tiempos de reconstrucción del árbol de expansión en caso de fallo, que como se mencionó
en el caso de STP es de 30 a 60 segundos en condiciones normales.
El uso de MSTP permite la utilización de todos los enlaces que serían de lo contrario
inutilizados por el árbol simple de expansión y de ese modo elimina la pérdida de ancho de
ancho de banda. Sin embargo, el árbol de expansión construido en una región sigue
esencialmente el protocolo RSTP y eso conlleva, de forma inherente, a que los tiempos de
restauración sean los de RSTP, pero en este caso vinculados con el tamaño de la VLAN en
la que nos encontramos. Además, el proceso básico de aprendizaje asocia las direcciones
MAC con puertos/enlaces de tal forma que si un enlace falla causaría que los puentes irían a
una reasignación de VLAN si el tráfico fuera a ser mapeado hacia un árbol de expansión
alternativo [4].
Una particularidad que hay que tener en cuenta cuando hablamos de MSTP, es el uso
de VLANs, lo que provoca que necesitemos etiquetar de forma distinta los mensajes
pertenecientes a una VLAN o a otra, para poder discriminarlos llegado el momento. La
necesidad de etiquetar los mensajes hace necesario comunicar los conmutadores de forma
que dejen pasar todos los mensajes independientemente de a que VLAN pertenezcan para
que la red trabaje de forma unida. Esto es posible si identificamos los enlaces/puertos entre
conmutadores como enlaces Trunk, lo que nos permitirá discriminar los paquetes que nos
interesen en el conmutador, dejándolos pasar por los puertos que correspondan a la VLAN
deseada. Un enlace Trunk permite pasar todos los paquetes independientemente de la
VLAN a la que pertenezcan, ver Figura 3, [6].
13
Figura 3
El resto de enlaces/puertos serán enlaces de acceso que dejarán pasar solamente los
mensajes relacionados con la VLAN a la que pertenezca, ver Figura 4 y Figura 5.
Figura 4
14
Figura 5
Para poder introducir los roles que un puerto puede tener en MSTP es necesario
introducir ciertas nomenclaturas que se realizarán de forma descriptiva. MSTP permite
asignar estructuras a diferentes VLANs para poder seguir caminos separados, cada uno de
ellos basado en un Multiple Spanning Tree Instance (MSTI), dentro de un Multiple
Spanning Tree (MST) Regions compuesta por LANs y o puentes MST. Estas regiones y los
otros puentes y LANs están conectadas en un single Common Spanning Tree (CST) [7].
MSTP conecta todos los puentes y LANs con un single Common and Internal
Spanning Tree (CIST). El CIST soporta la determinación automática de cada región MST,
eligiendo su máxima posible extensión. Los roles de los puertos CIST que identifican el rol
en la topología activa que se utiliza por cada puerto en un puente, son:
● El puerto raíz, que proporciona el camino de mínimo coste desde el puente hasta el raíz
CIST, siempre que el puente no sea el raíz CIST, atravesando el raíz regional, siempre y
cuando el puente no sea un raíz regional.
● Un puerto designado, proporciona el camino con menor coste desde la LAN adjunta a
través del puente hacia el raíz CIST.
Los roles de los puertos MSTI que identifican el rol activo para cada puerto en cada
puente en cada topología activa de las MSTIs dentro y en las fronteras de una región, son:
● El puerto raíz, que proporciona el camino de mínimo coste desde el puente hasta el raíz
MSTI regional, siempre que el puente no sea el raíz regional para esta MSTI.
● Un puerto designado, proporciona el camino con menor coste desde la LAN adjunta a
través del puente hacia el raíz regional.
● Un puerto master, proporciona conectividad desde la región hasta el raíz CIST que
permanece fuera de la región. El puerto puente que es el puerto raíz CIST para el raíz
regional CIST es el puerto master para todos los MSTIs.
15
● El puerto alternativo o backup, que proporcionan conectividad si otros puentes,
puertos puente, o LANs fallan o son eliminadas.
Si el puerto no está habilitado, se le asigna el rol Disabled tanto para la CIST como
para todas las MSTIs, para identificarlo de forma que no participe en ninguna operación
para determinar el árbol de expansión como en ninguna topología activa de la red [7].
4 Metodología
Una vez vistas las alternativas que existen para el protocolo STP y sus ventajas sobre él,
necesitamos encontrar la manera de poder plasmar estas diferencias de forma gráfica o en su
defecto de forma escrita, que demuestre las ventajas de los protocolos, uno respecto del otro, las
cuales han sido obtenidas de las referencias [4] y [5]. La metodología que va ha ser seguida presenta
los siguientes pasos: definición de las herramientas que van a ser utilizadas, creación y
configuración de los escenarios y de sus componentes, simulación de las diferentes topologías a
partir de la Consola Opnet, localización y definición de la información deseada, modificación de la
Consola Opnet para poder adquirir de forma automatizada los datos deseados y por último el tratado
de los resultados de forma que sean intelegibles para el lector.
4.1 Herramientas
Para poder implantar una nueva red física de conexiones en nuestro escenario sin
tener que realizar ningún tipo de cambio en la existente, y con ello suspender las actividades
de la empresa durante ese periodo, es necesario utilizar una herramienta que nos permita de
forma sencilla emular el funcionamiento de los conmutadores que forman la empresa y
poder variar los enlaces entre ellos lo mas cómodamente posible.
16
Opnet facilita todo tipo de librerías que gracias a ellas se consigue la formación de
redes de comunicaciones y facilitando además el estudio del desarrollo de los modelos
mediante la conexión de diversos tipos de nodos utilizando diferentes tipos de enlaces, etc.
Opnet se considera también un lenguaje de simulación orientado a las comunicaciones. Nos
proporciona acceso al código fuente permitiendo a los programadores embarcarse en la
programación para Opnet. En la actualidad no solamente es utilizada por Universidades sino
también por Empresas importantes en el sector de las Telecomunicaciones, para el
desarrollo de proyectos gubernamentales y también por el ejército.
● Una librería (cygwin1.dll) la cual actúa como una capa que emula API Linux
proporcionando substanciosas funcionalidades API Linux.
17
Figura 6
18
Figura 7
Figura 8
19
Una vez se han definido las aplicaciones de las que van a hacer uso los
usuarios, es necesario definir los perfiles de los mismos dentro de nuestra
simulación. Para ello utilizaremos el objeto Profile Definition. Definiremos dos
perfiles entre los usuarios, el perfil de Oficinista y el perfil de Ingeniero. Cada uno
de los perfiles de usuarios hará uso de las aplicaciones definidas en el objeto anterior
de forma periódica. Los Oficinistas harán uso de las aplicaciones de Email, FTP y
Base de Datos, y los Ingenieros harán uso de las aplicaciones de Base de Datos y
VoIP.
Para poder modelar el uso de las aplicaciones por parte de los determinados
perfiles de usuarios, se ha decidido identificarlos como una función de distribución
de Poissón. La función de distribución de una Poissón se puede observar en la Figura
9. En una simulación bajo Opnet las aplicaciones se pueden definir como Poissóns,
determinando para cada una de ellas el valor Lambda, λ. Lambda es un número real
positivo, equivalente al número esperado de ocurrencias durante un intervalo dado.
En nuestro caso los valores impuestos para cada una de las aplicaciones y para cada
uno de los perfiles de usuarios que se han definido son: Email --> λ=10, FTP -->
λ=1,6, VoIP --> λ=25, Base de Datos --> λ=5, Oficinistas --> λ=6, Ingenieros -->
λ=8. Estos valores están tomados para un valor de t, tiempo total de simulación, de 5
minutos como se podrá comprobar en apartados posteriores cuando se muestre la
consola de simulación de la que hace uso Opnet.
Figura 9
20
Figura 10
21
Figura 11
Otro de los objetos necesarios para que el escenario sobre el que se realiza la
simulación funcione correctamente son los servidores. Los servidores deben
proporcionar los servicios que los usuarios demandan. Como se puede ver en la
Figura 12, debido a las ya definidas aplicaciones lo único necesario es determinar
que servidor ofrecerá que servicio determinándolo en la línea Applicacion
Supported Profile.
22
Figura 12
Tanto los enlaces que comunican una LAN como los enlaces que comunican
los conmutadores con los servidores son de tipo 100Mbps, y los enlaces que
comunican los conmutadores son de tipo 1Gbps.
Para poder crear estos enlaces es necesario acceder a la paleta de objetos que
facilita Opnet y entrar dentro de la carpeta Links. Una vez dentro se selecciona la
carpeta por nombre y aparecerá en la pantalla lo que se muestra en la Figura 13. Para
esta simulación se han elegido los de tipo 1000BaseX y los de 100BaseT.
23
Figura 13
Lo único que quedaría por configurar, serían los conmutadores que forman la
red. Para poder configurar un conmutador de forma que utilice el protocolo STP para
crear el árbol de expansión, se debe de entrar en los atributos del conmutador y
seleccionar en el campo Spannig Tree Protocol, el protocolo STP (802.1D). Para que
la simulación funcione correctamente todos los conmutadores que forman la red
deben de estar ejecutando el mismo protocolo de expansión.
24
Por defecto es 32768 pero los conmutadores deberán cambiar su valor por:
CPD --> 1, Oficinas --> 2, Envasado --> 3, Muelles --> 4, Alm. P.T.1 --> 5, HDL -->
6, Soplado --> 7, Pta. Trasera --> 8, Torre --> 9, Alm. MPEE1 --> 10, Taller --> 11,
Depósitos --> 12, Soplado2 --> 13, Muelles2 --> 14, Alm. P.T.2 --> 15, Alm.
Automat.1 --> 16, Alm. Automat.2 --> 17 y Alm. MPEE2 --> 18. Estas
explicaciones se ilustran en la Figura 14.
Figura 14
En el caso de RSTP realizar una mención especial a los parámetros que están
relacionados con VLAN, los cuales están configurados con su valor inicial, el cual es
nulo. Los parámetros mencionados en el apartado anterior como Hello Interval
(seconds) y Priority deberán de ser configurados de la misma forma que en la
configuración STP, ya que queremos que las dos redes se comporten de la misma
forma únicamente variando el protocolo de expansión y con ello mejorando los
tiempos de reacción. En la Figura 15 se pueden observar los cambios para un
conmutador cualesquiera de la red.
25
Figura 15
26
Figura 16
Figura 17
27
El número de VLANs que se van ha crear en este proyecto son 3, tal y como
se ilustra en la Figura 18, y se componen de los switches que se muestran a
continuación:
Figura 18
En Opnet los enlaces son por defecto configurados como tipo acceso y
para poder asegurarse de que un enlace está formado por puertos con estado
Access, se debe de acceder a la configuración de los puertos del conmutador
dentro de los atributos del switch, y visualizar en VLAN Parameters el
parámetro Port Type.
28
4.2.7.2 Configuración Enlaces Trunk
Para poder configurar los enlaces como tipo Trunk, de forma sencilla,
es necesario seleccionarlos y clickar sobre la pestaña Configure Selected
Links as Trunks, que aparece en la Figura 16. Para comprobar que la
asignación se ha realizado de forma correcta se accede a la configuración de
los puertos del conmutador, dentro de los atributos del switch, y visualizar en
VLAN Parameters el parámetro Port Type. Tal y como se ilustra en la Figura
19. En esta figura también se observa un parámetro dentro de Switch Port
Configur con el nombre de Cost, en este caso con valor 2976, el valor de este
parámetro debe de coincidir en todos los puertos de todos los switchs de la
red y debe de ser 1.
Figura 19
29
4.3 Consola Opnet
Una vez que todos los objetos necesarios para la simulación están configurados, es
obligatorio realizar una simulación para poder determinar los tiempos de configuración del
spanning tree de los distintos escenarios, con sus respectivos protocolos de expansión de
árbol, el tiempo de respuesta a la caída de un enlace y también si la configuración final ha
sido correcta, determinando esto último por la no aparición de errores de simulación en la
consola Opnet.
Lo primero que se configura es el tiempo total que se desea simular. Se recuerda que
en apartados anteriores cuando se determinaron las aplicaciones y los perfiles en forma de
Poissón con su respectiva lambda, λ, se concluyó que el valor de t, intervalo de tiempo total,
era de 5 minutos. Esta asignación del valor de t, se puede observar en la Figura 20,
determinada en el parámetro Duration.
Figura 20
30
Para una primera simulación es necesario realizarla con el campo ODB Script mode
en valor None, tal y como se muestra en la Figura 21, para poder determinar de que
procesos se va a extraer la información necesaria para alcanzar los objetivos del proyecto.
Figura 21
Los comandos principales que se necesitan para realizar las operaciones pertinentes a
la hora de adquirir la información necesaria son:
● objmap link: Este comando nos muestra por pantalla, todos los enlaces existentes
en nuestra red y los identificadores de estos objetos.
31
● prodiag (Identificador de proceso): Muestra por pantalla la información
actualmente almacenada en el proceso identificado.
● prostop (Identificador de proceso): Cuando se introduce este comando, la consola
parará la simulación en el momento en el que el proceso identificado sea llamado.
Figura 22
Para poder determinar estos tiempos, es necesario conocer en cada instante el valor
de los estados de los puertos que formarán parte del switch que se manipule, y el tiempo que
transcurre entre los cambios de estado. Por lo que el objeto sobre el que se debe de
investigar es claramente los conmutadores. Si se clicka sobre on switch en el escenario se
podrá observar la siguiente pantalla, ilustrada en la Figura 23. En esta figura se puede
observar claramente los procesos conmutador, eth_swith, y los procesos relacionados con
todos los puertos del conmutador, eth_port_rx_yy y eth_port_tx_yy. Como en este proyecto
interesa la información global de todos los puertos en su conjunto, se puede determinar que
el proceso que es de interés es el proceso eth_switch. Si se realiza un doble click sobre el y
se miran los procesos hijos que genera en su ejecución se puede observar un proceso hijo
con nombre bridge_protocol_entity, tal y como se ilustra en la Figura 24.
32
Figura 23
Figura 24
Una vez localizado el objeto que es de interés, con objmap se puede determinar su
identificador dentro de la simulación. Una vez dentro del objeto con promap se pueden
determinar sus procesos, del cual es imprescindible el conocido con el nombre de
eth_switch, y una vez dentro de él se pueden conocer los identificadores de los hijos
realizando de nuevo un comando promap.
Conocido ya el identificador del proceso hijo lo único que faltaría sería visualizar
toda la información que almacena en los instantes necesarios, para ello se realiza un prodiag
del proceso hijo, que mostrará por pantalla la información de forma clara y ordenada junto
al tiempo de ejecución.
33
4.5 Creación y substitución de la Consola Opnet
Una vez conocidos los identificadores dentro del simulador Opnet, es necesario crear
un script capaz de realizar operaciones como: parar la simulación cuando la consola llame al
proceso deseado, la interrogación del proceso hijo del que se desee recopilar información, la
ruptura de un enlace en el momento preciso, preferiblemente después de que se haya
realizado la designación del árbol inicial, y la desactivación de cualquier comando, que se
haya utilizado para recopilar información, una vez se tengan todos los datos deseados.
Esta última operación es necesaria para que la simulación siga su curso sin que se
vea detenida ni alterada. El script que se muestra en la Figura 25, será leído por la consola
de Opnet de forma secuencial, como si fueran comandos introducidos por al usuario. Este
script se ha creado para la simplificación de las operaciones y para poder adquirir los datos
de forma totalmente automatizada.
El script es necesario que comience por BEGIN y concluya con END. Los comandos
printf permiten escribir por pantalla tal y como lo haría un usuario cualquiera, los números
que le preceden deben de estar en secuencia para que la consola de Opnet sea capaz de
leerlos de forma seguida. El comando prostop hará que la simulación pare cada vez que se
llama al proceso deseado, en este caso el proceso con identificador 1380. Los 2 primeros
comandos cont son necesarios ya que al proceso al que se llama es un proceso hijo, con lo
que si se le llama antes de que sea creado puede dar un error, produciendo una parada en la
simulación.
Una vez que se han escrito con el editor de texto los comandos necesarios para
realizar la totalidad de las operaciones sin tocar un botón, es el momento de crear el script se
substituirá al originalmente usado por la consola de Opnet. Para ello debemos guardar el
documento con extensión awk e introducir dentro de Cygwin el comando awk -f
script_odb.awk > odb_script_scr. Tal y como se muestra en la Figura 26.
34
Figura 25
Figura 26
35
Figura 27
4.6 Simulación
En este apartado se van a aplicar de forma continua los pasos que se han explicado
en los apartados anteriores, mostrando los resultados que son el objetivo de este proyecto
final de carrera. En un primer momento se realizará una simulación sencilla configurando
los conmutadores con el protocolo que corresponda y la consola de Opnet tal y como se
muestra en la Figura 21. Una vez que haya finalizado la simulación de forma correcta se
visualizará en una figura cada uno de los árboles de expansión que se hayan determinado
por el protocolo en cuestión.
Tras mostrar el árbol en una figura, se substituirá la consola de Opnet por la creada
para cada uno de los protocolos, tal y como se explica en el apartado 4.5, y se configurará la
consola Opnet como se muestra en la Figura 27. Una vez finalizada la simulación y tras
haber recogido toda la información necesaria del proceso hijo de interés, se volverá a
mostrar una figura pero esta vez con el enlace seleccionado fuera de servicio. La
información al completo de la consola y del proceso puede ser accedida en los Anexos
correspondientes al protocolo ejecutado.
36
Figura 28
Figura 29
37
La Figura 29 muestra como queda el estado de la red cuando el corte del
enlace entre CPD ---> AlmMPEE1 se realiza. Dejando patente la reconfiguración del
escenario buscando alternativa al camino caído, habilitando el enlace Torre --->
AlmMPEE1.
Figura 30
38
Figura 31
En las figuras que preceden se mostrará cada uno de los árboles realizados
por al protocolo MSTP. En la Figura 32 se puede ver el árbol de expansión con ID y
igual a 1, en la Figura 33 se muestra la configuración del árbol correspondiente a la
VLAN con ID 3 y en las dos últimas figuras, Figura 34 y Figura 35, se puede ver el
árbol de la VLAN con ID 2 antes y después de cortar el enlace Soplado2 -->
AlmPT2.
Figura 32
39
Se puede observar la existencia de 3 puertos maestros conectando 2 regiones
diferenciadas, 4 conmutadores que trabajan como raíces regionales y la accesibilidad
a los servicios de los usuarios que se encuentran en los departamentos que forman la
VLAN0, tal y como se comentó en el apartado de configuración MSTP.
Figura 33
40
Figura 34
41
Figura 35
Tras realizar una simulación utilizando la consola creada, se pueden guardar los
datos mostrados por pantalla en cualquier tipo de documento. En este proyecto los
documentos se guardarán en formato .txt. Estos documentos contienen todo la información
almacenada por el proceso hijo al que se le ha ido interrogando en el transcurso de la
simulación.
42
El número de filtros es 3, uno para cada protocolo de expansión, y son invocados de
la siguiente forma: para el protocolo STP, awk -f filtro_STP.awk -v SALIDA =
"filtrado_de_STP.txt" -v PUERTOS = 4 STP_escenario_definitivo.txt, para el protocolo
RSTP, awk -f filtro_RSTP.awk -v SALIDA = "filtrado_de_RSTP.txt" -v PUERTOS = 4
RSTP_escenario_definitivo.txt y para el protocolo MSTP, awk -f filtro_MSTP.awk -v
SALIDA = "filtrado_de_MSTP.txt" -v PUERTOS = 3 MSTP_escenario_definitivo.txt.
El primer documento con extensión awk es el filtro que va ha ser aplicado, el campo
SALIDA es donde se guardará toda la información que sea de interés desechando la
información que no sea relevante para los tiempos de respuesta, el campo PUERTOS
permite al filtro saber de cuantos puertos dispone el conmutador para controlar sus estados,
los roles y con ello el tiempo que transcurre de un cambio a otro y para finalizar, el último
documento con extensión .txt es el documento a filtrar.
5 Resultados
Una vez adquirida la información y mostrado los diversos filtros que se han creado se pasará
a filtrar en su totalidad por el filtro correspondiente a cada protocolo, mostrando de forma exacta los
tiempos tanto de realización del árbol de expansión como de recuperación ante un corte de cada uno
de los protocolos. La información filtrada puede ser visualizada en los Anexos correspondientes.
Destacar que tras haber filtrado la información del Anexo 1, con el filtro STP,
Anexo 8, se puede comprobar en al Anexo 4 como el protocolo STP tarda 4,0000271369
segundos en pasar del estado LISTENING al estado FORWARDING, permitiendo de esta
forma a todos los puertos del conmutador transmitir información de usuario. La última
transición se puede visualizar en la Figura 36.La relación del tiempo transcurrido para pasar
de los estados LISTENING --> LEARNING, 2 segundos, y LEARNING -->
FORWARDING, otros 2 segundos, están directamente relacionados con el valor del
parámetro Hello Time configurado en todos los switches que componen la red. 1 segundo de
transmisión y 1 segundo de recepción.
Figura 36
43
En la Figura 36, perteneciente al filtrado de la información se puede observar la
última transición de los puertos P0,P2 y P3 que pasan del estado LEARNING al último
estado FORWARDING. En estos estados los puertos permanecen hasta que finaliza la
simulación o hasta que un enlace o conmutador caiga.
Figura 37
44
Figura 38
Figura 39
45
El escenario de la Figura 28, tiene la peculiaridad de que la conexión AlmMPEE1 --
> Taller se caracteriza de forma distinta por los dos switches. Para AlmMPEE1 debe de
pasar por todos los estados correspondientes antes de llegar al FORWARDING de forma
permanente, ya que en un primer momento el puente AlmMPEE1 se ha dado cuenta que el
puente Taller le da el valor de BLOCKING y rol Alternate.
Figura 40
Figura 41
Para poder conocer el tiempo de respuesta del protocolo RSTP se toma la decisión
de cortar el enlace en el segundo 4,4001223568 de simulación, tal y como se puede ver en
la Figura 42. Tras este corte el conmutador reacciona cambiando los estados y los roles de
los puertos P0 y P2 a DISABLED, Disabled y a FORWARDING, Root respectivamente en
exactamente 0,0000114937 segundos, tal y como se muestra en la Figura 43.
46
Figura 42
Figura 43
47
5.3 Resultados MSTP
Figura 44
48
Figura 45
Figura 46
49
6 Conclusiones
Tras haber realizado de forma completa los objetivos que se marcaron para este proyecto
final de carrera y comparados los resultados que han sido recopilados en el transcurso del mismo,
las conclusiones sobre que protocolo entre STP, RSTP y MSTP es mas eficiente en terminos de
temporales a la hora de establecer el árbol inicial de expansión, se deja claramente desbancado al
protocolo STP con respecto a los protocolos RSTP y MSTP, ya que los 4 segundos que tarda en
permitir a los puertos transmitir información de los usuarios está muy por encima de las milésimas
de segundo que tardan los protocolos RSTP y MSTP en permitir esta misma acción.
Esta diferencia se produce claramente por las diferentes filosofías tomadas por los
protocolos ya que para STP los puertos no son fiables de producir un bucle en el árbol hasta que se
demuestre lo contrario, en cambio para los protocolos RSTP y MSTP la filosofía con los puertos es
totalmente inversa considerando que los puertos son fiables hasta que se demuestra la contrario. Por
otra parte hay que diferenciar lo comentado en las líneas anteriores con el tiempo que tardan los
protocolos RSTP y MSTP en crear su árbol de expansión, tal y como se muestra en los apartados
anteriores el tiempo que tarda el protocolo RSTP en definir por completo los estados de los puertos
es de 4 segundos y el tiempo tomado por MSTP es de 3 segundo, dejando claramente por delante al
protocolo MSTP en este aspecto.
Otro de los temas que se ha abarcado, en este proyecto final de carrera, es el tiempo de
reacción de los protocolos ante una caída de enlace, en este caso provocada. Para esta situación el
protocolo STP tarda 4 segundos en reaccionar y volver a establecer los estados definitivos a sus
puertos, por contra RSTP tarda exactamente 0,0000114937 segundos en realizarlo y MSTP
0,00001904 segundos volviéndose a quedar obsoleto el protocolo STP con respecto a los protocolos
RSTP y MSTP. La decisión entre RSTP y MSTP viene determinada por: la independencia que
ofrece MSTP al definir VLANs que reaccionan de forma independiente ante problemas surgidos en
sus dominios versus la globalización que ofrece RSTP creando un único árbol de expansión y la
complejidad que conlleva el protocolo MSTP versus la sencillez que aporta RSTP.
7 Referencias
[4]. Distributed Restoration Method for Metro Ethernet, HACNet Lab, Southern Methodist
University Dallas, Texas, USA. IEEE Computer Society (ICNICONSMCL´06).
[5]. Optimizing QoS Aware Ethernet Spanning Trees, Department of Telecomunications and Media
Informatics Budapest University of Technology and Economics. IEEE 2005.
[7]. The Multiple Spanning Tree Protocol (MSTP), IEEE Standards Draft.
50
Anexos
Los anexos a los que se ha ido haciendo referencia en el transcurso del proyecto, se
encuentran accesibles en el CD que acompaña a la documentación escrita del proyecto. En el
siguiente párrafo se explican de forma clara los contenidos de cada uno de ellos.
En los Anexos 8, 9 y 10 se pueden visualizar los filtros de los protocolos STP, RSTP y
MSTP, respectivamente, utilizados para presentar de forma clara la información almacenada en los
Anexos 1, 2 y 3, la cual está almacenada en los Anexos 4, 5 y 6.
51
52