You are on page 1of 9

Open Shortest Path First (OSPF) es un protocolo de enrutamiento de estado de enlace desarrollado como

reemplazo del protocolo de enrutamiento por vector de distancia: RIP.


Las principales ventajas de OSPF frente a RIP son su rápida convergencia y escalabilidad a implementaciones
de redes mucho mayores.
cinco tipos diferentes de LSP de OSPF. Cada paquete cumple una función específica en el proceso de
enrutamiento de OSPF:

1. Saludo: los paquetes de saludo se utilizan para establecer y mantener la adyacencia con otros routers
OSPF. El protocolo de saludo se analiza en detalle en el próximo tema.
2. DBD: el paquete de Descripción de bases de datos (DBD) incluye una lista abreviada de la base de datos de
estado de enlace del router emisor y lo utilizan los routers receptores para comparar con la base de datos de
estado de enlace local.
3. LSR: los routers receptores pueden luego solicitar más información acerca de una entrada en la DBD
enviando una Solicitud de estado de enlace (LSR).
4. LSU: los paquetes de Actualización de estado de enlace (LSU) se utilizan para responder las LSR y para
anunciar nueva información. Las LSU contienen siete tipos diferentes de Notificaciones de estado de enlace
(LSA). Las LSU y LSA se analizan brevemente en un tema posterior.
5. LSAck: cuando se recibe una LSU, el router envía un Acuse de recibo de estado de enlace (LSAck) para
confirmar la recepción de LSU.
Intervalos muerto y de saludo de OSPF
Antes de que dos routers puedan formar una adyacencia de vecinos OSPF, éstos deben estar de acuerdo con
respecto a tres valores: Intervalo de saludo, intervalo muerto y tipo de red. El intervalo de saludo de OSPF
indica la frecuencia con que un router OSPF transmite sus paquetes de saludo. De manera predeterminada,
los paquetes de saludo OSPF se envían cada 10 segundos en segmentos multiacceso y punto a punto, y cada
30 segundos en segmentos multiacceso sin broadcast (NBMA) (Frame Relay, X.25, ATM). En la mayoría de
los casos, los paquetes de saludo OSPF se envían como multicast a una dirección reservada.
El intervalo muerto es el período, expresado en segundos, que el router esperará para recibir un paquete de
saludo antes de declarar al vecino "desactivado". En el caso de los segmentos multiacceso y punto a punto,
dicho período es de 40 segundos. En el caso de las redes NBMA, el intervalo muerto es de 120 segundos.

Selección de DR y BDR
El DR es responsable de actualizar todos los demás routers OSPF (llamados DROthers) cuando ocurre un
cambio en la red de accesos múltiples. El BDR supervisa al DR y reemplaza a DR si el DR actual falla.
Las actualizaciones de estado de enlace (LSU) son los paquetes utilizados para las actualizaciones de
enrutamiento OSPF. Un paquete LSU puede incluir diez tipos diferentes de Notificaciones de estado de
enlace (LSA),
OSPF se habilita con el comando de configuración global router ospf process-id. El comando process-id es un
número entre 1 y 65535 elegido por el administrador de red. El comando process-id es significativo a nivel
local, lo que implica que no necesita coincidir con otros routers OSPF para establecer adyacencias con dichos
vecinos. R1(config)#router ospf R1(config-router)#
El comando network se utiliza en el modo de configuración de router.
Router(config-router)#network network-address wildcard-mask area area-id
Network 192.168.2.045 0.0.0.25 area 0
Determinación de la ID del router

