Seção: Tutoriais Infraestrutura
|
|
||
Este item apresenta os protocolos da família OSPF, levando à sua aplicação com TE no MPLS-TE.
Conforme menção anterior, esses protocolos são do tipo IGP.
Protocolo OSPF Versão 2 (ospfv2)
O protocolo OSPFv2, definido na RFC 2328, fundamenta-se na tecnologia link state, também referida como tecnologia SPF (Shortest Path First) e destina-se ao roteamento em redes IPv4. Embora seja basicamente um protocolo de roteamento unicast, o OSPF pode suportar também roteamento multicast, porém de forma limitada.
O OSPF responde rapidamente a mudanças topológicas, envolvendo pouco tráfego de roteamento, e provê a autenticação dessas mudanças.
O roteamento no OSPF baseia-se exclusivamente nos endereços IP contidos nos cabeçalhos dos datagramas IP transmitidos, sem a ocorrência de encapsulamento desses datagramas.
O roteamento no OSPF tem como fundamento a constituição de FIBs (Forwarding Information Bases), também referidas como link–state databases, nos roteadores da rede IP. Essas bases de dados consistem em um conjunto de entradas que representa a constituição de todo um domínio de roteamento.
Como primeira etapa, os roteadores do domínio encontram os seus vizinhos, utilizando para isso hello packets.
A seguir, esses roteadores repassam essas informações ao longo do domínio, por inundação, com a adição dos custos relativos a cada um dos links do AS e das identificações desses links. São também disponibilizadas, para os roteadores do domínio, listas de prefixos de endereços IP alcançáveis por cada um desses roteadores.
A inundação do domínio ocorre pela distribuição de pacotes denominados LSAs (Link State Advertisements) entre todos os roteadores do domínio. Ao final, as FIBs de todos os roteadores do domínio passam a conter a constituição de todo o domínio.
A RFC 2328 especifica cinco tipos de LSA, tendo cada um desses tipos o seu próprio payload.
Passa-se então à fase de cálculo de um conjunto de árvores de rotas de menores custos acumulados (shortest paths) centradas em cada um dos roteadores e alcançando todos os demais roteadores do domínio. Cada um desses roteadores dispõe também das listas de prefixos de endereços IP alcançáveis por cada um dos roteadores.
Para melhor administração do processo de roteamento na rede IP e para reduzir o tráfego de roteamento na rede e a ocupação de espaços de memória, o OSPF divide a rede em domínios hierarquizados, dentro dos quais individualiza-se o roteamento.
No primeiro nível dessa hierarquia encontram-se os ASs (Autonomous Systems).
O cálculo de rotas em um domínio de roteamento ocorre normalmente pela aplicação do algoritmo de Dijskstra, também referido como algoritmo SPF (Shortest Path First).
Se existirem rotas com custos iguais, o roteador distribui o tráfego entre elas, de acordo com um algoritmo para isso definido, como o ECMP (Equal-Cost Multi-Path), por exemplo.
A partir do prefixo de endereço IP de destino de um datagrama IP, um roteador é capaz de identificar a árvore SPF e, em consequência, de obter também a identificação do próximo roteador (next hop) a receber o datagrama e do link a utilizar com esse propósito. Essa relação é disponibilizada em tabelas de roteamento contidas nos roteadores.
Para a plena operacionalização do OSPF, são utilizados pacotes (mensagens) OSPF de cinco diferentes tipos. Todos esses pacotes possuem um cabeçalho comum, onde podem ser identificados os diferentes tipos de pacotes.
Dentre os tipos de pacotes, destaca-se a importância do Link State Update Packet, responsável pela difusão das LSAs nos ASs. Um desses pacotes pode transportar diferentes LSAs.
Os ASs são interconectados por meio de roteadores especiais, denominados AS Boundary Routers (ASBRs), que além de delimitar os ASs, são os responsáveis pelo intercâmbio de informações de roteamento entre ASs (obtidas por meio de um protocolo de roteamento do tipo EGP).
A própria divisão de uma rede IP global em ASs já conduz o melhor uso dos recursos da rede IP para roteamento, mas o OSPF caminha adiante nesse propósito, pela eventual subdivisão dos ASs em Áreas OSPF.
As Áreas OSPF são interconectadas por meio de roteadores especiais, referidos como ABRs (Area Border Routers).
Um AS pode ser constituído como um todo ou pode ser dividido em Áreas OSPF.
No primeiro caso, o domínio de roteamento é o próprio AS. Quando o AS é dividido em Áreas OSPF, cada uma das áreas constitui um domínio de roteamento.
Protocolo OSPF Versão 3 (ospfv3)
A RFC 5340 descreve as modificações do protocolo OSPFv2 para suportar o IPv6, do que resultou o protocolo OSPFv3.
Os mecanismos fundamentais do OSPF são mantidos, tais como inundação, eleição de roteadores designados, suporte a áreas, algoritmo SPF, dentre outros.
No entanto, algumas mudanças foram necessárias, seja devido a diferenças semânticas entre o IPv4 e o IPv6, seja para apenas ajustar o aumento do tamanho dos endereços no IPv6. Essas mudanças demandam alguns aprimoramentos do OSPFv2 para o OSPFv3, e constituem o objetivo da RFC 5340.
Dentre tais aprimoramentos, pode ser citada a criação de novas LSAs para o transporte de endereços e prefixos do IPv6. O OSPF passa a ocorrer na base per-link e não mais na base per-IP-subnet, o que afeta a recepção de pacotes do protocolo OSPF e o conteúdo de pacotes Hello e de network-LSAs.
Outro aprimoramento introduzido na RFC 5340 são alterações no formato do cabeçalho das LSAS, embora o seu tamanho permaneça o mesmo (20 octetos). Tais alterações projetam-se no OSPF-TE Versão 3.
Uma dessas alterações diz respeito à generalização e à explicitação do alcance da inundação por LSAs. Os limites desse alcance passam agora a ser explicitamente separados para âmbito do link local, âmbito de uma única área OSPF e âmbito de único AS.
Essa separação de âmbitos para a inundação de LSAs no OSPFv3 veio a ser utilizada nas extensões do OSPF para TE, tanto no OSPF-TE Versão 2 quanto no OSPF-TE Versão 3, como veremos adiante neste item.
Protocolo OSPF-TE Versão 2 (ospf-te)
A RFC 3630 define extensões do protocolo OSPF versão 2 (OSPFv2) para TE. Essas extensões são referidas como protocolo OSPFv2 TE ou protocolo OSPF-TE Versão 2.
O OSPF-TE Versão 2 destina-se ao roteamento IGP no plano de controle do MPLS-TE com suporte em redes IPv4.
Essas extensões, partindo da descrição da topologia e dos parâmetros de QoS da rede que suporta TE (incluindo largura de banda e restrições administrativas), proveem os mecanismos de distribuição dessas informações dentro de uma área de roteamento OSPF (área OSPF).
A RFC 3630 não aborda a aplicação dos mecanismos nela descritos para TE entre áreas OSPF, ou seja, a aplicação de protocolos EGP, deixando essa tarefa para futuros documentos de padronização.
Outra restrição da RFC 3630 diz respeito à sua aplicabilidade apenas a links ponto a ponto, não contemplando o seu alcance a links multi-acesso, exceto para o caso de existência de apenas dois terminais no link multi-acesso.
O OSPF-TE Versão 2, objeto da RFC 3630, descreve e define uma forma de distribuição de atributos de linkestendidos (extended link attributes) no plano de controle do MPLS-TE com suporte em redes IPv4, distribuição essa que se baseia em constraint-based routing e em source routing. Ao contrário do OSPF convencional, onde cada roteador realiza o roteamento de pacotes com base em tabelas de roteamento local, o OSPF-TE centraliza as informações em bases de dados estendidas localizadas nos comutadores de borda da rede (PEs, no caso de rede MPLS-TE), bases de dados essas que são denominadas TE databases (TEDs)
Quando um desses PEs se torna o head end LSR de um LSP, as informações, que se encontram na TED desse LSR, serão comparadas aos atributos de TE LSP do TE LSP a ser constituído, configurados ou contidos nesse head end LSR.
A partir dessa comparação, realizada por meio de um algoritmo de cálculo de rotas como o CSPF (Constrained Shortest Path First), resulta a definição da rota a ser utilizada pelo LSP em constituição, desencadeando-se então o processo de sinalização pelo head end LSR. A rota definida irá constar explicitamente das mensagens do processo de sinalização.
lsas Opacas
No OSPF Versão 2, que é um protocolo de roteamento que opera de forma distribuída, a transmissão das informações de roteamento ocorre por meio de LSAs, que são processadas por todos os roteadores da rede.
No OSPF-TE, por se tratar de um protocolo que opera por source routing, somente os LSRs de borda, ou seja, os PEs, necessitam processar as informações contidas nas LSAs, cabendo aos LSRs no interior da rede, ou seja, aos Ps, apenas receber, gerar e transmitir informações de roteamento.
Por essa razão, foi definida, na RFC 5250 (OSPF Opaque LSA Option), uma nova modalidade de LSA, referida como LSA opaca, assim denominada por não requerer processamento nos LSRs no interior da rede.
Foram definidos três tipos de LSA opaca:
Esses tipos de LSA opaca diferem quanto à abrangência de suas inundações. A LSA opaca tipo 8 abrange apenas um link, enquanto a LSA opaca tipo 10 abrange uma área OSPF. A LSA opaca tipo 11, por sua vez, abrange todo um sistema autônomo OSPF.
A RFC 3630 especifica apenas a utilização da LSA opaca tipo 10, ou seja, restringe a sua aplicabilidade ao interior de uma área OSPF.
Dentro do tipo 10 de LSAs opacas foi definida uma LSA específica para TE, denominada Traffic Engineering (TE LSA), identificada pelo código 1.
Formatos de TE lsas
A Figura 1 apresenta o formato do cabeçalho de TE LSAs
Figura 1: Formato do cabeçalho de TE LSAs
O payload das TE LSAs, que se encontra imediatamente abaixo do cabeçalho nessa figura, é constituído por um dentre dois tipos de top-level TLV, que pode ou não ser seguido por uma sucessão de sub-TLVs. Uma TE LSA contém apenas um dos tipos de top-level TLV de cada vez.
Os top-level TLVs, assim como os sub-TLVs eventualmente utilizados, adotam o formato padrão dos TLVs. Esse formato consiste em um campo tipo (2 octetos), um campo comprimento (2 octetos) e um campo valor (número variável de octetos). O campo comprimento indica o número de octetos contidos no campo valor.
A Figura 2 mostra o formato padrão dos TLVs.
Figura 2: Formato padrão dos TLVs
Os dois tipos de top-level TLV definidos são os seguintes:
Campos do Cabeçalho de TE lsas
Abordaremos, a seguir, os campos do cabeçalho de TE LSAs.
Campo LS Age
O campo LS Age, definido na RFC 2328, representa a idade da LSA medida em segundos, sendo setado para 0 quando a LSA é originada. O seu propósito é assegurar a sincronização das bases de dados dos roteadores ou LSRs.
Campo Options
O campo Options habilita os roteadores ou LSRs a comunicar, por intermédio de TE LSAs, o seu nível de capacidade para suportar (ou não) determinadas funções de roteamento.
Foi criada uma nova opção de função para as LSAs opacas, de nominada O-bit (2º bit à esquerda no campo Options), com o objetivo de indicar a capacidade de um roteador (ou LSR) de enviar LSAs opacas.
Campo LSA Type
Esse campo recebe o valor 10, para indicar LSA opaca tipo 10.
Campo LSA ID
Esse campo, com 32 bits, sem qualquer significado topológico, é subdividido em um campo type (8 bits) e em um campo instance (24 bits). O campo type recebe o valor 1 para indicar se tratar de uma TE LSA.
O campo instance compõe-se de valores arbitrários, utilizados para identificar as múltiplas instâncias de TE LSAs.
Router address (top level) tlv
O router address TLV, que é um top-level TLV, especifica um endereço IP estável do roteador (ou LSR) que envia a LSA.
Esse endereço é tipicamente configurado como um loopback address, o que significa que ele é sempre alcançável enquanto houver conectividade para o correspondente roteador, em qualquer uma de suas interfaces.
O router address TLV é do tipo 1 e ocupa os 32 bits correspondentes a endereços IPV4, não utilizando sub-TLVs.
Link (top level) tlv
O link TLV, que é um top-level TLV, descreve os atributos de link de cada um dos links da rede. Ele é constituído por um conjunto de sub-TLVs após o cabeçalho do próprio TLV, sendo que cada sub-TLV corresponde a um atributo de link de cada um dos links da rede. Os sub-TLVs podem ser posicionados em qualquer ordem, após o cabeçalho do link TLV.
O link TLV é do tipo 2 e o seu comprimento é variável. A relação inicial dos atributos de link(sub-TLVs) para o link TLV definidos na RFC 3630, acrescida do sub-TLV SRLG (Shared Risk Link Group) definido na RFC 4203, encontra-se na Figura 3.
Figura 3: Relação de sub-TLVs do link TLV
A RFC 3630 definiu os nove primeiros sub-TLVs acima relacionados, mas deixou aberta a possibilidade de definição de novos atributos de link (sub-TLVs).
Os sub-TLVs Link Type e Link ID são obrigatórios, isto é, devem aparecer em todas as LSAs originárias de um roteador (LSR), enquanto as demais são opcionais. Os futuros sub-TLVs poderão ser ou não obrigatórios.
Alguns atributos de link são configuráveis, a exemplo do atributo Maximum Reservable Bandwidth, enquanto outros não o são, a exemplo do atributo Unreserved Bandwidth.
Descrição dos Atributos de Link do Link TLV
Serão apresentados, a seguir, os sub-TLVs do Link TLV relacionados na Figura 3.
Link Type Sub-TLV
Esse sub-TLV, que é do tipo 1 e possui um octeto, define o tipo de link utilizado, dentre as seguintes opções:
Link ID Sub-TLV
Esse sub-TLV, que é do tipo 2 e possui 4 octetos, identifica o outro extremo do link. Para links ponto a ponto, esse sub-TLV indica o router ID do roteador vizinho no extremo do link.
Para links multi-acesso, esse sub-TLV representa o endereço da interface do roteador designado.
Local Interface IP Address Sub-TLV
Esse sub-TLV especifica o(s) endereço(s) IP da interface correspondente a esse link. Se existem múltiplos endereços locais no link, eles são todos relacionados nesse sub-TLV.
O sub-TLV Local Interface IP Address é do tipo 3 e o seu tamanho é igual a 4N octetos, onde N é o número de endereços locais.
Remote Interface IP Address Sub-TLV
Esse sub-TLV especifica o(s) endereço(s) IP da interface do roteador (ou LSR) vizinho correspondente ao link. Esse sub-TLV, associado ao sub-TLV Local Interface IP Address, é utilizado para discernir múltiplos links paralelos entre dois roteadores (ou LSRs).
O sub-TLV Remote Interface IP Address é do tipo 4 e o seu tamanho é igual a 4N, onde N é o número de endereços no roteador (ou LSR) no extremo do link.
Traffic Engineering Metric Sub-TLV
Esse sub-TLV especifica a métrica link-state utilizada no link para fins de TE. Essa métrica é tipicamente configurada pela supervisão da rede.
Admite-se a utilização da métrica OSPF convencional e de uma métrica TE no MPLS TE para diferentes classes de tráfego.
Um TE LSP para uma aplicação de voz, por exemplo, pode utilizar a métrica OSPF convencional relativa a retardos e a jitters de quadros na rede, enquanto um TE LSP para transferência de grandes arquivos pode utilizar uma métrica TE relativa a larguras de banda disponíveis.
O sub-TLV Traffic Engineering Metric é do tipo 5 e o seu tamanho é igual a 4 octetos.
Maximum Bandwidth Sub-TLV
Esse sub-TLV, que é do tipo 6 e possui 4 octetos, especifica a largura de banda máxima que pode ser utilizada no sentido do link. Na realidade, esse sub-TLV representa a velocidade no sentido do link, medida em bytes por segundo.
É possível que parte dessa largura de banda não seja usada para TE.
Maximum Reservable Bandwidth Sub-TLV
Esse sub-TLV especifica a largura de banda máxima que pode ser reservada no link, no sentido do link.
O seu valor, que é configurado pela supervisão da rede, pode ser superior ao da maximum bandwidth (o que se denomina oversubscription), devido à natureza estatística do tráfego na rede. O valor default corresponde ao da maximum bandwidth.
O sub-TLV Maximum Reservable Bandwidth é do tipo7 e o seu tamanho é igual a 4 octetos.
A RFC 2702 define esse sub-TLV em termos de proporção relativamente ao sub-TLV Maximum Bandwidth, sendo essa proporção denominada Maximum Allocation Multiplier (MAM).
Unreserved Bandwidth Sub-TLV
Esse sub-TLV especifica a quantidade de largura de banda ainda não reservada, separadamente para cada um dos oito níveis de prioridade de setup utilizados. A ordem dos valores de largura de banda não-reservada no sub-TLV começa com o nível zero e termina com o valor 7.
O uso deste sub-TLV possibilita a segmentação e o controle da preempção da largura de banda disponível, por nível de prioridade de setup.
O sub-TLV Unreserved Bandwidth é do tipo 8 e o seu tamanho é igual a 4 octetos.
Administrative Group Sub-TLV
Esse sub-TLV transporta um conjunto de 32 bits configurados pela supervisão da rede. O valor de cada um desses bits corresponde a um grupo administrativo desejado no link considerado.
A supervisão da rede define uma relação de no máximo 32 parâmetros expressos de forma binária como, dentre outros, os seguintes exemplos:
Nessa relação, o bit menos significativo é referido como grupo zero, e o mais significativo como grupo 31.
Essa relação é configurada nos LSRs que participam do MPLS TE. Para cada link, esses LSRs utilizam um conjunto de valores para cada um dos 32 bits, configurados pela supervisão de rede. Esses valores são denominados grupos administrativos, e definem os correspondentes atributos para cada um desses links.
Conforme descrição adiante neste tutorial, esses conjuntos de atributos são confrontados com outros conjuntos, também de 32 bitse com a mesma semântica, configurados nos PEs para os TE LSPs a serem constituídos. Dessa comparação resulta a definição dos caminhos que apropriadamente atendam a esses TE LSPs.
Um grupo administrativo é também denominado uma classe de recursos ou uma “cor”, de acordo com a RFC 2702.
O sub-TLV Administrative Group é do tipo 9 e o seu tamanho é igual a 4 octetos.
SRLG Sub-TLV
O sub-TLV SRLG, definido na RFC 4203 (OSPF Extensions in Support of Generalized Multiprotocol Label Switching), objetiva identificar o meio de transmissão utilizado por cada um dos links que participam da rede MPLS-TE. Tal meio de transmissão pode ser, por exemplo, uma fibra óptica, um cabo coaxial ou um link de satélite.
Quando se constitui um TE LSP para servir como backup de outro TE LSP, deve ser evitado o uso de um mesmo SRLG para esses dois TE LSPs.
De posse desse atributo, o head end LSR pode evitar esse fato indesejável quando da definição dos EROs para os TE LSPs.
Procedimentos no OSPF-TE Versão 2
Uma vez configurados os atributos de link, iniciam-se os procedimentos para a operacionalização do OSPF-TE Versão 2. As TE LSAs são enviadas pelas interfaces dos LSRs para todos os seus vizinhos, ou seja, por inundação.
Cada LSR, além de enviar as suas LSAs, repassa adiante as LSAs recebidas de seus vizinhos. Vai resultar, então, no recebimento, pelos PEs, de todas as LSAs emitidas na rede MPLS TE.
As informações conduzidas nos sub-TLVs de TE LSAs são armazenadas em bases de dados, referidas como TEDs (TE databases), contidas em cada um dos PEs da área OSPF onde se processa o MPLS-TE. Essas informações alimentam o processo de cálculo de rotas.
Deve haver, periodicamente, novas etapas de inundação de LSAs na rede. O valor default desse período no OSPF é de 20 minutos, mas o período pode ser alterado pela supervisão da rede. No caso do OSPF-TE, esse período deve ser reduzido para um valor default igual a 3 minutos.
Além desse modo periódico de envio, pode também ocorrer a transmissão de TE LSAs quando houver mudanças de estado na rede. Isso não significa, necessariamente, que qualquer mudança deva ser comunicada imediatamente.
A rede pode selecionar mudanças que devem ocasionar o envio de TE LSAs de imediato, e outras que provocam esse envio após um curto intervalo de tempo.
Protocolo OSPF-TE Versão 3
O protocolo OSPE-TE Versão 3 foi especificado na RFC 5329. Esse protocolo contém extensões ao protocolo OSPFv3 para o suporte a Engenharia de Tráfego intra-área. Ao mesmo tempo, o OSPF-TE Versão 3 contém também extensões ao protocolo OSPF-TE Versão 2 para redes IPv6.
A RFC 5329 define uma nova LSA, referida como Intra-Area- TE-LSA, em substituição à TE LSA do OSPF-TE Versão 2. A Intra-Area-TE-LSA corresponde a um novo tipo de LS identificado pelo código de função LSA igual a 10.
A TE LSA representa um tipo de LSA opaca, o que não é o caso da Intra-Area-TE-LSA.
Como no caso da TE LSA, existem dois tipos de top-level TLV nas Intra-Area-TE-LSAs, sendo utilizado apenas um deles em um dado momento em uma LSA.
Um desses tipos de top-level TLV é o Link TLV, e o outro é o Router IPv6 Address TLV. As funções básicas desses TLVs correspondem àquelas dos TLVs do OSPF-TE Versão 2.
O Link TLV do OSPF-TE Versão 3 utiliza todos os sub-TLVs do Link TLV do OSPF-TE Versão 2, à exceção do Sub-TLV Link ID, cujas funções passam a ser desempenhadas por um dos novos sub-TLVs definidos para o OSPF-TE Versão 3.
Os novos sub-TLVs para o Link TLV criados na RFC 5329 são os seguintes:
O Neighbor ID Sub-TLV passa a desempenhar as funções do Link ID Sub-TLV do OSPF-TE Versão 2.
Extensões de Métricas de TE para os Protocolos OSPF-TE
A RFC 7471 descreve extensões de métricas de TE aplicáveis tanto ao protocolo OSPF-TE Versão 2 (RFC 3630) quanto ao protocolo OSPF-TE Versão 3 (RFC 5329), com o propósito de habilitar a rede para transmitir informações de roteamento concernentes ao desempenho de rede de modo escalável.
Algumas aplicações vêm se tornando cada vez mais críticas com relação ao desempenho das redes (redes MPLS, em particular), demanda essa que foi não atendida pela RFC 3639 e RFC 5329, o que gerou a necessidade da emissão da RFC 7471.
As informações transmitidas com base na RFC 7471 são consideradas no cálculo de rotas no MPLS-TE, juntamente com as informações de roteamento TE já normalmente transmitidas.
A RFC 7471 não define mecanismos para a medição das métricas transmitidas, nem tampouco para a sua utilização após a transmissão.
Dependendo do algoritmo de cálculo de rotas utilizado, as extensões de métricas de desempenho de rede para OSPF-TE podem substituir as métricas de custo (delay de propagação no link em substituição ao custo do link, por exemplo), ou podem ser sutilizadas de forma associada com as métricas de custo.
Efetivamente, a RFC 7471 define um conjunto de sub-TLVs a serem utilizados no Link TLV dos protocolos OSPF-TE para a distribuição de informações de desempenho de rede.
Essa distribuição ocorre pela inclusão desses novos sub-TLVs no payload do Link TLV das TE LSAs no caso do OSPF-TE Versão 2 e no payload do Link TLV das Intra-Area-TE-LSAs no caso do OSPF-TE Versão 3.
A Figura 4 apresenta os sub-TLVs adicionais definidos na RFC 7471 e RFC 7810 para o link TLV.
Figura 4: Sub-TLVs das RFC 7471 e RFC 7810 para o Link TLV
A RFC 7810, referente a extensões do IS-IS para TE será vista no subitem 5.4 do item subsequente.
|