Monday, April 9, 2012

EIGRP

osischool.com


Fonte: http://www.osischool.com/protocol/eigrp/neighbor-discovery

 Hoje vamos aprender sobre o protocolo de roteamento da Cisco EIGRP : Enhenced Interior Gateway Routing Protocol.
     A bela animação acima, apesar de simples, sumariza muitíssimo bem o que acontece no mundo real quando estamos falando de protocolo de roteamento e em especial de EIGRP.
 Como podemos ver, roteadores trocam informaçoes constantemente entre si. Esse mecanismo objetiva manter as informações sempre atualizadas e funciona com uma lista de presença onde, a cada 5 segundos, o roteador diz 'presente'. Caso essa resposta não venha nos 5 segundos e nem nos próximos 15 segundos, o roteador será considerado 'ausente' e uma pequena mudança na rede é iniciada.
  Em links de baixa velocidade esses tempos são alterados para 15 segundos  e 60 segundos respectivamente.
  O tempo menor, 5 segundos, é chamado de Hello time e tem a mesma conotação do Hello presente no OSPF, protocolo discutido em outro artigo. O tempo maior é chamado de Hold time e siginifica o tempo que um roteador espera até considerar seu visinho inacessível.
  Pois bem, dito isso, vamos detalhar como todo o processo acontece.
  Uma vez estabelecida a comunicação entre roteadores e ativado, em suas interfaces, o protocolo EIGRP, imediatamente o roteador começa a enviar mensagens Hello na rede usando o IP de multicast 224.0.0.10. Traçando um pararelo com seu concorrente OSPF, o EIGRP não vai muito além disso.  Enquanto OSPF irá criar uma estrutura em árvore como ocorre como protocolo Spanning Tree,também discutido em outro artigo, o EIGRP é muito mais simples e age como um autêntico protocolo Distance Vector. Uma vez feita as devidas apresentações, já ocorrem a troca de informações de roteamento. Sem mais delongas, sem passar por todos os estágios de down, init, exchange e full do OSPF,alem da eleição de um DR e um BDR.
    O OSPF precisa de todo esse trabalho porque, como link state, ele forma uma rede onde todo mundo conhece todo mundo. Já EIGRP é muito mais simples. Ele forma adjacência  com seu visinho diretamente conectado e isso é o suficiente.
  É possível não enviar mensagens Hello por uma dada interface. Basta que em modo de configuração de roteamento, seja executado o comando 'passive interface' seguido da interface a qual se almeja desativar o enio de Hello. Com esse comando, uma dado segmento de rede não será inundado com mensagens Hello. Essa configuração é útil e recomendada por questões de segurança,pois, alguns roteadores estarão  conectados a uma rede local que não participará da rede EIGRP.
  Considerando uma rede devidamente conectada, sem problemas de camada 1 ou 2 e com os segmentos devidamentes trocando mensagens Hello, axatamente como na animação acima, vamos ver em mais detalhes o que acontece após.
  Para que um roteador seja visto na tabela de vizinhos do outro roteador (Neighbor Table), é preciso que alguns parâmetros estejam de acordo. Os tempos de Hello e Hold time precisam ser os mesmos. Se autenticação estiver sendo usada, cada interface deverá concordar quando a Chain e a key além dos timers envolvidos na autenticação.
  Se todas essas condições estão de acordo, o roteador é inserido na tabela de vizinhos e existe a troca de informação de roteamente.
  Cada roteador realizará o envio de toda sua tabela de topologia para seu visinho diretamente conectado.
  O roteador formará,então, três tabelas a saber:
-Tabela de visinhos
-Tabela de Roteamento
-Tabela de Topologia.

Abaixo vamos mostrar cada uma delas:

1-Visinhos:

Albuquerque#show ip eigrp neighbor
IP-EIGRP neighbors for process 1
H   Address         Interface      Hold Uptime    SRTT   RTO   Q   Seq
                                   (sec)          (ms)        Cnt  Num
0   10.1.4.2        Se3/0          12   01:21:33  40     1000  0   31
1   10.1.6.2        Se2/0          11   01:21:30  40     1000  0   30


 2-Rotas:
 Albuquerque#show ip route eigrp
     10.0.0.0/24 is subnetted, 6 subnets