La ID del router OSPF se utiliza para identificar en forma exclusiva cada router en el dominio de
enrutamiento OSPF. La ID de un router es simplemente una dirección IP. Los routers de Cisco obtienen la ID
del router conforme a tres criterios y con la siguiente prioridad:
1. Utilizar la dirección IP configurada con el comando router-id de OSPF.
2. Si router-id no está configurado, el router elige la dirección IP más alta de cualquiera de sus interfaces
loopback.
3. Si no hay ninguna interfaz loopback configurada, el router elige la dirección IP activa más alta de
cualquiera de sus interfaces físicas.
Un comando que puede utilizar para verificar la ID del router actual es show ip protocols. Algunas versiones
de IOS no muestran la ID del router como se muestra en la figura. En dichos casos, utilice los comandos
show ip ospf o show ip ospf interface para verificar la ID del router.
Dirección de loopback
Router(config)#interface loopback number
Router(config-if)#ip address ip-address subnet-mask
Por lo tanto, la utilización de una dirección de loopback para la ID del router ofrece estabilidad al proceso
OSPF.
Comando router-id de OSPF
El comando router-id de OSPF se introdujo en IOS 12.0(T) y tiene prioridad sobre direcciones IP físicas y de
loopback en la determinación de la ID del router. La sintaxis de comando es:
Router(config)#router ospf process-id
Router(config-router)#router-id ip-address
Modificación de la ID del router
La ID del router puede modificarse con la dirección IP de un comando router-id de OSPF subsiguiente,
volviendo a cargar el router o utilizando el siguiente comando:
Router#clear ip ospf process
El comando show ip ospf neighbor puede utilizarse para verificar las relaciones de vecinos OSPF y solucionar
sus problemas. Este comando muestra el siguiente resultado para cada vecino:

ID de vecino: la ID del router vecino.


Pri: la prioridad OSPF de la interfaz. Esto se analiza en una sección posterior.
Estado: el estado OSPF de la interfaz. El estado FULL significa que el router y su vecino poseen bases de
datos de estado de enlace de OSPF idénticas. Los estados OSPF se analizan en CCNP.
Tiempo muerto: la cantidad de tiempo restante que el router esperará para recibir un paquete de saludo
OSPF por parte del vecino antes de declararlo desactivado. Este valor se reestablece cuando la interfaz
recibe un paquete de saludo.
Dirección: la dirección IP de la interfaz del vecino a la que está conectada directamente el router.
Interfaz: la interfaz donde este router formó adyacencia con el vecino.
Otros poderosos comandos de resolución de problemas de OSPF incluyen:

show ip protocols
show ip ospf
show ip ospf interface

Ancho de banda de referencia

El ancho de banda de referencia predeterminado es de 10 a la octava potencia, 100 000 000 bps o 100


Mbps. Esto da como resultado interfaces con un ancho de banda de 100 Mbps y más con el mismo costo de
OSPF de 1. El ancho de banda de referencia puede modificarse para adaptarse a redes con enlaces más
rápidos que 100 000 000 bps (100 Mbps) con el comando auto-cost reference-bandwidth de OSPF. Cuando
este comando es necesario, se recomienda su utilización en todos los routers para que la métrica de
enrutamiento de OSPF se mantenga uniforme.
OSPF acumula costos
El costo de una ruta OSPF es el valor acumulado desde un router hasta la red de destino.
Modificación de costo de enlace es un valor preciso que OSPF utilizará para determinar el mejor camino.
Router(config-if)#bandwidth bandwidth-kbps 64
Comando ip ospf cost
Un método alternativo a la utilización del comando bandwidth es utilizar el comando ip ospf cost, que le
permite especificar directamente el costo de una interfaz. Por ejemplo, en R1 podríamos configurar Serial
0/0/0 con el siguiente comando: el comando bandwidth utiliza el resultado para determinar el costo y el ip
ospf cost especifica directamente el costo.
R1(config)#interface serial 0/0/0
R1(config-if)#ip ospf cost 1562
OSPF define cinco tipos de redes:
Punto a punto Broadcast de accesos múltiples Multiacceso sin broadcast (NBMA) Punto a multipunto
Enlaces virtuales
Elección de DR/BDR

¿Cómo se eligen el DR y el BDR? Se aplican los siguientes criterios:

1. DR: Router con la prioridad más alta de interfaz OSPF.


