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.

No comments:

Post a Comment