D       10.1.2.0 [90/20514560] via 10.1.4.2, 01:22:26, Serial3/0
D       10.1.3.0 [90/20514560] via 10.1.6.2, 01:22:24, Serial2/0
D       10.1.5.0 [90/21024000] via 10.1.4.2, 01:22:26, Serial3/0
                 [90/21024000] via 10.1.6.2, 01:22:24, Serial2/0


3-Topologia:

 Albuquerque#show ip eigrp topology
IP-EIGRP Topology Table for AS 1

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/0
P 10.1.4.0/24, 1 successors, FD is 20512000
         via Connected, Serial3/0
P 10.1.2.0/24, 1 successors, FD is 20514560
         via 10.1.4.2 (20514560/28160), Serial3/0
P 10.1.5.0/24, 2 successors, FD is 21024000
         via 10.1.4.2 (21024000/20512000), Serial3/0
         via 10.1.6.2 (21024000/20512000), Serial2/0
P 10.1.6.0/24, 1 successors, FD is 20512000
         via Connected, Serial2/0
P 10.1.3.0/24, 1 successors, FD is 20514560
         via 10.1.6.2 (20514560/28160), Serial2/0
Albuquerque#


Olhando as saidas dos comandos acima, somos apresentados a vários conceitos novos e importantes sobre o protocolo. Considero que essa é a maior dificuldade em estudar EIGRP. As terminlogias usadas no protocolo são, a meu ver, um pouco confusas e trás muitas dúvidas no início dos estudos. Meu objetivo é que, ao final do artigo, alguém que não compreendia esses termos, passe a compreendê-los.
   Como já previamente explicado, a tabela de visinhos depende dos tempos de Hello, Hold e caso esteja sendo usado autenticação, os parêmetros devem concordar.
  O parâmetro ASN, Autonomous System Numer, deve ser o mesmo e é o mais importante. Para ativar o protocolo no roteador já é  solicitado qual ASN será usado.
  Obviamente, as interfaces devem estar na mesma rede logica, afinal, estamos tratando de um protocolo de camada 3.
 Também são levado em consideração as métricas,porém, não vamos entrar em detalhes aqui porque foge do escopo de CCNA.

 Breve descrição da Tabela de Visinhos:


H   Address         Interface      Hold Uptime    SRTT   RTO   Q   Seq
                                   (sec)          (ms)        Cnt  Num
0   10.1.4.2        Se3/0          12   01:21:33  40     1000  0   31
1   10.1.6.2        Se2/0          11   01:21:30  40     1000  0   30


O H é o Indice da Tabela, quanto mais roteadores, mas esse número aumenta.  Geremy Cioara, em um de seus ótimos videos, faz algumas paródias sobre esse parâmetro dizendo que ninguem sabe porque usaram a letra H. Mas isso nao importa.
  Temos ainda o IP do roteador visinho e a interface do roteador por onde as informações estão sendo recebidas. Em seguida temos a Hold time, Up time que é o tempo que o visinho está ativo, SRTT é o tempo de reposta, como se fosse um ping e demais parametros.

 Veremos em seguida a Tabela de Rotas:

 Albuquerque#show ip route eigrp
     10.0.0.0/24 is subnetted, 6 subnets
D       10.1.2.0 [90/20514560] via 10.1.4.2, 01:22:26, Serial3/0
D       10.1.3.0 [90/20514560] via 10.1.6.2, 01:22:24, Serial2/0
D       10.1.5.0 [90/21024000] via 10.1.4.2, 01:22:26, Serial3/0
                 [90/21024000] via 10.1.6.2, 01:22:24, Serial2/0


A Tabela de Rotas começa com  a letra D de DUAL (Diffusion Update Algorithm). Esse é o algorítimo responsável por analisar a tabela topológica e eleger a rota que irá para a Tabela de Rotas.
  Em seguida tempos a rede de destino, rede que queremos alcançar. Entre parênteses temos a esquerda a Distancia Administrativa, no caso o valor Default, 90. Em seguida, a direita, temos a Metrica. Após a Metrica temos a palavra Via que indica por onde iremos sair, IP e Interface.

 [90/20514560]-