2. BDR: Router con la segunda prioridad más alta de interfaz OSPF.
3. Si las prioridades de la interfaz OSPF son iguales, la ID del router más alta se utiliza para desempatar.
En este ejemplo, la prioridad de interfaz OSPF predeterminada es 1. Como consecuencia, en base a los
criterios de selección enumerados anteriormente, la ID del router OSPF se utiliza para elegir el DR y el BDR.
Como podrá ver, el RouterC se convierte en el DR y el RouterB, con la segunda ID del router más alta, se
convierte en el BDR. Debido a que el RouterA no se elige como DR ni BDR, se convierte en DROther.
Los DROthers sólo forman adyacencias FULL con el DR y el BDR; sin embargo, aún forman una adyacencia de
vecinos con cualquier DROther que se una a la red. Esto significa que todos los routers DROther en la red de
accesos múltiples aún reciben paquetes de saludo por parte de todos los demás routers DROther. De esta
manera, éstos conocen a todos los routers de la red. Cuando dos routers DROther forman una adyacencia de
vecinos, el estado de vecino se muestra como 2WAY. Los diferentes estados de vecino se analizan en CCNP.
Debido a que DR se convierte en el punto central de recolección y distribución de las LSA, es importante que
este router tenga suficiente capacidad de memoria y CPU para cumplir con la responsabilidad. En vez de
confiar en la ID del router para decidir cuáles routers se elegirán como DR y BDR, es mejor controlar la
elección de dichos routers con el comando ip ospf priority interface.

Router(config-if)#ip ospf priority {0 - 255}


En nuestra discusión anterior, la prioridad OSPF era igual. Esto se debe a que, de manera predeterminada, el
valor de prioridad es 1 para todas las interfaces del router. Por lo tanto, la ID del router determina el DR y el
BDR. Sin embargo, si cambia el valor predeterminado de 1 por un valor mayor, el router con la prioridad más
alta se convertirá en DR y el router con la segunda prioridad más alta se convertirá en BDR. Un valor de 0
hace que el router no sea elegible para convertirse en DR ni en BDR.
Haga clic en Configuración estática predeterminada de R1 en la figura.
La figura muestra el ASBR (R1) configurado con la dirección IP de Loopback1 y el reenvío de tráfico de la ruta
estática por defecto al router ISP:
R1(config)#ip route 0.0.0.0 0.0.0.0 loopback 1

Nota: La ruta estática por defecto utiliza el loopback como una interfaz de salida ya que el router ISP en esta
topología no existe físicamente. Al utilizar una interfaz loopback, podemos simular la conexión a otro router.
Al igual que RIP, OSPF requiere el uso del comando default-information originate para publicar la 0.0.0.0/0
ruta estática por defecto a los demás routers del área. Si no se utiliza el comando default-information
originate, la ruta por defecto "quad-zero" no se propagará a los demás routers del área OSPF.
La sintaxis del comando es:
R1(config-router)#default-information originate
Ancho de banda de referencia
Para obtener cálculos de costo más precisos, puede ser necesario ajustar el valor del ancho de banda de
referencia. El ancho de banda de referencia puede modificarse para adaptarse a dichos enlaces más rápidos
mediante un comando OSPF auto-cost reference-bandwidth. Cuando este comando sea necesario, úselo en
todos los routers para que la métrica de enrutamiento de OSPF se mantenga uniforme.
R1(config-router)#auto-cost reference-bandwidth ?
1-4294967 El ancho de banda de referencia en términos de Mbits por segundo
Observe que el valor se expresa en Mbps. Por lo tanto, el valor predeterminado es equivalente a 100. Para
aumentarlo a velocidades de 10GigE, necesitará cambiar el ancho de banda de referencia a 10000.
R1(config-router)#auto-cost reference-bandwidth 10000
El comando show ip ospf neighbor en R1 verifica que R1 sea adyacente a R2 y R3. Observe en el resultado
que el Tiempo muerto cuenta regresivamente a partir de los 40 segundos. De manera predeterminada, este
valor se actualiza cada 10 segundos cuando R1 recibe un saludo del vecino.
los intervalos muertos y de saludo de OSPF pueden modificarse manualmente con los siguientes comandos
de interfaz:
Router(config-if)#ip ospf hello-intervalseconds
Router(config-if)#ip ospf dead-intervalseconds
Bases de datos MySQL

Para la creación de nuevas bases de datos basta sencillamente usar la orden


