IS-IS

 Nota: Para outros significados, veja Ísis (desambiguação).
Modelo OSI
Camada Protocolo
7.Aplicação HTTP, RTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS ...
6.Apresentação XDR, TLS ...
5.Sessão NetBIOS ...
4.Transporte NetBEUI, TCP, UDP, SCTP, DCCP, RIP ...
3.Rede IP (IPv4, IPv6), IPsec, ICMP, NAT ...
2.Enlace Ethernet, IEEE 802.1Q, HDLC, Token ring, FDDI, PPP, Switch, Frame relay, ATM, ARP, RARP ...
1.Física Modem, , 802.11 Wi-Fi RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, 10BASE-T, 100BASE-TX, ISDN, SONET, DSL ...

Intermediate System to Intermediate System (IS-IS, também grafado ISIS) é um protocolo de roteamento interior (IGP) do tipo estado de enlace (link-state) — isto é, em que cada roteador informa aos demais o estado das suas próprias conexões — normalmente implantado dentro de um único sistema autônomo e utilizado em grandes redes corporativas e de provedores de serviço para a troca de informações de roteamento. Em termos simples, um protocolo de roteamento é o conjunto de regras que os roteadores usam para trocar informações entre si e decidir por onde enviar os dados que circulam pela rede. O protocolo IS-IS é definido pela norma ISO/IEC 10589:2002 como norma internacional no modelo de Interconexão de Sistemas Abertos (OSI).

O IS-IS funciona por meio da inundação (flooding) de informações de estado de enlace por uma rede de roteadores. Cada roteador IS-IS constrói a sua própria base de dados de estado de enlace (LSDB, do inglês link-state database) a partir das informações de estado de enlace difundidas pelos demais roteadores. Na prática, cada roteador passa a ter um “mapa” completo da rede, de modo semelhante a um aplicativo de navegação que conhece todas as ruas de uma cidade. Assim como o Open Shortest Path First (OSPF), o IS-IS utiliza o algoritmo de Dijkstra para calcular os caminhos mais curtos pela rede, ou seja, um método que, a partir desse mapa, encontra a rota de menor custo até cada destino. Os pacotes (datagramas) são então encaminhados ao longo dos caminhos mais curtos calculados até os seus destinos.

História

O IS-IS foi desenvolvido pela Digital Equipment Corporation como parte da fase V do DECnet. A Internet Engineering Task Force (IETF) publicou uma especificação do IS-IS em 1990, mas esse RFC foi retirado e classificado como "histórico" por ter republicado um rascunho, e não a versão final, da norma da Organização Internacional de Normalização (ISO), o que gerou confusão.

O protocolo foi padronizado pela ISO em 1992 como ISO 10589, para uso entre sistemas intermediários (Intermediate Systems), e não entre sistemas finais (end systems) ou hospedeiros. Seu objetivo era viabilizar o roteamento de datagramas por meio do serviço de rede em modo sem conexão (CLNS, do inglês Connectionless-mode Network Service), parte da pilha de protocolos OSI desenvolvida pela ISO. O IS-IS foi desenvolvido mais ou menos na mesma época em que a IETF desenvolvia um protocolo semelhante, o OSPF. Posteriormente, foi ampliado para dar suporte ao roteamento de datagramas do Protocolo de Internet (IP), o protocolo da camada de rede da Internet global. Essa extensão é conhecida como IS-IS integrado (Integrated IS-IS). Em 2005, o IS-IS já havia se tornado o padrão de fato para os grandes backbones de provedores de serviço.

Terminologia

Como foi criado no contexto do modelo OSI, e não no da Internet, o IS-IS usa nomes próprios para elementos que em outras áreas da informática recebem nomes mais conhecidos. A norma ISO do IS-IS define uma terminologia própria para os componentes da rede, parte da qual difere dos termos habitualmente usados no setor:

Tipos de pacote

Os roteadores IS-IS trocam diferentes tipos de mensagem, chamados PDUs (unidades de dados de protocolo), cada um com uma função específica: apresentar-se aos vizinhos, divulgar informações sobre a rede ou conferir se todos possuem os mesmos dados. O IS-IS opera sobre enlaces de difusão (LAN) e ponto a ponto. As adjacências são formadas entre roteadores vizinhos para a troca de informações de roteamento.