Ainda sobre esses números entre colchetes, temos que dar uma atenção maior ao numero 20514560. Esse número, como dito antes, é a Métrica. Mas o que vem ser a métrica? Métrica é a somatória de alguns fatores para considerar o quão boa é uma rota.
  Quando dois roteadores trocam informações de roteamento eles informam ao seu visinho sua métrica para atingir uma rede determinada. Ao receber essas informações, o roteador verfica suas próprias informações e, somando com as informações do visinho, cria a Metrica da qual estamos falando.
  Isso é algo interessante de ressaltar. Ou seja, dessa forma o EIGRP considera sua perspectiva e a perspectiva do visinho como deve ser um protocolo Distance Vector.
   O parametros analisados são chamados de K. Os valores relevantes são  K1 e K3, Bandwidth e Delay. Existem ao todo 7 tipode K.
    O funcionamento desse processo envolve formula e pode ser bem complexo mas aqui vamos tentar tornar as coisas o mais simples possível.
 Uma vez definido os paramtros K1 e K3 e as informações recebidas do visinho, o roteador chega  no número acima e isso é a medida de quão confiável é uma determinada rota.
 Caso rotas para um mesmo destino tenham a mesma métrica, ambas irão para a tabela de rotas, por default até 4. O tráfego será então balancedo entre elas.
   O protoloco permite, entretando, balanceamento de tráfego entre até 16 rotas e ainda com custos desiguais. Isso também não será escopo desse artigo.
  
  Vamos introduzir agora os termos a que tinha referido:

Successor Route:

 Não precisa traduzir. Apenas trabalhe com a informação de que essa é a rota que será colocada na tabela de roteamente.
 Falou em Successor, pense na rota que está na sendo usada pelo router.

Feasible Successor:

Esse termo faz um pouco mais de sentido,porque, se traduzido, fica Sucessor Viável. Mas ainda vamos trabalhar com os termos como estão.
 Essa rota fica apenas na Tabela de Topologia e passará para a Tabela de Roteamento, caso a rota atual, Successor, falhar.
 Dessa forma, o EIGRP se torna um protocolo estremamente rápido e eficiente. Em apenas um segundo e até menos, ele é capaz de recuperar uma rota com problemas.

 Posto isso, vamos apresentar nossa terceira e última Tabela: Tabela de Topologia


Albuquerque#show ip eigrp topology
IP-EIGRP Topology Table for AS 1

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/0
P 10.1.4.0/24, 1 successors, FD is 20512000
         via Connected, Serial3/0
P 10.1.2.0/24, 1 successors, FD is 20514560
         via 10.1.4.2 (20514560/28160), Serial3/0
P 10.1.5.0/24, 2 successors, FD is 21024000
         via 10.1.4.2 (21024000/20512000), Serial3/0
         via 10.1.6.2 (21024000/20512000), Serial2/0
P 10.1.6.0/24, 1 successors, FD is 20512000
         via Connected, Serial2/0
P 10.1.3.0/24, 1 successors, FD is 20514560
         via 10.1.6.2 (20514560/28160), Serial2/



Esse tabela é maior porque possui todos os possíveis rotas para  todos os destinos. Além das Successors Routes.
Quando algo acontece com a rota pricipal, o DUAL irá eleger a Feasible Successor à  Successor e tudo ficará bem.
 Mas para que uma rota seja Feasible successor ela precisa atender uma condição que é chamada pela Cisco de Feasible Condition.
  Essa regra diz que para uma rotar se tornar  a rota backup, ela precisa ter uma métrica melhor que a métrica da rota em uso. Isso é um tanto confuso, mas vou explicar.

 Veja a Figura abaixo:


Esse figura, retirada do livro ICND2 da Cisco, melhor material que eu tenho, mostra muito bem essa questão.
   Temos que considerar aqui a palavra  perspectiva. Perspectiva é a forma que o roteador enxerga a rede com a ajuda do visinho. O Roteador E possui as rotas em sua tabela de roteamento, somando as informações enviadas pelos visinhos com as suas próprias. Da mesma forma, os roteadores B,C e D terão as suas informações somando com as informações de outros roteadores visinhos. Na figura, o roteador consegue chegar a rede 1 no roteador A, com uma métrica de 15000, o roteador C com 13000 e D com 10000. Enquanto que o roteador E, tem métrica de 14000 passando pelo roteador D.
  Dessa forma, o caminho escolhido é pelo roteador D, afinal 4000 + 10000 é igual a 14000, ou seja, o menor valor.
  A rota E-D-A, será a Successor e irá fica da Tabela de Roteamento. Mas e as Feasibles Successor ? Como disse acima, são aquelas que atendem a Feasible condition. E como explicado, a Feasible Condition diz que a rota tem que ter uma métrica menor que a métrica da Sucessor route. Considerando que nossa successor route possui métrica de 14000, qual das metricas enviadas pelos roteadores visinhos é menor do que 14000 ??.   Simples, a rota do roteador C, cujo valor é 13000. Veja que a rota do roteador B não atende, ela possui o valor 15000.
  Podemos concluir com 100 % de certesa que se algo der errado com o roteador D, o roteador desviará todo o seu tráfego para o roteador C. Dessa forma, a rota através do roteador C atende a Feasible Condition e será a rota Feasible Sucessor. Ou seja, ela estará na tabela de topologia do roteador D.

   Por último, vamos considerar que não apenas D falhe mas também o roteador C. O que irá acontecer? Bem, o DUAL não possui uma Feasible Successor, uma rota de backup para subir automaticamente a rede. Mas, ele sabe que existe uma rota que, apesar de não atender a Feasible Condition, não deixa de ser uma rota até a rede de destino. Então o DUAL dispara (Consulta) Query para o roteador B que responde em Reply e ambos concordam em usar essa rota para que a rede do roteador D tenha como atingir a rede em A.

 Uma última informação sobre o EIGRP é que ele é  independente de protocolo de camada 3. Enquanto o OSPF suporta apenas TCP/IP, o EIGRP suporta todo os protocolos roteados. Ainda que isso não é mais algo notável hoje em dia, afinal, TCP/IP acabou por suplantar todos os seus concorrentes, não deixa de ser uma característica.
  EIGRP consegue esse feito porque a Cisco desenvolveu um protocolo chamado RTP, diferente daquele RTP (Real Time Protocol de camada 5 que roda sobre UDP) o RTP da Cisco significa Reliable Transporte Protocol e consegue ser, inclusive Unreliable. Ou seja, ele pode funcionar como TCP ou como UDP.
 
  Asssim nós concluímos o processo de roteamento no protocolo EIGRP. Como disse, os termos escolhidos pela Cisco geram um pouco de dúvidas e eu fiz questão de mantê-los em Ingles porque assim são apresentados na maioria dos materiais. Mas basta considerar o conceito por trás do termo e apenas guardar o tempo atrelado ao conceito.
  Eu espero realemente ter conseguido esclarecer esses conceitos porque levei algum tempo até deixá-los claros pra  min. Caso alguém não tenha entendido e queira uma explicação diferente ou discutir algum ponto específico, sinta se a contade para me contatar:

flaviormiranda@hotmail.com

Ou vá até a aba RoutingTelecom Consulting que todos meus contatos estão la.

Abraço a todos que visitam o blog e lêem os posts.

Wednesday, March 14, 2012

PPP Multilink

Segue um rápido,porém, interessannte tutorial sobre como usar o protocolo PPP para fazer um "Port Channel" , como é tão comun vermos em redes Ethernet.
 A motivação para tal foi que hoje no meu trabalho tive que configurar um PPP MultiLink em dois routers de uma operadora que é um dos nossos clientes.
 A nível de CCNA,poderia ser cobrado a respeito do PPP ser ou não capaz de fazer balanceamento de carga,mas não para configurar. Porém, por ser interessante, fácil e comprovadamente importante, resolvi dedicar um post rápido a isso.
 Abaixo temos nossa rede:



Basicamente temos quatro interfaces seriais conectadas e com encapsulamento PPP.
Seguem as configurações:
Primeiramente criaremos uma interface virtual chamada de Multilink e associaremos essa interface a um Grupo:

R1:

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface multilink 10
R1(config-if)#ip add
*Mar  1 00:30:38.039: %LINEPROTO-5-UPDOWN: Line protocol on Interface Multilink10, changed state to down
R1(config-if)#ip add 10.10.10.10 255.255.255.252
R1(config-if)#











O mesmo em R2:

R2:

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#
R2(config)#interface multilink 10
R2(config-if)#ip add
*Mar  1 00:32:35.959: %LINEPROTO-5-UPDOWN: Line protocol on Interface Multilink10, changed state to down
R2(config-if)#ip add 10.10.10.9 255.255.255.252