CREATE DATABASE nombre_db que se limita a habilitar un nuevo directorio para
los datos de la nueva base. Se puede completar la orden con la clausula CREATE
DATABASE IF NOT EXISTS db_nombre en cuyo caso la nueva base de datos
solo se intentará crear si no existe otra con el mismo nombre. Si no usamos IF
NOT EXISTS y el nuevo nombre está duplicado, MySQL nos avisará del error y no
ejecutará acción ninguna.

La creación de tablas tiene muchas mas opciones, ya que aqui no nos limitamos a
reservar un espacio, sino que debemos crear la propia estructura de la tabla

La sintaxis general es:

CREATE TABLE nombre_tbl


(nombre_columna1 TIPO_COLUMNA(nn),
nombre columna2 TIPO_COLUMNA(nn),
nombre_columna3 TIPO_COLUMNA(nn),
...
);

Es decir, para cada columna debemos especificar su nombre, su tipo (char,


varchar, int, etc) y su longitud.

Un buen diseño de la tabla determinará el éxito o fracaso de nuestra base de


datos. Existen abundantes estudios acerca de la normalización de las bases de
datos, cuya complejidad excede de las posibilidades de esta página. A un nivel
mucho mas básico se puede indicar que la sola elección del tipo de tabla
adecuado, y del tipo (y longitud) de datos de cada columna tendrá su reflejo en la
rapidez y eficacia del sistema.

La tabla se creará en la base de datos que esté en uso en ese momento. También
puedes crear específicamente la tabla en otra base de datos del mismo servidor,
usando la sintaxis CREATE TABLE bd_nombre.tabla_nombre

Algunas reglas a recordar son las siguientes:

 longitud: es opcional SALVO para los campos tipo DECIMAL NUMERIC


CHAR y VARCHAR.
Por ejemplo, CREATE TABLE mi_tabla (id_field INT(4));
Como sabemos, las columnas tipo INT pueden albergar desde
-2147463846 a 2147483647 (unsigned). Al fijar el rango en 4, lo limitamos
desde -999 a 9999.
NOTA: MySQL guardará correctamente el dato fuera del rango
especificado, siempre que no esté, además, fuera del rango para ese tipo
de columna.
Para datatypes no numéricos, el rango determina el número fijo de
carácteres almacenados en cada caso (CHAR) o el número máximo
permitido (p.e. VARCHAR).
 decimal: máximo número de decimales para aquellos datatypes que
admiten decimales. Si el número a almacenar tiene mas, será redondeado:
FLOAT (5,2)
 => 2.14 se almacena como 2.14
 => 32.147 se almacena como 32.15 (5 caracteres en total)
=> 232.14 se almacena como 232.1

Es decir, un número máximo de 5 caracteres, un número máximo (si caben


en el total) de 2 decimales.

 El atributo BINARY puede usarse con CHAR y VARCHAR, con el único


efecto de que en caso de búsqueda distinguirá mayúsculas y minúsculas.
 El atributo ZEROFILL solo puede emplearse con datos tipo numérico. El
atributo UNSIGNED solo puede emplearse con datos del tipo numérico
entero.
 Cada columna (independientemente de su tipo) puede ser NULL o NOT
NULL. Si no especificas nada, se asume que la columna es NULL
 Las columnas (salvo que sean AUTO_INCREMENT) siempre tienen un
valor por defecto. Si la columna es tipo NULL el valor por defecto es
justamente ese, NULL. Si es NOT NULL, y la columna numérica, el valor
por defecto es 0. Si la columna no es tipo numérica el valor por defecto será
"" (cadena vacia). Puede establecerse un valor por defecto propio con
DEFAULT.
 Solo puede existir una columna AUTO_INCREMENT por tabla, que debe
ser del tipo entero, y además NOT_NULL
 La columna AUTO_INCREMENT siempre será considerada como índice
primario (PRIMARY KEY).

Constructores en PHP

El constructor de una clase es un método o función que se ejecuta


automáticamente cada vez que instanciamos una clase. Los constructores son
opcionales, y se utilizan para inicializar variables y funciones que puedan ser
necesarias para el correcto funcionamiento de la clase.