PDU Hello do IS-IS (IIH)
As PDUs Hello do IS-IS são trocadas periodicamente para estabelecer e manter as adjacências. Em redes de difusão, um sistema intermediário designado (DIS) é eleito com base na prioridade da interface e no ID do sistema. Esse pacote Hello é enviado separadamente para o nível 1 e para o nível 2. Há três tipos de pacote Hello do IS-IS, conforme o tipo de circuito:
  • LAN L1 (PDU tipo 15);
  • LAN L2 (PDU tipo 16);
  • P2P (PDU tipo 17). Em enlaces ponto a ponto, não há pacotes Hello distintos por nível, como ocorre nos enlaces de difusão. Ao contrário do OSPF, o IS-IS não exige que os intervalos de Hello coincidam, embora diferenças significativas possam afetar a estabilidade da adjacência.
PDU de estado de enlace (LSP)
Contém as informações de roteamento. A LSP contém campos (tipo-comprimento-valor, ou TLVs) que trazem os dados de roteamento. Cada LSP possui um ID de LSP, composto por um ID de sistema, um ID de pseudonó e um ID de fragmento. Em uma LSP com o ID 1921.6820.0002.02-01:
  • 1921.6820.0002 é o ID do sistema (que gerou essa LSP);
  • 02 é o ID de pseudonó; e
  • 01 é o ID de fragmento.
Se o ID de pseudonó for zero, ele representa um sistema intermediário real. Qualquer valor diferente de zero indica que a LSP foi gerada por um DIS (pseudonó).
Se uma LSP exceder a unidade máxima de transmissão (MTU), ela é fragmentada em várias LSPs, distinguidas por um ID de fragmento. A numeração dos fragmentos começa em zero; uma LSP não fragmentada consiste em um único fragmento (ID 0), e os fragmentos adicionais recebem identificadores crescentes.
PDU de número de sequência completo (CSNP)
A PDU de número de sequência completo (CSNP, do inglês Complete Sequence Number PDU) é enviada pelo sistema intermediário designado (DIS) em intervalos regulares, normalmente a cada 10 segundos. Ela contém um resumo das PDUs de estado de enlace (LSPs), incluindo números de sequência e somas de verificação.
PDU de número de sequência parcial (PSNP)
Se um roteador detectar discrepâncias entre a sua base de dados de estado de enlace e uma CSNP recebida, ele envia uma PSNP (do inglês Partial Sequence Number PDU) solicitando as LSPs ausentes ou atualizadas.

Endereçamento e NET

Para participar do IS-IS, cada roteador precisa de um identificador único, que o distingue dos demais, de forma parecida com um número de documento de uma pessoa. Ao contrário da maioria dos protocolos de roteamento IP, o IS-IS opera diretamente sobre a camada 2, em vez de depender da camada 3 para o transporte, e não utiliza endereços IP para identificar interfaces. Ele identifica as interfaces por meio de endereços da camada 2, como os endereços MAC em redes Ethernet, e identifica os nós de roteamento por meio de endereços de rede ISO. Cada sistema intermediário recebe um título de entidade de rede (NET, do inglês Network Entity Title), que é um endereço NSAP usado para identificar o roteador no domínio de roteamento IS-IS. Um NET é um NSAP utilizado como título de entidade de rede, com o campo NSEL definido como zero. O campo de ID do sistema costuma ser preenchido com um endereço IPv4 exclusivo de uma das interfaces de loopback do roteador. Um sistema intermediário pode ter até três endereços NET. O NET é composto pelos campos Área, ID do sistema e NSEL. O campo Área é formado por um AFI (Address Family Identifier, identificador de família de endereços) e um ID de área, podendo ter de um a 13 bytes. O ID do sistema tem seis bytes, e o NSEL, um byte. Os campos do endereço de rede ISO "49.0100.1921.6821.1138.00" são:

Resolução de nomes de hospedeiro