Agora vamos configurar as Interfaces Fisicas, começamos por R1.

R1(config)#interface serial 0/0
R1(config-if)#encapsulation ppp
R1(config-if)#ppp multilink
R1(config-if)#ppp multilink group 10
R1(config-if)#
*Mar  1 00:37:19.555: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to down
*Mar  1 00:37:19.567: %LINK-3-UPDOWN: Interface Multilink10, changed state to up
*Mar  1 00:37:20.555: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to down
 


R1(config)#interface serial 0/1
R1(config-if)#encapsulation ppp
R1(config-if)#ppp multilink
*Mar  1 00:37:52.955: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to up

R1(config-if)#ppp multilink group 10


 Agora no R2:


R2(config)#
R2(config)#interface serial 0/0
R2(config-if)#encapsulation ppp
R2(config-if)#ppp multilink
R2(config-if)#ppp multilink group 10
R2(config-if)#
*Mar  1 00:42:17.503: %LINK-3-UPDOWN: Interface Multilink10, changed state to up
*Mar  1 00:42:18.503: %LINEPROTO-5-UPDOWN: Line protocol on Interface Multilink10, changed state to up
R2(config-if)#
R2(config-if)#exit


R2(config)#
R2(config)#interface serial 0/1
R2(config-if)#encapsulation ppp
R2(config-if)#ppp multilink
R2(config-if)#ppp multilink group 10
R2(config-if)#
R2(config-if)#end
R2#
R2#


Vamos verificar as configurações:

Primeiro no R1, podemos ver que as interfaces física não possui IP associado a elas, apenas a Interface virtual:

R1#sh ip int br
Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  unassigned      YES manual up                    up
Serial0/1                  unassigned      YES manual up                    up
Serial0/2                  unassigned      YES unset  administratively down down
Serial0/3                  unassigned      YES unset  administratively down down
Ethernet1/0                unassigned      YES unset  administratively down down
Virtual-Access1            unassigned      YES TFTP   down                  down
Multilink10                10.10.10.10     YES manual up                    up




O mesmo para R2:

R2#sh ip int br
Any interface listed with OK? value "NO" does not have a valid configuration

Interface                  IP-Address      OK? Method Status                Protocol
Serial0/0                  unassigned      YES manual up                    up
Serial0/1                  unassigned      YES manual up                    up
Serial0/2                  unassigned      YES unset  administratively down down
Serial0/3                  unassigned      YES unset  administratively down down
Ethernet1/0                unassigned      YES unset  administratively down down
Virtual-Access1            unassigned      NO  TFTP   down                  down
Multilink10                10.10.10.9      YES manual up                    up


Vamos Pingar de R1 para R2

R1#ping 10.10.10.9

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.9, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/24/32 ms


Ping ok!

Vamos ver quanto teríamos de banda somando os dois links:

R1#sh int multilink 10 | in BW
  MTU 1500 bytes, BW 3088 Kbit, DLY 100000 usec,



R2#sh int multilink 10 | in BW
  MTU 1500 bytes, BW 3088 Kbit, DLY 100000 usec,


Podemos ver que nosso link agregado possui Bandwidth de 3088 Kbit.
Se olhásemos a interface Fisica, pegando apenas a Serial 0/0 de R1:

R1#sh int se 0/0 | in BW
  MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,

Exatamente a metade!




 E é isso. Uma configuração bastante simples para uma facilidade importante. No caso real que configurei, os Links eram E1 de 2048 Kbits o que resultou em um link de 4 Mbits.

Sunday, February 26, 2012

DUPLEX e SPEED em Switch Cisco

Em um artigo anterior falamos sobre as funções dos LEDs de um switch Cisco. É de extrema importância conhecermos bem suas funções,principalmente para quem precisa dar manutenção onsite em um CPD.

     Hoje vamos falar de algo ainda mais interessante e tão importante quanto : SPEED e DUPLEX. Funções inclusive mostradas pelos LEDs,como aprendemos antes: STAT,UTIL,DUPLX e PEED.

  Mas enfim, em que situação essas funções são de fato relevantes?

