domingo, 29 de agosto de 2010

BGP – Mandatory Well-Known (Path Attributes)

O Protocolo BGP utiliza diversos parâmetros para escolha de melhor rota quando há diversos caminhos para o mesmo destino, esses parâmetros são chamados de Path Atributes.

Cada atualização do BGP consiste em uma ou mais sub-redes (prefixos) vinculadas aos seus atributos.

Os Path Atributes são classificados em Well-Known ( bem conhecido ) ou Optional (opcional). Alguns desses atributos são obrigatórios e outros opcionais com validade local na tabela de roteamento, local no AS, etc.

Os atributos Well-Known são classificados em Mandatory (obrigatório ) e Discretionary ( arbitrário).

No tópico de hoje citaremos os atributos Mandatory, Well-Known(bem conhecidos e obrigatórios).

Mandatory Well-Known
São 3 os atributos Mandatory Well-Known: Origin, AS-Path e Next-hop:

Origin: Relaciona a maneira que a rota foi aprendida pelo BGP. Se a rota foi declarada com o comando network ou via agregação de rotas ela será exibida com a letra “i”, para as rotas aprendidas via redistribuição é utilizado o caracter “?”. Há ainda a possibilidade da rota ser aprendida via o protocolo EGP,"e" mas atualmente o mesmo está em desuso.

AS-Path: Quando um prefixo é injetado no BGP e compartilhado entre os AS, incialmente o AS-Path é atribuído como vazio, cada vez que a rota atravessa um AS(Sistema Autônomo) é adicionado pelos roteadores de Borda o numero do AS que ele pertence. É possível rastrear a seqüência de Sistemas Autônomos utilizando o atributo AS-Path.

Next-hop: Indica o endereço do próximo salto do Roteador que recebeu o prefixo. Geralmente o roteador que anuncia determinado prefixo repassa com o next-hop o seu próprio IP, exceto em sessões iBGP.

Comando Display

O commando abaixo exibirá a tabela de Roteamento do BGP:

[Matriz] display bgp routing-table

Total Number of Routes: 2
BGP Local router ID is 192.168.0.45
Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S – Stale, Origin : i - IGP, e - EGP, ? - incomplete

Network ------------ NextHop--- MED--- LocPrf--- PrefVal--- Path/Ogn
*> 172.31.1.0/24---- 0.0.0.0 0 --------------------------0------------- i
*> 180.0.0.0/24----- 192.0.2.42-------------- 0-------- 0------- 64515-- i
! A rede 172.31.1.0/24 está diretamente conectada no Switch/Roteador e inserida no BGP pelo comando Network. A rede 180.0.0.0/24 foi aprendida via BGP pelo AS 64515 com o netxhop 192.0.2.42 e origem via iBGP ou inserida no processo pelo comando network

[Matriz]disp bgp peer
BGP local router ID : 192.168.0.41
Local AS number : 64512
Total number of peers : 2 / Peers in established state : 2
Peer---------- AS ---------MsgRcvd MsgSent OutQ PrefRcv Up/Down State
192.0.2.42 ---64515 --------9 10 0 1 00:07:02 Established
! O comando display bgp peer exibe o "peering" BGP com o endereço da conexão eBGP , número do AS e o estado da conexão.

sábado, 7 de agosto de 2010

IPv6 - Introdução ao Endereçamento e Cabeçalho

Olá Pessoal, hoje inicio mais um artigo referente ao IPv6. Tenho certeza que grande maioria dos técnicos de informática já ouviram  bastante coisa sobre o tema e mesmo assim, há uma incerteza de como isso funcionará e/ou afetará a maneira como lidamos com os endereços de rede e serviços.

Nos últimos meses tenho lido bastante coisa sobre o tema e após alguns laboratórios com os endereçamentos IP versão 6, venho percebendo que o assunto não é um bicho de sete cabeças!

Como informação nunca é de mais, postarei um resumo do meu trabalho entregue na Universidade e a dica do site http://ipv6.br/ que possui um curso bacana (grátis) em português sobre o assunto...

O IP versão 6, atende todas as necessidade propostas para melhora da versão anterior. Genericamente, o IPv6 não é compatível com o IPv4, mas é compatível com os outros protocolos auxiliares da Internet, como TCP, UDP, ICMP, IGMP, DNS, etc.

A principal modificação está relacionada ao endereçamento de 128 bits, comparado aos 32 bits do IPv4. O aumento na quantidade de endereços oferecem um número ilimitado de endereços na Internet, melhora na confiabilidade de endereços, flexibilidade e facilidade de multihoming para diversos Provedores (ISP), auto-configuração de endereços de rede IPv6 e comunicação fim-a-fim sem a necessidade de NAT.


Devido ao tamanho dos endereços IPv6, tornou-se impraticável a representação da mesma maneira que os endereços IPv4, como resultado, 8 grupos de 16 bits separados por dois-pontos (“:”) são representados em formato hexadecimal:
  • 1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0
Tendo em vista a utilização de vários endereços contendo números zero, essa porção do endereço poderá ser omitida e representada por dois dois-pontos(“::”). De modo que 0987 poderá ser escrito como 987. Um ou mais grupos de 16bits zero podem ser substituídos por um par de dois-pontos . Os pares de dois-pontos utilizados na abreviação podem ser utilizados somente uma vez, para eliminar ambigüidade.

Como exemplo a abreviação do endereço 2001:0002:0000:0000:00A1:0CC0:0234:9876 poderá ser da seguinte forma:
  • 2001:2:0:0A1:CC0:234:9876
  • 2001:0002::00A1:0CC0:0234:9876
  • 2001:2::A1:CC0:234:9876
Para o uso de mais de um IP em um mesmo dispositivo, foram criados os seguintes esquemas:

Unicast: similar aos endereços unicast IPv4, um endereço unicast IPv6 é endereçado para uma única interface. Uma interface poderá ter vários endereços unicast. Os endereços em unicast podem ser global, link-local, unique local(ULA) e IPv4 compatible.

Multicast: neste esquema, um único dispositivo consegue identificar várias interfaces na rede, permitindo o envio individual de pacotes; Um pacote enviado para um endereço multicast é entregue para todas as interfaces identificadas com o endereço multicast.

Anycast: o endereço IPv6 pode estar atribuído a mais de uma interface/dispositivo, ao invés de uma individual. Todos os nós com o mesmo endereço unicast proverão serviços de maneira uniforme. Um exemplo de serviço anycast é o balanceamento de entrega de serviços de conteúdo.

No endereçamento IPv4, o broadcast resulta em inúmeros problemas, incluindo problemas na rede conhecidos como tempestade de broadcast que podem parar a LAN completamente. O Broadcast não existem nas redes IPv6, os broadcasts foram substituídos por endereços multicast e anycast.

O segundo aperfeiçoamento importante no IPv6 é a simplificação do cabeçalho. O cabeçalho IPv4 contem 12 campos básicos contra 7 do IPv6. Esta mudança permite aos roteadores encaminharem os pacotes com maior agilidade, melhorando o throughput e o retardo.

O cabeçalho IPv6 contem os seguintes campos:


Version: possui 4 bits, o mesmo que no IPv4. No IPv6 o campo contem o numero 6.

Traffic class: possui 8 bits e função similar ao campo IPv4 type of service (ToS). Este campo marca o pacote para diferenciação de Qualidade de Serviço dos pacotes IP (QoS).

Flow Label: este novo campo possui 20 bits e poderá ser utilizado para a marcação na origem para especificação do pacote como parte de um determinado fluxo. O fluxo pode ser configurado com antecedência e ter um identificador atribuído a ele e forçando aos Switches Multicamadas e Roteadores verificar nas tabelas internas que tipo de tratamento especial ele exigem, para melhor encaminhamento e desempenho.

Payload lenght: determina o numero de bytes que seguem o cabeçalho de 40bytes.

Next header: o valor de 8 bits determina o tipo de informação que segue o cabeçalho IPv6 básico.O cabeçalho pode ser simplificado porque existe a possibilidade de haver outros cabeçalhos de extensão(opcionais).

Hop limit: campo de 8 bits com função similar ao campo TTL da versão 4

Source address: Campo de 128 bits que identifica a origem do pacote.

Destination address: Campo de 128 bits que identifica o destino do pacote.

Extension headers: Esses cabeçalhos podem ser criados com a finalidade de oferecer informações extras para tornar o encaminhamento mais rápido e eficiente. Estes cabeçalhos extras permitem uma maior eficiência, devido ao tamanho do cabeçalho, que pode ser ajustado às necessidades. Os cabeçalhos devem ser utilizados de forma encadeada permitindo uma maior flexibilidade, porque podem ser sempre adicionados novos cabeçalhos para satisfazer novas especificações. As especificações actuais recomendam a seguinte ordem:

1. IPv6

2. Hop-By-Hop Options Header

3. Destination Option Header

4. Routing Header

5. Fragment Header

6. Authentication Security Payload Header

7. Destination Options Header

8. Upper-Layer Header

O cabeçalho de autenticação, pertencente ao extension headers, oferecendo um mecanismo pelo qual o receptor de um pacote pode ter certeza de quem enviou. A carga útil de segurança criptografada torna possível criptografar o conteúdo do pacote. Esses cabeçalhos utilizam técnicas criptográficas para alcançar os objetivos a que se propõem. O IPsec torna-se nativo ao IPv6 com o authentication header (AH), com o next-header com o valor igual 51 e o cabeçalho Encapsulating Security Payload (ESP), com o next-header com o valor igual 50 que poderão ser utilizados dentro do IPsec para providenciar autenticação, integridade e confidencialidade do pacote.

Muitas das alterações incorporadas ao IP versão 6 referem-se a melhora no desempenho no encaminhamento dos pacotes como a remoção do campo checksum ( presentes na camada de enlace e transporte, tornando-a redundante no cabeçalho IP) e melhora no processo de fragmentação.

Na prática, o espaço de endereços não será utilizado com eficiência, mas haverá na versão 6 uma inesgotável quantidade de endereços para PDAs, pen-tablets, celulares, carros, eletrodomésticos, edifícios inteligentes, monitoramentos médicos e etc. Devido a isso os dispositivos poderão ter mais de um endereço IP tornando possivel que certos serviços sejam executados simultaneamente numa mesma máquina e para cada um haverá uma conexão exclusiva.


Cadê a Máscara do IPv6?

Os endereços IPv6 trabalham diretamente com os prefixos, similar a representação atual que fazemos nas redes IPv4 ( 192.168.1.0/24) que representam a os bits de rede e os bits de host.

Para as redes locais é sugerido a utilização de prefixos /64, então se quiséssemos configurar o primeiro endereço válido da rede 2001:0db8:0000:000:0000:0000:0000:0000/64 em um roteador, poderiamos configurar com o endereço IPv6 na interface como ipv6 address 2001:db8::1/64 ( fácil, fácil )! 

E vocês, qual a sua experiência com endereços IPv6 (alguma, nenhuma)? Comentem!!

Bibliografia
Redes de Computadores – 4ª edição
Andrew S. Tanenbaum
Building Scalable Cisco Internetworks – 3ª edição
Diane Teare

Referências
http://www.infowester.com/ipv6.php
http://www.faqs.org/rfcs/rfc1550.html
http://ipv6.br/