Na administração de grandes redes, o uso direto de endereços IP pode ser inconveniente. Em redes extensas, os roteadores costumam ser identificados por nomes de hospedeiro como "if-bundle-22-2.qcore1.pye-paris.as6453.net", que podem codificar informações de localização e de topologia. Em muitos protocolos de roteamento, os roteadores são identificados por endereços IP, e os nomes de hospedeiro são resolvidos externamente pelo Sistema de Nomes de Domínio (DNS). Como o IS-IS opera diretamente sobre a camada de enlace de dados, e não sobre o IP, os mapeamentos de nomes de hospedeiro podem ser distribuídos dentro do próprio protocolo. As PDUs de estado de enlace do IS-IS podem incluir o TLV 137 (Type-Length-Value 137), que anuncia um nome de hospedeiro associado a um ID de sistema IS-IS derivado do NET do roteador.

Áreas e níveis

Em redes muito grandes, seria trabalhoso demais que todos os roteadores conhecessem todos os detalhes da rede. Por isso, ela pode ser dividida em partes menores, chamadas áreas, de forma parecida com a divisão de um país em estados e municípios. Assim como o OSPF, o IS-IS emprega o conceito de áreas para dividir a rede. Isso reduz a carga total sobre os roteadores, pois eles só precisam manter informações completas de estado de enlace da sua própria área. No IS-IS, os ISs operam no nível 1, no nível 2 ou no nível 1/nível 2. Os roteadores de nível 1 são internos a uma área e mantêm uma base de dados de estado de enlace (LSDB) apenas dessa área. Os roteadores de nível 2 formam o backbone de uma rede IS-IS e roteiam o tráfego entre áreas, mantendo uma LSDB de nível 2 separada para o roteamento interáreas. Os roteadores de nível 2 devem ser contíguos, ou seja, a sua rede deve ser totalmente roteável internamente, sem atravessar outras áreas. Os roteadores de nível 1/nível 2 ficam na fronteira entre os roteadores de nível 1 e de nível 2; participam do roteamento intra e interáreas e mantêm LSDBs distintas de nível 1 e de nível 2.

Quando um roteador de nível 1 precisa enviar tráfego a um destino fora da sua área, ele o direciona a um roteador de nível 1/nível 2. Os roteadores de nível 1/nível 2 anunciam sua condição de roteadores de fronteira ativando o bit de conexão (ATT, do inglês Attached Bit) em sua LSP de nível 1. Os roteadores que recebem essa LSP adicionam uma rota padrão apontando para a origem da LSP. Rotas externas podem ser redistribuídas para áreas de nível 1 por meio de roteadores de nível 1/nível 2. Por padrão, as rotas externas não são anunciadas no backbone de nível 2; a redistribuição para o nível 2 deve ser configurada nos roteadores de nível 1/nível 2.

Bits de atributo nas LSPs

Cada LSP traz no seu cabeçalho alguns sinalizadores — bits que podem estar ligados (1) ou desligados (0) — que informam rapidamente certas características do roteador que a gerou. As LSPs do IS-IS contêm informações sobre a própria LSP no bloco de atributos do cabeçalho de oito bits da LSP:

Métricas

No IS-IS, cada enlace recebe um número chamado métrica, ou custo, definido pelo administrador da rede; quanto menor a soma dos custos dos enlaces de um caminho, mais vantajoso ele é considerado. Quando o IS-IS foi introduzido, os formatos padrão de tipo-comprimento-valor (TLV) para alcançabilidade de IS (TLV 2) e alcançabilidade de IP (TLVs 128 e 130) utilizavam um campo de métrica de enlace de seis bits, com valor máximo de 63, e um campo de métrica de caminho de 10 bits, com valor máximo de 1023. Com o aumento da escala das redes e da velocidade dos enlaces, essas limitações tornaram-se restritivas para topologias maiores. Para contorná-las, foram introduzidos novos TLVs: o TLV 22, para alcançabilidade estendida de IS, e o TLV 135, para alcançabilidade estendida de IP. Essas extensões ampliam a métrica de enlace suportada para 24 bits (valor máximo de 16.777.215) e a métrica de caminho para 32 bits (valor máximo de 4.294.967.295). As métricas sem os TLVs 22 e 135 são chamadas de "estreitas" (narrow), e as que os incluem, de "largas" (wide). As métricas largas e estreitas podem ser configuradas de forma independente em cada nível.

