SR - Arquitetura:
- Plano de serviços: a ideia é manter toda a diversidade de serviços.
- Plano de controle (software): OSPF/IS-IS/BGP são usados para anunciar informações do segmento.
- Plano de dados (hardware): reusa MPLS e IPv6.
Plano de Controle X Plano de dados:
- Plano de controle é responsável pela inteligência da rede, ou seja, ele define as próximas rotas do fluxo de pacotes na rede, podendo rodar, por exemplo, um protocolo de roteamento ou algo parecido.
- Plano de dados é responsável por encaminhar pacotes na rede, ou seja, ele simplesmente encaminha os pacotes para seu destino que é determinado pelo plano de controle.
Plano de dados
Redes MPLS com SR: utiliza o plano de encaminhamento de dados do MPLS.
Características | Rede MPLS com SR | Rede MPLS sem SR |
---|---|---|
Transporte MPLS básico | IGP | IGP + LDP |
Túneis TE adicionais para suportar FRR | Não precisa | Precisa |
Sincronismo entre o LDP/IGP | Não se aplica | Difícil de gerenciar |
Estados apenas no head-end do TE | Sim | Não. No pior caso: complexidade O(N^2) nos pontos intermediários |
Otimização de caminho de backup | Sim | Não. |
Interoperabilidade com a rede MPLS tradicional | Sim | Não se aplica |
Projetado para SDN | Sim | Não |
Comutação FRR em 50ms | IGP | IGP + LDP |
ECMP para criação de túneis TE | Sim | Não |
O SR possui as seguintes funcionalidades:
- PHP (penultimate Hop Popping): A função realiza um processo no qual o rótulo mais externo do pacote é removido por um LSR,
antes que o pacote seja passado para um LER adjacente. Essa função é importante em ambientes VPN MPLS de camada 3. Uma das vantagens é reduzir a
carga no LER. Caso essa função estivesse desabilitada o LER teria que realizar pelo menos duas pesquisas de rótulo:
1 - O rótulo mais externo, identificando que o pacote estava destinado a ter esse rótulo removido nesse roteador; 2 - O rótulo interno, para identificar qual instância de roteamento e encaminhamento virtual (VRF) a ser usada na pesquisa de roteamento IP subsequente. - Rótulos explicit-null: Um valor de 0 representa o rótulo Explicit NULL Label do IPv4. Essa etiqueta indica que a pilha de rótulos deve ser removida, e o encaminhamento de pacote deve ser baseado no cabeçalho do IPv4. Isso ajuda a manter os bits Exp seguros até o roteador de saída. É usado em QoS baseado em MPLS.
Exemplo - SR-Plano de dados MPLS: Na imagem podemos ver que o roteador 3 é o penúltimo salto (PHP), então uma operação de remoção do rótulo mais externo é efetuada e o pacote chega ao roteador 4, de destino, sem o rótulo baseado no endereço IP. E a opção explicit-null é configurável para um prefixo SID. No exemplo, a LIB do roteador 3, no rótulo de saída (Label Out) seria explicit null, sendo útil para repassar os EXP bits do LSR 3 para o LER 4.
Redes IPv6 com SR:
Benefícios do SRv6: O SRv6 oferece os seguintes benefícios aos usuários
- Simplifica as configurações de rede para facilitar a implementação de VPNs;
- O SRv6 não utiliza técnicas MPLS e é totalmente compatível com as redes IPv6 existentes. Os nós precisam apenas suportar o encaminhamento IPv6 em vez do encaminhamento MPLS. Os nós de trânsito poder ser incapazes de suportar o SRv6 e encaminhar pacotes IPv6 que transportam o SRH pelas rotas;
- O SRv6, em combinação com o algoritmo RLFA, suporta qualquer topologia em teoria e supera os inconvenientes da proteção convencional em túneis;
- Facilita a otimização do tráfego nos caminhos de encaminhamento IPv6;
- Os SIDs com vários tipos de serviço são usados para planejar caminhos explícitos flexíveis na entrada para ajustar o tráfego do serviço.
Um pacote IPv6 consiste em um cabeçalho IPv6 normal, cabeçalhos extendidos (0..n), e o payload. Para implementar o Segment Routing IPv6 (SRv6) baseado no plano de encaminhamento IPv6, é necessário uma extensão do cabeçalho IPv6, chamada de Segment Routing Header (SRH), é adicionada. Um SRH especifica um caminho e armazena uma lista de informações de segmentos IPv6. O conteúdo da lista de segmentos IPv6 funciona da mesma forma que o SR MPLS. A entrada adiciona um SRH ao pacote IPv6, e cada nó de trânsito encaminha o pacote baseado nas informações de caminho carregadas no SRH.
- A lista de segmentos está codificada na extensão do cabeçalho para roteamento pela fonte;
- A lista de segmentos pode ser baseada no IGP ou BGP;
- Não necessita de atualização de toda a rede, pode operar com ou sem SR, possibitando a adoção gradual da tecnologia.
Campos - cabeçalho do IPv6 (Segment Routing Header - SRH):
- Next Header: é um seletor de 8 bits que identifica o tipo de cabeçalho imediatamente seguido pelo SRH;
- Hdr Ext Len: define o tamanho do cabeçalho de SRH em octectos, descontando os primeiro oito octetos;
- Routing Type: ainda depende de definição pelo IETF;
- Segments Left: contém o índice da lista de segmentos, indicando o próximo a ser inspecionado. É decrementado a cada inspeção;
- Last Entry: é um “offset” no SRH, não incluindo os 8 primeiros octetos. É expresso em múltiplos de 16 octetos apontando para o último elemento da lista de segmentos. Representa o primeiro segmento da lista;
- Flags: 16 bits para flags. Os bits de 4 a 15 definem o tipo de codificação dos endereços IPv6 na lista de políticas (Policy List);
- Segment List[n]: é o endereço IPv6 que representa cada segmento do caminho. A lista de segmentos é codificada de forma reversa, ou seja, o último segmento é o primeiro da lista.
Exemplo - SR-Plano de dados IPv6:
Bloco Global de Roteamento por Segmentos (SRGB)
SRGB é uma faixa de rótulos reservada para os segmentos de Nó (ou globais, pois possuem valor absoluto em um domínio de SR). O SRGB pode ser alocado com rótulos entre 16000 a 1048575. O rótulo é formado por: prefixo SID + base do SRGB. Por exemplo, um roteador com prefixo SID 83 e um SRGB igual a 16000, possui rótulo 16083.
Casos de uso | Faixa de Rótulos |
---|---|
Reservada para uso especial | 0 a 15 |
Reservada para rótulos MPLS estáticos | 16 a 1599 |
Reservada para SR (Segment Routing) | 16000 a 23999 |
Reservada para roteamento dinâmico | 24000 a 1048575 |
Plano de Controle IGP do SR: IS-IS e OSPF
- plano de controle IGP: é responsável pela configuração e distribuição dos segmentos, aplicando os segmentos em redes multi-área (OSPF) e multinível (IS-IS) e verificando os anúncios de rotas, através de extensões desses protocolos.
- IS-IS: suporta o plano de controle IPv4 e IPv6, com roteamento considerando múltiplos níveis de rede (nível 1 e 2 do IS-IS). Utiliza o prefixo do SID para representar as interfaces loopback dos roteadores em IPv4 e IPv6 e utiliza os Segmentos de Adjacência para identificar as adjacências dos nós. O anúncio do prefixo para o SID é feito pelo servidor de mapeamento (Mapping Server). O Roteamento por Segmentos com IS-IS torna possível a introdução do suporte de sub-TLVs (Type-length-value) em extensões do protocolo ISIS.
- OSPF: a versão que suporta as extensões para SR é o OSPFv2, com multi-área, no qual o prefixo de SID representa as interfaces loopback dos roteadores em IPv4 e os Segmentos de Adjacência identificam as adjacências do nó conforme o “draft” do IETF draft-ietf-ospf-segment-routing-extensions-05. As extensões do OSPF para SR adicionam anúncios de estado de enlace opaco (Opaque LSA), que permitem a transmissão arbitrária de dados que o OSPF não necessariamente utilize.
SR e LDP: Como diferentes protocolos MPLS podem coexistir na mesma rede.
- A arquitetura de redes IP/MPLS permite a coexistência de múltiplos protocolos para distribuição de rótulos como o LDP, RSVP-TE e o Roteamento por Segmentos;
- Cada nó de rede reserva uma faixa de rótulos dentro do SRGB para o plano de controle do SR e rótulos fora do SRGB para alocação dinâmica pelo plano de controle MPLS tradicional;
- As entradas dos rótulos provenientes do LDP e do SR são indexadas na FIB e LFIB dos roteadores.
Exemplo - SR e LD: Caso IP para MPLS:
Na figura abaixo temos o sentido do pacote da rede IP para a MPLS com SR + LDP coexistindo, o rótulo a ser inserido no pacote só pode ser recebido por um dos protocolos. Caso possua vários caminhos para o destino, a entrada da tabela deve definir se o caminho selecionado vai usar o protocolo SR ou LDP. Por padrão LDP é usado, para utilizar o SR é necessário ativar preferência pelo SR.
Servidor de Mapeamento (Mapping Server): Usado para prover Interoperabilidade entre nós que são habilitados ou não ao SR, ou seja, serve para prover interoperabilidade das redes IP/MPLS convencionais que usam o protocolo LDP com as redes que utilizam SR. É um mecanismo de controle, não necessita estar localizado no plano de dados, e deve ser redundante;
Modelos propostos para interoperabilidade:
- SR para LDP
- LDP para SR
- SR sobre LDP
- LDP sobre SR
Conclusão
Esperamos que este trabalho, envolvendo Redes de Computadores, tenha ajudado a ampliar o entendimento do leitor sobre Segment Routing. Apesar dos poucos exemplos e ser uma breve introdução, que esta pesquisa possa servir de ponto de partida para inspirar e propagar conhecimento.