Universidad Simón Bolı́var Diseño y Administración de Redes Septiembre - Diciembre 1.998 gated (Protocolos Interiores) Dany Luis Fariña Andueza gated Caracterı́sticas principales • Permite correr más de un protocolo de enrutamiento. • Facilita la modificación dinámica de la información externa de alcanzabilidad • Se pueden implementar polı́ticas de enrutamiento para decidir cuáles rutas aceptar y cuáles anunciar. • Todos los protocolos se configuran desde un mismo archivo (/etc/gated.conf). Ejemplo de configuración (I) Ejemplo de configuración (I) Máquina macadamia rip yes { nobroadcast ; interface 172.16.9.23 version 2 multicast authentication simple "REAL^stuff" ; }; Ejemplo de configuración (I) Enrutador cashew interfaces{ interface 172.16.9.1 passive; }; routerid 172.16.9.1 ; rip yes { broadcast; defaultmetric 5; interface 172.16.9.23 version 2 multicast authentication simple "REAL^stuff" ; }; ospf yes{ backbone{ authtype simple; interface 172.16.1.9 { priority 5; authkey "It’sREAL"; }; }; }; Ejemplo de configuración (II) Enrutador brazil autonomoussystem 249; routerid 172.16.1.1; rip no; bgp yes{ preference 50; group type external peeras 164{ peer 10.6.0.103; peer 10.20.0.72; }; }; ospf yes{ backbone{ authtype simple; interface 172.16.1.1{ priority 10; authkey "It’sREAL"; }; }; }; Ejemplo de configuración (II) Enrutador brazil export proto bgp as 164{ proto direct; proto ospf; }; export proto ospfase type 2{ proto bgp as 164{ all; }; }; Opciones de gated (I) gated [-c] [-C] [-n] [-N] [-t trace_options] [-f config_file] [trace_file] -c Revisa la sintaxis del archivo de configuración. Escribe la salida a /usr/tmp/gated dump. -C Ídem. Devuelve un estado de salida (1: error, 0: en caso contrario). -n Impide que se actualice la tabla de enrutamiento. -N Impide que gated se ejecute como un demonio. -t trace options Enciende el modo de trace (trazas). -f config file Utilizar el archivo de configuración config file (Por defecto /etc/gated.conf). trace file Descargar las trazas en el archivo trace file. Procesamiento de señales sighup Releer el archivo de configuración sin interrumpir el servicio. sigint Guardar el estado de gated en /usr/tmp/gated dump. sigterm Termina gated “amistosamente”. sigkill Termina gated forzosamente y genera un core. sigusr1 Enciende o apaga el tracing. sigusr2 Chequear cambios en el estado de las interfaces de red. El lenguaje de configuración de gated (I) Lenguaje estructurado, compuesto por nueve tipos de especificaciones: Directive Inclusión de archivos en gated.conf. Trace Control de las trazas de gated. Options Definición de procesamientos especiales de gated. Interface Configuración de las interfaces de red. Definition Aspectos de configuración relacionados con los protocolos. Protocol Habilitan o deshabilitan los protocolos. También definen sus opciones. El lenguaje de configuración de gated (II) - Especificaciones (continuación): Static Definición de rutas estáticas usadas por gated. Control Definición de polı́tica de enrutamiento. Aggregate Usado en redes nacionales y regionales para reducir el número de rutas anunciadas. Las especificaciones directive y trace pueden aparecer en cualquier lugar dentro del archivo gated.conf. El resto de las especificaciones deben seguir el orden antes descrito. Directive statements Inclusión de archivos en gated.conf. %include filename Incluir el archivo “filename” en el archivo de configuración. %directory pathname Directorio base para los archivos incluidos. Trace statements (I) Control de las trazas de gated. traceoptions [trace_file] [replace] [size bytes[k|m] [files n]] [nostamp] trace_options [except trace_options] trace file Archivo de salida para las trazas. replace Reemplazar el archivo de trazas actual, en lugar de agregar la información. Trace statements (II) [size t[k | m] [files n]] Limita el tamaño del archivo de trazas a t bytes. n define el número máximo de archivos de trazas (trace file.1, trace file.2, ..., trace file.n). nostamp No incluir timestamp en las lı́neas de las trazas. trace options Define los eventos capturados por gated: none: Ningún evento. all: Todos los eventos. general: Eventos de normal y route state: Transiciones de estado en los protocolos. (p.e.: OSPF y BGP). normal: Interacciones normales de los protocolos. policy: Aplicación de polı́ticas de enrutamiento. Trace statements (III) trace options (continuación) task: Procesamiento a nivel del sistema. timer: Eventos de temporización de protocolos o máquinas vecinas. route: Cambios en las tablas de enrutamiento. detail: Contenido de los paquetes que pasan por el enrutador. send: Limita detail a los paquetes enviados. recv Limita detail a los paquetes recibidos. except trace options Deshabilita algunas opciones especı́ficas de tracing. Options statements (I) Definición de procesamientos especiales de gated. options [nosend] [noresolv] [gendefault [preference preferencia] [gateway gateway]] [syslog [upto] log_leve] [mark time] ; nosend No enviar ningún paquete. noresolv No usar el DNS para resolver nombres y direcciones. syslog [upto] log level Usar setlogmask para controlar el logging de gated mark time Envı́a un mensaje de tiempo periódico al archivo de trazas. Interface statements (I) • Configuración de las interfaces de red. • Las interfaces pueden ser identificadas por nombre (le0 se refiere a la interfaz ”le0”, le se refiere a le0, le1, ...), por nombre de máquina, dirección IP o por la palabra clave all. • gated soporta cuatro tipos de interfaz: loopback, broadcast, point-to-point y non-broadcast multi-access. • gated ignora cualquier interfaz que tenga una dirección local, remota o de broadcast inválida. También ignora interfaces PPP con la misma dirección remota y local. Interface statements (II) interfaces { options [strictinterfaces] [scaninterval time]; interface interface_list [preference preferencia] [down_preference preferencia] [passive] [simplex] [reject] [blackhole]; define address [broadcast direccion] | [pointtopoint address] [netmask mask] [multicast];}; Interface statements (III) strictinterfaces Genera un error cuando en la configuración se referencia una interfaz que no fue hallada al comenzar gated. scaninterval time Revisar cambios en la lista de interfaces cada time segundos. preference preferencia Define la prefencia de las interfaces. 0: mayor preferencia. down preference preferencia Define la prefencia de las interfaces que no funcionan. Interface statements (IV) passive Evita que gated degrade la preferencia de una interfaz cuando ésta no funciona correctamente. broadcast dirección Define la dirección de broadcast. pointtopoint dirección Define la dirección local de una interfaz PPP. En este caso la especificación define indica la dirección de la máquina remota. netmask mask Define la máscara de subred. multicast Indica que la interfaz soporta multicasting. Definition statements (I) Define aspectos de configuración relacionados con más de un protocolo. autonomoussytem asn; routerid direccion; martians{ host address [allow]; address [mask mascara | masklen numero] [allow]; default [allow]; }; autonomoussystem asn Define el sistema autónomo usado por BGP y EGP. routerid dirección Define el enrutador usado por BGP y OSPF. Definition statements (II) martians{ host address [allow]; address [mask mascara | masklen numero] [allow]; default [allow]; }; • Define las direcciones cuya información de enrutamiento será ignorada. • Una dirección puede ser especificada como una dirección de máquina usando la palabra clave host antes de la dirección, en caso contrario la dirección es interpretada como una dirección de red. • La palabra allow elimina la dirección de la lista de marcianos. • default allow elimina todas las entradas estándar de la lista de marcianos. Protocol statements (I) Permite activar o desactivar el soporte de los protocolos, y definir sus opciones. Los protocolos soportados son: Interiores • hello • isis • rip • ospf Exteriores • bgp • egp otros • snmp • redirect • icmp • routerdiscovery • kernel RIP statement (I) rip yes | no | on | off [{ broadcast; nobroadcast; nocheckzero; preference preferencia; defaultmetric metrica; query authentication [none | [simple | md5 clave]]; interface lista_interfaces [noripin] | [ripin] [noripout] | [ripout] [metricin metrica] [metricout metrica] [version 1 | 2 [multicast | broadcast]] [[secondary] authentication [none | [simple | md5 clave]]; trustedgateways lista_gateways; sourcegateways lista_gateways; traceoptions opciones_trazas; }]; RIP statement (II) Esta especificación habilita o deshabilita el soporte a RIP. broadcast Obliga a gated a hacer broadcast de los paquetes de actualización aún si el sistema posee una sola interfaz. nobradcast Obliga a gated a no hacer broadcast de los paquetes de actualización aunque el sistema tenga más de una interfaz. preference preference Determina la preferencia para las rutas obtenidas por RIP. defaultmetric metric Define la métrica usada para las rutas anunciadas por RIP. queryauthentication [none / [simple / md5 clave]] Define el tipo de autentificación de los paquetes de petición de actualización. RIP statement (III) interface interface list Identifica las interfaces de ejecución de RIP. Parámetros: ripin / noripin : Escuchar/Ignorar paq. RIP recibidos. ripout / noripout : Enviar/No enviar paq. RIP. metricin metric : Métrica usada para los paquetes RIP recibidos por la interfaz. metricout metricout : Especifica la métrica sumada a los paquetes enviados por la interfaz. version 1 / 2 [multicast / broadcast] : Versión de RIP usada en esta interfaz. trustedgateways gateway list : Define los enrutadores de los cuales RIP acepta actualizaciones. traceoptions trace options : Opciones de trazas de eventos: packets, request, response, other. Especificación OSPF (I) ospf yes | no | on | off [{ defaults { preference preferencia; cost costo; tas [as] tag; type 1 | 2; }; exportlimit rutas; exportinterval tiempo; traceoptiones opciones_trazas; monitorauthkey clave; Especificación OSPF (II) backbone | area numero { authtype 0 | 1 | none | simple; sub [cost costo]; networks { direccion [mask mascara /masklen numero] [restrict]; host direccion [restrict]; }; stubhosts { direccion cost costo; }; interface lista_interfaces [nonbroadcast] [cost costo] { pollinterval tiempo; routers { direccion [eligible]; }; parametros_interfaz }; virtuallink neighborid id_router transitarea area { parametros_interfaz }; }; }]; Especificación OSPF (III) defaults Define las caracterı́sticas por defecto cuando se importan rutas de sistemas autónomos externos y éstas son anunciadas. Los anuncios de estado de enlace (LSA) usados para estas rutas son llamados autonomous system externals (ASE). rutas. preference preferencia : Define la preferencia de las rutas ASE cost costo : Define el costo indicado al anunciar una ruta no-OSPF en un ASE. type 1 / 2 : Define el tipo de ASE usado. 1 : Cuando las rutas obtenidas de un protocolo externo provee valores métricos comparables a la métrica de OSPF. 2 : en caso contrario. exportlimit rutas Define el máximo número de ASE’s que pueden ser dispersados a la vez. Especificación OSPF (IV) exportinterval tiempo Define cuán frecuentemente se dispersan los ASE’s. traceoptions trace options Define los eventos de los cuales se hará traza. lsabuild : Construcción de LSA’s. spf : Cálculos de SPF (Shortest Path First). hello : Paquetes hello de OSPF. dd : Paquetes de descripción de base de datos de OSPF. request : Paquetes de petición de estado de enlace (LS). lsu : Paquetes de actualización de LS. ack : Paquetes Ack de LS. Especificación OSPF (V) backbone / area number Define el área OSPF al cual pertenece este enrutador. Parámetros de configuración: authtype 0 / 1 / none / simple : Especifica el esquema de autentificación. stub [cost costo] : Especifica si éste es un área terminal (stub area). Si se especifica, el costo es usado al anunciar una ruta por defecto en el área. stubhosts : Lista las máquinas conectadas directamente, y sus costos. Estas deben ser anunciadas como alcanzables desde este enrutador. Especificación OSPF (VI) backbone / area (continuación) interface interface list [nobroadcast] [costo costo] Define las interfaces usadas por OSPF. Si se especifica nobroadcast la interfaz se supone conectada a una red NBMA. En caso contrario, la interfaz está conectada a una red broadcast o PPP. También se puede especificar el costo. Las interfaces NBMA poseen dos opciones especı́ficas: pollinterval time : Tiempo entre paquetes hello. routers : Lista todos los vecinos por dirección. Especificación OSPF (VII) backbone / area (continuación) interface (continuación) Las interfaces PPP tienen un parámetro adicional: nomulticast : Obliga a enviar paquetes unicast a través de esta interfaz. enable / disable : Habilita o deshabilita la interfaz. retransmitinterval time : Define el número de segundos entre anuncios del estado de los enlaces. transitdelay time : Tiempo aproximado que toma retrasmitir una actualización de estado de enlaces. priority priority : Define la prioridad de este enrutador para ser elegido como enrutador designado. La Especificación isis isis yes | no | dual | iso { traceoptions opciones_trazas_isis; systemid string_hexadecimal_6_digitos; area string_hexadecimal; set parametro_isis valor ; ... circuit string metric level 1 | 2 metrica priority level 1 | 2 prioridad; }; La Especificación hello hello yes | no | on | off [{ broadcast; nobroadcast; preference preferencia; defaultmetric metrica; interface lista_interfaces [nohelloin] | [helloin] [nohelloout] | [helloout] [metricin metrica] [metricout metrica]; trustedgateways lista_gateways; sourcegateways lista_gateways; traceoptions opciones_trazas; }];