Formação de adjacências

Uma adjacência é a relação de “vizinhança” que dois roteadores diretamente ligados estabelecem antes de começar a trocar informações de roteamento. Em comparação com o OSPF, as regras de formação de adjacências do IS-IS são mais simples e dependem principalmente do nível do roteador. Os roteadores de nível 1 formam adjacências apenas com outros roteadores de nível 1 ou de nível 1/nível 2 da mesma área. Os roteadores de nível 2 formam adjacências com outros roteadores de nível 2 ou de nível 1/nível 2, independentemente da área. Os roteadores de nível 1/nível 2 podem formar adjacências de nível 1 com roteadores de nível 1 ou de nível 1/nível 2 da mesma área e adjacências de nível 2 com roteadores de nível 2 ou de nível 1/nível 2, independentemente da área. As adjacências de nível 1 exigem endereços de área coincidentes, enquanto as de nível 2 são formadas independentemente da área a que pertencem os roteadores.

Segmentos de difusão e sistema intermediário designado

Quando muitos roteadores estão ligados a uma mesma rede local, fazer com que todos conversem com todos geraria tráfego e processamento desnecessários. Assim como no OSPF, todos os roteadores de um domínio de broadcast precisariam formar adjacências entre si e trocar LSPs, o que resultaria em cerca de n2 adjacências no domínio (sendo n o número de roteadores), um número que cresce muito rapidamente à medida que novos roteadores são acrescentados. Para contornar esse problema, um sistema intermediário designado (DIS) é eleito em cada segmento de LAN. O roteador com a maior prioridade e o maior ID de sistema é eleito DIS; se for conectado outro roteador com prioridade mais alta (ou com ID de sistema mais alto, em caso de prioridades iguais), ele será eleito o novo DIS. Em vez de cada roteador formar uma adjacência com todos os demais roteadores do domínio de broadcast, cada roteador forma uma adjacência com o DIS, que passa a ser responsável por retransmitir as LSPs aos roteadores subordinados, em uma topologia em estrela (hub-and-spoke).

Um roteador eleito DIS atua como um pseudonó, que utiliza os recursos (incluindo o ID de sistema) de um roteador. As LSPs originadas por um DIS sempre têm o campo de ID de pseudonó diferente de zero. O DIS envia CSNPs periódicas no segmento de LAN e responde às PSNPs de outros roteadores. Se o DIS deixar de se comunicar, um novo DIS será eleito no segmento.

Autenticação

A autenticação serve para garantir que as mensagens de roteamento vêm de roteadores legítimos, impedindo que um equipamento não autorizado introduza informações falsas na rede. O IS-IS oferece suporte à autenticação de unidades de dados de protocolo (PDUs), incluindo IIH (Hello do IS-IS), PDUs de estado de enlace (LSPs) e PDUs de número de sequência (SNPs). A autenticação pode ser configurada por interface e por nível (nível 1 ou nível 2). Os mecanismos de autenticação incluem a autenticação simples por senha e a autenticação criptográfica com HMAC MD5 e variantes do SHA.

Suporte a IPv6 e multitopologia

O IS-IS foi criado antes do IPv6, a versão mais recente do protocolo de endereçamento da Internet, mas foi ampliado para transportar também informações sobre esse tipo de endereço. Ao contrário do OSPF, que opera na camada 3, o IS-IS encapsula as suas PDUs em quadros da camada 2 e não depende de protocolos da camada 3, como o IPv4 ou o IPv6. Para dar suporte às informações de roteamento IPv6, foram acrescentados o TLV 232, para endereços de interface IPv6, e o TLV 236, para alcançabilidade IPv6. Para indicar os protocolos de camada 3 suportados (também conhecidos como NLPID, do inglês Network Layer Protocol ID), utiliza-se o TLV 129. O código do IPv4 nesse campo é 0xCC, e o do IPv6, 0x8E. As topologias IPv4 e IPv6 podem não coincidir por erros de configuração ou pela falta de suporte ao IPv6 em alguns roteadores da rede. Para essa situação, foi acrescentado ao IS-IS o suporte a multitopologia. O TLV 229 foi criado para indicar o suporte a multitopologias, como unicast IPv4 e IPv6. Com a multitopologia ativada, o IS-IS calcula árvores SPF separadas para IPv4 e IPv6. Isso consome o dobro de recursos, mas evita buracos negros de tráfego. Quando a multitopologia está ativada, o IS-IS utiliza o TLV 222 para alcançabilidade de IS, o TLV 235 para alcançabilidade de IP e o TLV 237 para alcançabilidade IPv6.