A resposta é: em muias. Para quem trabalha com suporte de rede, provavelmente já ouviu reclamações do tipo Internet lenta, transmissão de arquivos na rede local  lenta, problemas ao mapear pastas na rede e muitas outras. Muitas dessas reclamações pode estar relacionado a algum link entre switches, ou entre switches e  servidores e até mesmo entre switches e PCs, enfrentando problemas com SPEED e DUPLEX.

  Antes de iniciarmos explicações sobre o problema em si, vamos falar o que afinal essas duas palavras significam. SPEED, basta apenas fazer a traduçao,ou seja, significa a velocidade de um dado segmento de rede. As velocidades conhecidas hoje vão de 10 Mbps até 10 GBps. Outras velocidades existem,porem, vamos trabalhar dentro desse universo porque é o que encontraremos com mais probabilidade.

   DUPLEX já possui uma designação um pouco mais complexa. Ele se refere a forma de transmissão dentro de uma dada velocidade. DUPLEX pode ser HALF ou FULL DUPLEX. Vamos explicar cada um.

 A Ethernet é de origem uma rede Half Duplex. Ou seja, em um segmento de rede, apenas um dispositivo pode transmitir a cada vez.A transmissão realizada por dois dispositivos ao mesmo tempo acasiona a Colisão,ou seja, todos os dados se perdem.

 Para evitar a Colisão,foi desenvolvido o algoritmo CSMA/CD. A partir daí, os dispositivos deviam "Ouvir" o meio antes de colocar seu quadro Ethernet. Caso o meio estivesse livre, o dispositivo poderia transmitir seu quadro ethernet tranquilamente. Caso o meio estivesse ocupado, o dispositivo deveria esperar um tempo e após esse tempo, novamente ouviria o meio para certificar-se de que estaria  livre.

  Caso dois dispositivos ouvissem o meio ao mesmo tempo e ambos percebessem que o meio estava livre,ambos transmitiriam seus quadros e uma colisão fatalmente ocorreria. Nesse caso, o dispositivo que percebesse a Colisao,enviaria um sinal chamado de JAM signal e todos os dispositivos do segmento parariam de transmitir. Ambos os dispositivos disparariam um temporizador chamado de Back off aleatório e a medida que esse temporizador terminasse, todo o processo se repetia,ou seja, o dispositivo ouviria o meio para ver se o mesmo estava livre e daí por diante.

      Essa forma de comunicação supria muito bem as redes mais antigas onde eram utilizado HUBs como  equipamento concentrador,ou seja, a rede era realmente compartilhada. Com o advento do switch, cada dispositivo passou a ter um domínio de colisão, não precisando mais compartilhar o meio.

  Isso possibilitou um avanço nas redes Ethernet que hoje já atinge velocidades de 100 Giga. Entretanto, mesmo cada porta do switch sendo um único domínio de colisão, ainda é possível que ocorra colisão entre os dois dispositivos que eventualmente venha a se comunicar. Dessa forma, continua havendo a necessidade de haver mecenismos de controle para o envio e recebimento de quadros no segmento de rede.

  Porém, com o as velocidades atuais, o mecanismo HALF DUPLEX não atenderia, devido o desperdício de tempo que essa forma de transmissão impõe.

   Diante dessa demanda, o IEEE definiu o padrão 802.3x.

Esse padrão introduz a  forma de comunicaçao Full Duplex. Agora, dispositos de rede podem enviar e receber ao mesmo tempo em um segmento. O algoritmo CSMA/CD não é mais necessário  e existe uma comunicação ponto-a-ponto entre ambos os dispositivos.

   A bem da verdade, Ethernet passou a utilizar um mecanismo de controle de fluxo. Uma subcamada MAC controll foi introduzida na camada de enlace do modelo OSI e uma endereço MAC especial  01-80-C2-00-00-01 foi definido. Um dispositivo pode transmitir até que receba esse endereço MAC, a partir daí ele deve esperar.

    Essas evoluções estão  transformando redes Ethernet em redes WAN. A colisão sempre foi um fator limitante no que se refere a distância de transmissão. A medida que mecanismos para evitar colisões vão sendo desenvolvidos, distâncias maiores vão sendo alcançadas.

     Bem, posto isso, vamos ver um pouco de todos esses conceitos na prática.
    Vou usar novamente o GNS3 para mostrar como todo esse conceito se apresenta em um switch real. infelizmente não é possível simular situações de erros de SPEED e DUPLEX, mas é possível pelo menos visualizar como eles aparecem e como podem serem alterados.
    Nossa topologia é bem simples, apenas dois switches e dois PCs. Três domínios de colisão, um domínio de broadcast.



