|
Módulo
4:
Protocolos de Roteamento EGP
Mensagens do protocolo : Mensagem tipo UPDATE
Esta mensagem pode ser considerada a mais importante, já que é
responsável por intercambiar as atualizações de rotas.
A mensagem de UPDATE é formada por campos que são divididos
em três grupos por suas funcionalidades. Na Figura 7 é apresentado
o formato da mensagem tipo UPDATE, bem como a apresentação
de cada grupo e campos pertencentes a cada um destes.
Figura 7 – Formato da mensagem tipo UPDATE do BGP |
No
primeiro grupo, definido como Unreachable routes são definidas
as rotas que devem ser removidas da tabela de roteamento. Um termo comum
para este tipo de evento é withdrawn. Da mesma forma,
no grupo Network Layer Reachability Information são definidas
as rotas que devem ser incluídas na tabela de roteamento. A representação
das rotas possui um mecanismo que suporta a funcionalidade conhecida como
CIDR, apresentado na seção 6.4.1.
Em relação aos campos do grupo Unreachable routes,
o campo Unfeasible routes length, com o tamanho de 2 bytes, representa
o tamanho em bytes total do campo Withdrawn routes, que representa
as redes que devem ser removidas da tabela de rotas. Internamente a este
campo, existem os campos Length e Prefix. Nestes dois campos
são representadas de fato as redes, através de instâncias
de Length e Prefix. Um exemplo seria <16,143.54.0.0>, que representa
a rede 143.54.0.0, dizendo que o endereço de rede é até
o décimo sexto bit, ou seja, em notação CIDR representa
a rede 143.54.0.0/16. Da mesma forma, através destas tuplas, são
declaradas as redes a serem incluídas na tabela de rotas. Os campos
utilizados para tal tarefa são os pertencentes ao grupo NLRI (Network
Layer Reachability Information).
Através
dos campos existentes no grupo Path Attribute é passado
um conjunto de atributos necessários ao anúncio de uma rota,
tais como: LOCAL_PREF, NEXT_HOP, ORIGIN, entre outros que serão
apresentados a seguir. Esses parâmetros são importantes para
o processo do algoritmo de decisão do BGP para determinar os melhores
caminhos.
Os
dois campos existentes deste grupo, cuja definição é
Total path attribute length e Path attributes representam
respectivamente o tamanho em bytes e a declaração dos parâmetros.
Esta declaração é feita através de uma estrutura
definida como <tipo atributo, tamanho atributo, valor do atributo>.
O campo Path Attribute, é por sua vez subdividido em diversas
partes, explicadas na Figura 8.
Figura 8 – Formato da mensagem tipo UPDATE do BGP
|
Os
8 bits de Attribute flags são divididos e utilizados conforme
descrição na Tabela 5.
Bit
|
Utilização |
Primeiro
bit – bit 0
|
Indica
se o atributo é conhecido (0) ou opcional (1) |
Segundo
bit – bit1 |
Indica
se o atributo é intransitivo (0) ou transitivo (1) |
Terceiro
bit – bit 2 |
Sendo
o atributo opcional e transitivo, se este é completo (0)
ou parcial (1) |
Quarto
bit – bit 3
|
Define se o atributo tem como tamanho 1 byte (0) ou 2 bytes (1)
|
Quinto
ao sétimo bit – bit 4 a 7
|
Não
utilizado, sendo sempre com conteúdo 0. |
Tabela 5: Definição
dos bits do campos Attribute flags.
Em
complemento, através da Tabela 6 são apresentados alguns
termos que serão utilizados para categorizar os atributos do BGP
que estão sendo apresentados.
Classificação
|
Significado |
Conhecido
obrigatório (Well-know mandatory) |
Atributo
que deve ser reconhecido em todas as implementações
BGP de qualquer fabricante. Caso algum atributo deste tipo não
esteja em uma mensagem UPDATE, será gerada uma mensagem
tipo NOTIFICATION par reportar o erro. |
Conhecido
arbitrário (Well-known discretionary) |
Atributo
que deve ser reconhecido em todas as implementações
de BGP, mas pode ou não estar presente em mensagens UPDATE.
Um exemplo de atributo deste tipo é LOCAL_PREF. |
Opcional
e transitivo (Optional transitive)
|
Atributo
que pode não ser reconhecido em todas as implementações.
Sendo transitivo, significa que o atributo deve ser aceito e repassado
aos demais peers BGP. |
Opcional
intransitivo (Optional nontrasitive) |
Atributo
também opcional. Sendo intransitivo, ele não é
repassado a outros peers BGP. |
Tabela 6: Classificação
dos atributos utilizados no BGP.
Através da Tabela 7 são apresentados alguns tipos de atributos,
juntamente com sua categoria e RFC que os descreve, segundo [CIS00]:
Número
do atributo
|
Nome
do atributo |
Categoria
/ Tipo |
RFC
/ Internet Draft que o descreve |
1 |
ORIGIN |
Conhecido
obrigatório, tipo 1 |
RFC
1771 |
2 |
AS_PATH
|
Conhecido
obrigatório, tipo 2 |
RFC
1771 |
3 |
NEXT_HOP
|
Conhecido
obrigatório, tipo 3 |
RFC
1771 |
4 |
MULTI_EXIT_DISC
(MED)
|
Conhecido
obrigatório, tipo 4 |
RFC
1771 |
5 |
LOCAL_PREF
|
Conhecido
obrigatório, tipo 5 |
RFC
1771 |
6 |
ATOMIC_AGGREGATE
|
Conhecido
obrigatório, tipo 6 |
RFC
1771 |
7 |
AGGREGATOR |
Conhecido
obrigatório, tipo 7 |
RFC
1771 |
8 |
COMMUNITY
|
Conhecido
obrigatório, tipo 8 |
RFC
1997 |
9 |
ORIGINATOR_ID |
Conhecido
obrigatório, tipo 9 |
RFC
1966 |
10 |
Cluster
List
|
Conhecido
obrigatório, tipo 10 |
RFC
1966 |
14 |
Multiprotocol
Reachable NLRI |
Conhecido
obrigatório, tipo14 |
RFC
2283 |
15 |
Multiprotocol
Unreachable NLRI |
Conhecido
obrigatório, tipo 15 |
RFC
2283 |
16 |
Extended
Communities
|
|
Draft-remachandra-bgp-ext-communities-00,txt
“work in progress” |
256 |
Reservada |
Reservado
para desenvolvimento
|
|
Tabela 7: Apresentação
de atributos utilizados no BGP.
Como foi descrito na Tabela 7, juntamente com os anúncios de rotas
são utilizados os chamados atributos que permitem determinar as
melhores rotas do BGP. Na Tabela 8 são listados e explicados alguns
dos atributos mais utilizados atualmente.
Atributo
|
Definição |
ORIGIN
|
Define
a origem do anúncio, classificando-o em 3 grupos:
0 : IGP (i) - Significa que a origem do anúncio é
interna ao referido AS.
1 : EGP (e) – Significa que a origem do anúncio é
externa ao referido AS, aprendida via EGP.
2 : INCOMPLETE (?) – A origem do anúncio foi feita
por algum mecanismo de redistribuição ou por meios
desconhecidos.
A ordem de preferência deste atributo é a própria
ordem em que os grupos foram apresentados, visto que os anúncios
do grupo 0 têm maior confiabilidade que os grupos 1 e 2. |
AS_PATH |
Atributo
que representa a seqüência de ASs que uma rota segue
para atingir determinado destino. Esses dados são incluídos
na passagem ao anúncio em cada peer, que inclui seu número
de AS juntamente ao anúncio da rota. Uma operação
possível sobre este atributo é o chamado “prepend”,
que se caracteriza por “piorar” o AS_PATH para determinada
rota, forçando com que outros caminhos possam ser escolhidos.
Um exemplo de prepend seria transformar o AS_PATH 1916 4230 para
1916 1916 4230. O menor AS_PATH é escolhido. |
NEXT_HOP
|
Refere-se
ao IP do próximo roteador para atingir determinada rede.
Geralmente o roteador que anuncia determinado prefixo repassa
como nexthop o seu próprio IP, exceto em sessões
iBGP ou em route servers, como será estudado adiante. |
LOCAL_PREF |
Usado
para selecionar o caminho preferencial de saída a partir
de um determinado AS. Seu escopo é interno ao AS, não
sendo repassado a seus vizinhos (peers). Quanto mais
alto seu valor, maior será a preferência. |
COMMUNITY
|
Atributo
que pode ser repassado a outros peers. Trata-se de uma
espécie de “carimbo” que acompanha anúncios
para que estes possam ser tratados de forma diferenciada. |
WEIGHT
|
Atributo
proprietário da CISCO, muito semelhante ao LOCA_PREF, embora
não seja repassado para outros roteadores, mesmo dentro
do mesmo AS. Quanto maior seu valor, maior será a preferência. |
Tabela 8: Definição
dos atributos mais utilizados no BGP.
Através da tabela de rotas BGP representada pela Figura 9, são
apresentados alguns dos atributos vistos anteriormente. Depois da versão
e identificador do roteador, é apresentado o início da listagem
de prefixos seus atributos. Cada linha a seguir representa um prefixo
e seus respectivos atributos.
BGP
table version is 1660291, local router ID is 200.10.20.30
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network |
Next
Hop |
Metric
|
LocPrf |
Weight |
Path
|
*>i12.0.48.0/20 |
198.32.252.254 |
|
100 |
0 |
11537
10578 1742 i |
*>i12.6.208.0/20 |
198.32.252.254 |
|
100 |
0 |
11537
10578 1742 i |
*>i12.6.252.0/24 |
198.32.252.254 |
|
100 |
0 |
11537
10578 14325 ? |
*>i12.16.126.192/26 |
198.32.252.254 |
|
100 |
0 |
11537
10578 14325 ? |
*>i12.144.59.0/24 |
198.32.252.254 |
|
100 |
0 |
11537
10466 13778 i |
|
Figura 9:
Exemplo de tabela BGP parcial.
A
partir do início de cada linha, o símbolo * (asterisco)
apresentado ao lado dos prefixos mostra que estes estão definidos
como melhores caminhos para as redes em questão. Ao lado é
apresentada a rede anunciada na forma de bloco CIDR, em seguida o Next
Hop que define-se como próximo roteador que os pacotes para
esta rede deverão ser enviados. Também todas as rotas possuem
o atributo Local Preference com valor 100, o atributo Weight
(proprietário da Cisco) com valor 0. Outro atributo é o
AS_PATH que mostra a seqüência de sistemas autônomos
até a chegada a rede destino e por fim, o atributo ORIGIN, que
define a procedência do anúncio pelo AS que anunciou e é
representado por i (IGP), e (EGP) ou “?” (indefinido ou incompleto). |
|