Para crear un constructor tenemos que crear un método normal dentro de nuestra
clase, pero que tenga el mismo nombre de la clase:
1. <?PHP
2.  
3. class NombreClase {
4.
5. var $Param1;
6. var $Param2;
7. var $Param3;
8.  
9. function NombreClase($p1 = "", $p2 = "20", $p3 = "texto") {
10. $this->Param1 = $p1;
11. $this->Param2 = $p2;
12. $this->Param3 = $p3;
13. }
14.
15. }
16.  
17. ?>

EL método implementado es el constructor de la clase, ya que tiene el mismo


nombre que la clase, y lo utilizamos para inicializar las variables.

Cabe destacar la utilización de $this y el operador ->, this hace referencia a la


clase y el operador -> sirve para referirse a un método o variable de la clase.

Si por ejemplo, en nuestro constructor queremos utilizar un método de la clase, se


haría de la siguiente forma:

1. <?PHP
2.  
3. class NombreClase {
4.
5. var $Param1;
6. var $Param2;
7. var $Param3;
8. var $Param4;
9.  
10. function NombreClase($p1 = "", $p2 = "20", $p3 = "texto") {
11. $this->Param1 = $p1;
12. $this->Param2 = $p2;
13. $this->Param3 = $p3;
14. $this->Param4 = MiMetodo($p2);
15. }
16.
17. function MiMetodo($Parametro) {
18. //Operaciones
19. }
20.
21. }
22.  
23. ?>

Línea de comandos

En MySQL 5.0, el prompt por defecto mysql> puede reconfigurarse. La cadena de


caracteres para definir el prompt puede contener las siguientes secuencias
especiales:

Opción Descripción
\v Versión del servidor
\d Base de datos actual
\h Equipo del servidor
\p Puerto TCP/IP usado o fichero socket
\u Nombre de usuario
\U Nombre de cuenta nombre_usuario@nombre_equipo completo
\\ Carácter de barra invertida '\' literal
\n Carácter de nueva línea
\t Carácter de tabulador
\ Espacio (hay un espacio a continuación de la barra invertida)
\_ Espacio
\R Hora actual, en formato militar de 24 horas (0-23)
\r Hora actual, en formato estándar de 12 horas (1-12)
\m Minutos de la hora actual
\y Año actual, dos dígitos
\Y Año actual, cuatro dígitos
\D Fecha actual completa
\s Segundos de la hora actual
\w Día actual de la semana en inglés, en formato de tres letras (Mon, Tue, ...)
\P am/pm
\o Mes actual en formato numérico
\O Mes actual en inglés, en formato de tres letras (Jan, Feb, ...)
\c Contador que incrementa con cada comando ejectuado
\S Punto y coma
\' Comilla
\" Comilla doble

24. '\' seguido por cualquier otra letra es esa letra.


25. Si especifica el comando prompt sin argumentos, mysql resetea el prompt
al valor por defecto de mysql>.
26. Puede cambiar el prompt de diversas forma.

Modo grafico MYadmin

El entorno gráfico: phpMyAdmin

El acceso al servidor de MySQL tiene lugar a través de un entorno gráfico


denominado phpMyAdmin, entorno que abordaremos en los siguientes
Apartados.

Acceso a phpMyAdmin

El entorno phpMyAdmin funciona como una Web, puesto que está preparado
para acceder a él remotamente. Si deseamos entrar en modo local, abriremos
nuestro navegador web y escribiremos la dirección , que nos permitirá acceder
a una página como la que se aprecia en la Figura 8.53.

Fig. 8.53. Pantalla principal de phpMyAdmin.

En la parte derecha de la anterior pantalla se puede observar un desplegable


que da opción a escoger el idioma de trabajo. Ahora sí que podemos elegir el
castellano, entre otros muchos idiomas disponibles. No obstante, para tener
esta lista actualizada, debemos copiar el fichero langues.txt, que habíamos
descargado antes, a la misma carpeta (c:\Archivos de Programa\EasyPHP).

You might also like