Primeiro vamos mostrar como estão as interfaces do switch 1:
switch1#sh int status


Port    Name               Status       Vlan       Duplex Speed Type
Fa0/0   2-PC               connected    1          a-full   a-100 unknown
Fa0/1                      notconnect   1            auto    auto unknown
Fa0/2                      disabled     1            auto    auto unknown
Fa0/3                      disabled     1            auto    auto unknown
Fa0/4                      disabled     1            auto    auto unknown
Fa0/5                      disabled     1            auto    auto unknown
Fa0/6                      disabled     1            auto    auto unknown
Fa0/7                      disabled     1            auto    auto unknown
Fa0/8                      disabled     1            auto    auto unknown
Fa0/9                      disabled     1            auto    auto unknown
Fa0/10                     disabled     1            auto    auto unknown
Fa0/11                     disabled     1            auto    auto unknown
Fa0/12                     disabled     1            auto    auto unknown
Fa0/13                     disabled     1            auto    auto unknown
Fa0/14                     disabled     1            auto    auto unknown
Fa0/15  2-switch           connected    1          a-full   a-100 unknown

Agora do switch 2:

switch2#sh int status


Port    Name               Status       Vlan       Duplex Speed Type
Fa0/0   2-PC               connected    1          a-full   a-100 unknown
Fa0/1                      notconnect   1            auto    auto unknown
Fa0/2                      disabled     1            auto    auto unknown
Fa0/3                      disabled     1            auto    auto unknown
Fa0/4                      disabled     1            auto    auto unknown
Fa0/5                      disabled     1            auto    auto unknown
Fa0/6                      disabled     1            auto    auto unknown
Fa0/7                      disabled     1            auto    auto unknown
Fa0/8                      disabled     1            auto    auto unknown
Fa0/9                      disabled     1            auto    auto unknown
Fa0/10                     disabled     1            auto    auto unknown
Fa0/11                     disabled     1            auto    auto unknown
Fa0/12                     disabled     1            auto    auto unknown
Fa0/13                     disabled     1            auto    auto unknown
Fa0/14                     disabled     1            auto    auto unknown
Fa0/15  2-switch           connected    1          a-full   a-100

Vamos considerar a seguinte linha:
Port    Name               Status       Vlan       Duplex Speed Type

   Temos primeiro a identificação de cada porta, depois temos o parâmetro Name, que pode ser configurado com o comando  Description em mode de configuração de interface:
switch1(config-if)#description  2-PC

   Em seguida vem o parâmetro Status. Intensionalemente, temos três tipo de Status em nosssas interfaces:
connected  
notconnect 
disabled   


Connected :

 Significa que o switch reconhece um dispositivo conectado nessa interfaces, muito provavelmente o LED dessa interface estará verde e se comportando segundo algumas características do switch como piscando ou aceso contínuo.
  
notconnect  :
   Não há ou o switch não reconhece um dispositivo conectado nessa porta. A porta está, entretando, habilitada. Essa porta pode estar vaga, pode haver um problema no cabo que se conecta ao dispositivo ou o dispositivo pode estar desligado.

disabled:
    Nesse caso a porta está desabilitada.  ou seja, foi dado o comando "shutdown" na interface.

     Seguido do parametro status,temos o parâmetro Vlan.
nesse caso, todas as portas estão na Vlan 1, que é a VLAN nativa do switch.

  Uma outra abordagem que temos em relação as interfaces, é mostrá-las em termos de UP/DOWN, usando o comando abaixo:

Router#sh ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  up                    up
FastEthernet0/1            unassigned      YES unset  up                    down
FastEthernet0/2            unassigned      YES unset  administratively down down
FastEthernet0/3            unassigned      YES unset  administratively down down
FastEthernet0/4            unassigned      YES unset  administratively down down
FastEthernet0/5            unassigned      YES unset  administratively down down
FastEthernet0/6            unassigned      YES unset  administratively down down
FastEthernet0/7            unassigned      YES unset  administratively down down
FastEthernet0/8            unassigned      YES unset  administratively down down
FastEthernet0/9            unassigned      YES unset  administratively down down
FastEthernet0/10           unassigned      YES unset  administratively down down
FastEthernet0/11           unassigned      YES unset  administratively down down
FastEthernet0/12           unassigned      YES unset  administratively down down
FastEthernet0/13           unassigned      YES unset  administratively down down
FastEthernet0/14           unassigned      YES unset  administratively down down
FastEthernet0/15           unassigned      YES unset  up                    up
Vlan1                      unassigned      YES unset  administratively down down
 