Seleção de caminhos

Depois de montar o mapa da rede, cada roteador precisa decidir por qual caminho enviar os dados para cada destino. O IS-IS calcula os caminhos mais curtos executando o algoritmo de Dijkstra de forma independente em cada base de dados de estado de enlace (LSDB): uma vez para o nível 1 e outra para o nível 2. Cada roteador constrói a sua própria árvore de caminhos mais curtos a partir da sua posição na rede. O custo de um caminho é a soma das métricas de cada enlace ao longo dele, e prevalece o de menor custo. Quando há vários caminhos de mesmo custo para um mesmo destino, o IS-IS pode instalar todos eles na tabela de roteamento para fins de balanceamento de carga. Esse recurso é conhecido como roteamento por múltiplos caminhos de mesmo custo (ECMP, do inglês equal-cost multipath). Quando um roteador aprende o mesmo prefixo de destino a partir de várias fontes (por exemplo, dos níveis 1 e 2, ou de rotas internas e externas), o IS-IS aplica uma ordem de preferência fixa. Com métricas estreitas (TLVs 128 e 130), a ordem de preferência é a seguinte:

PreferênciaTipos de rota
1L1 intra-área (métrica interna); L1 externa (métrica interna)
2L2 intra-área (métrica interna); L2 externa (métrica interna); L1→L2 interáreas (métrica interna); L1→L2 interáreas externa (métrica interna)
3L2→L1 interáreas (métrica interna); L2→L1 interáreas externa (métrica interna)
4L1 externa (métrica externa)
5L2 externa (métrica externa); L1→L2 interáreas externa (métrica externa)
6L2→L1 interáreas externa (métrica externa)

As métricas largas (TLV 135 para IPv4 e TLV 236 para IPv6) não comportam a distinção entre métricas internas e externas. O RFC 7775 define uma ordem de preferência específica para esses TLVs:

PreferênciaTipos de rota
1L1 intra-área; L1 externa
2L2 intra-área; L2 externa; L1→L2 interáreas; L2→L2 interáreas
3L2→L1 interáreas; L1→L1 interáreas

Suporte a BFD

Para que a rede se recupere rapidamente de uma falha, como um cabo rompido ou um equipamento desligado, os roteadores precisam perceber o quanto antes que um vizinho deixou de responder. O IS-IS utiliza pacotes Hello (IIH) para compartilhar informações sobre os roteadores e estabelecer adjacências. Os pacotes Hello também ajudam a detectar falhas entre roteadores vizinhos. A detecção de falhas pode ser acelerada com a redução dos intervalos de transmissão dos pacotes Hello, mas isso aumenta a carga da CPU. Como alternativa, pode-se utilizar a Detecção de Encaminhamento Bidirecional (BFD, do inglês Bidirectional Forwarding Detection), um protocolo de detecção de falhas de baixa sobrecarga que opera independentemente do protocolo de roteamento e pode detectar falhas em menos de um segundo com impacto mínimo sobre a CPU.

Outros usos

Além do roteamento de pacotes IP, o IS-IS também é usado em outras tecnologias de rede. O IS-IS é a base do plano de controle do Shortest Path Bridging (SPB). O SPB permite o roteamento por múltiplos caminhos de mesmo custo entre comutadores Ethernet em uma topologia em malha; os quadros Ethernet são encaminhados por vários caminhos específicos de cada serviço, todos igualmente curtos e com balanceamento de carga. Para isso, o SPB estende o IS-IS com novos TLVs.

Protocolos relacionados