podemos observar que interfaces cujo status seja "connected", apresetam o status UP/UP. Interfaces cujo status seja "Not Connected", apresenta o status UP/DOWN e, pot último, temos as interfaces cujo status é "Disabled",cujo status é "administratively down".

    Agora vamos focar nos parâmetros que mais nos interessa:

 Duplex  e Speed
Temos o Duplex em dois  status: a-full e auto.
Quanto ao Speed, temos todas em 100. Mas podemos passar para 10 M.

switch1(config)#int Fa0/0
switch1(config-if)#speed 10
switch1#sh int Fa0/0 status

Port    Name               Status       Vlan       Duplex Speed Type
Fa0/0   2-PC               connected    1            auto      10 unknown
 
  Obviamente, isso não é recomendado, mas existem casos em que é preciso. Recentemente eu tive que setar a interface para 10 porque o dispositivo do cliente era 10 e não conseguia subir com a interface a 100.

  Duplex a-full
     Essa configuração é alcançada quando ambas as interfaces estão em autonegotiation. A possibilidade de autonegotiation vem do padrão IEEE 802.3x, mencionado acima.
  Switches atuais possuem a capacidade de analisar o meio através do Fast Link Pulse (FLP) e deterinar a velocidade do meio.

     Com  base na velocidade do meio, o IEEE estabelece a seguinte regra:
-Se a velocidade é desconhecida, utilizar 10 Mbps e Half Duplex
-Se a velocidade é algo em torno de 10 ou 100 Mbps, usar Half Duplex
-Se a velocidade é algo em torno de 1000 Mbps, usar Full duplex

     Aqui posso dizer que temos o ponto alto do nosso artigo. Tudo que discutimos agora, ambasa o que eu gostaria de passar relacionado ao conceito de duplex e speed. Porém, essas últimas informações, trazem consequências realmente práticas para um profissonal de redes.
    Imagine o cenário onde temos nosso switch conectado a um servidor e ambos configurados a 100 Mbps Full. Tudo está perfeito até que um dia alguem restarta o servidor e ele perde a configuração de speed e duplex de sua interface.
    Consequentemente, ele irá para alguma velocidade default, que nos dias atuais, em geral é 100 Mbps.
    Ora, temos nosso switch com 100 Mbps cravado, isso significa dizer que o FLP está desativado e um servidor que acabou de ativar o seu FLP. De acordo com a determinação do IEEE acima, o servidor irá descobrir a velocidade do meio que será 100 Mbps. Ainda de acordo com o IEEE, 100 Mbps resulta  Half Duplex.
   Consequentemente haverá problemas no link.


    O mais crítico nesse tipo de situação é que ao analizar o switch, o link estará UP, e será preciso analizar parâmetros como Collision, Late Collisions e outros para tentar determiar o problema.

switch2#sh int fa 0/15
FastEthernet0/15 is up, line protocol is up
  Hardware is Fast Ethernet, address is cc01.0174.f00f (bia cc01.0174.f00f)
  Description: 2-switch
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 3 interface resets
     0 babbles, 0 late collision, 0 deferred


   Caso seja observado que esses parâmetros aprensentam valores, é recomendado entrar com o comando :
switch2#clear counters
Clear "show interface" counters on all interfaces [confirm]
switch2#

      E posteriormente continuar a observar. Caso os valores continuam incrementando, temos certamente um problema relacionado a Speed e duplex. Infelizmente o GNS3 não dá a possibilidade de forçar uma situação problema, pelo menos eu não sei, o que seria bem interessante. Mas acredito que as explicações e demonstrações do artigo, são suficiente para compreender e tratar esse tipo de problema.
Num próximo artigo, eu vou falar um pouco mais sobre MAC ADDRESS. existem muitas situações que podem ser exploradas sobre o endereçamento físico das redes Ethernet.