Introdução às Redes e Protocolos TCP/IP Sessão nº3 Jorge Gomes [email protected] Mais sobre Ethernet Encapsulamento Ethernet Encapsulamento IEEE 802.2/802.3 (RFC 1042) endereço Destino (6) endereço Origem (6) tamanho (2) 802.3 MAC DSAP 0xaa (1) SSAP 0xaa (1) 802.2 LLC CNTL 0x03 (1) codigo org 0x0 (3) tipo DADOS (2) (38-1492) trailer CRC (4) 802.2 SNAP Encapsulamento Ethernet original (RFC 894) endereço Destino (6) endereço Origem (6) tipo DADOS (2) (46-1500) trailer CRC (4) • Cada frame IEEE 802.3 é precedido por um preambulo de 7 bytes seguido de um delimitador de frame com 1 byte. • Cada frame Ethernet é precedido por um preambulo de 8 bytes. Ethernet • O encapsulamento Ethernet original (RFC 894) é o mais usado. • A tamanho mínimo do payload de um pacote Ethernet é: – Ethernet original 46 bytes – IEEE 802.3 38 bytes • Se a quantidade de dados a transmitir for mais pequena são introduzidos bytes de padding adicionais. Campos de um Frame Ethernet • Tipo: identifica o protocolo de alto nível contido no campo de dados. O uso do campo tipo permite que múltiplos protocolos possam coexistir numa mesma rede Ethernet. – 0800 IP – 0805 X.25 nível 3 – 6003 DECnet Phase IV – 6004 DEC LAT – 809B AppleTalk – 80D5 IBM SNA – 8137 8138 IPX/SPX – 0BAD Banyan – 0806 ARP • Tamanho: número de bytes no campo de dados. • Existe um tamanho mínimo de frame Ethernet, de modo a garantir que há tempo suficiente para que as interfaces possam detectar colisões. • Sistemas que suportem frames Ethernet e 802.3 usam este campo para diferenciar os dois tipos de frame. Se o valor for exceder 1500 bytes é um tipo (frame Ethernet) caso contrario é um tamanho (frame IEEE 802.3) • CRC: Resultado de uma função polinomial para detecção de erros de cobre o frame desde o endereço de destino ao fim do campo de dados. Ethernet • A introdução de versões mais rápidas das redes Ethernet levou à introdução de algumas alterações: – Fast Ethernet: • Espaço entre frames reduziu-se de 9.6μseg para 0.96μseg • Mudança do método de codificação de Manchesterencoding para 4B5B • Introdução de dois novos campos: – SSD: antes do preâmbulo usado para alinhamento – ESD: no final do segmento após o checksum é usado como indicador de fim de transmissão Ethernet • A introdução de versões mais rápidas das redes Ethernet levou à introdução de algumas alterações: – Gigabit Ethernet • As colisões têm de ser possíveis de detectar antes da transmissão do ultimo bit de cada frame. Devido à grande velocidade das redes Gigabit Ethernet este principio obrigaria à redução do comprimento máximo do cabo para 10 metros. De modo a superar esta limitação foi introduzido o conceito de “Carrier Extension” que consiste em aumentar o tamanho mínimo de um frame para 512 bytes. Este aumento é conseguido introduzindo uma extensão no final do frame. • De modo a aliviar o overhead da transmissão de pequenos frames foi introduzida uma extensão designada por “Packet Bursting” que consiste na possibilidade de transmitir vários pequenos frames consecutivos sem interrupção até um máximo de 1500 bytes. Para impedir as colisões é transmitido um primeiro segmento seguido de uma sinalização. Encapsulamento Ethernet Encapsulamento Ethernet II (RFC 894) Também conhecido por encapsulamento ARPA ou DIX endereço Destino (6) endereço Origem (6) tipo DADOS trailer CRC (4) (2) (46-1500) tipo 0x0800 (2) DATAGRAMA IP (46-1500) tipo 0x0806 (2) Pedido ou Resposta ARP PAD (28) (18) tipo 0x8035 (2) Pedido ou Resposta RARP PAD (28) (18) Encapsulamento Ethernet Encapsulamento IEEE 802.2/802.3 (RFC 1042) LLC endereço Destino (6) Indica presença de um cabeçalho SNAP endereço Origem (6) O código de protocolo ou organização a zero Indica que o tipo é Ethernet tamanho (2) DSAP 0xaa (1) SSAP 0xaa (1) tipo 0x0800 (2) SNAP CNTL 0x03 (1) Org 0x0 (3) tipo DADOS (2) (38-1492) DATAGRAMA IP (38-1492) tipo 0x0806 (2) Pedido ou Resposta ARP PAD (28) (10) tipo 0x8035 (2) Pedido ou Resposta RARP PAD (28) (10) trailer CRC (4) Encapsulamento Ethernet endereço Destino (6) endereço Destino (6) endereço Origem (6) endereço Origem (6) tipo DADOS (2) (46-1500) tamanho (2) DSAP 0xaa (1) SSAP 0xaa (1) CNTL 0x03 (1) Org 0x0 (3) trailer CRC (4) tipo DADOS (2) (38-1492) trailer CRC (4) • Dois tipos de frame ?!?!? – O campo tipo e o campo tamanho ocupam o mesmo lugar nos dois tipos de frame ?!?!? – Como é que se distinguem os dois tipos de frames ? • Por convenção: – O menor valor possível em ETHERNET para o tipo é 0x0600 – O maior tamanho de frame standard possível é 0x05DC • Logo não há confusão e é possível ter os dois tipos de encapsulamento na mesma rede física. Encapsulamento Ethernet endereço Destino (6) endereço Origem (6) tipo DADOS (2) (46-1500) endereço Destino (6) endereço Origem (6) tipo 0x8870 (2) DSAP 0xaa (1) SSAP 0xaa (1) CNTL 0x03 (1) endereço Destino (6) endereço Origem (6) tamanho DSAP 0xaa (1) SSAP 0xaa (1) CNTL 0x03 (1) (2) trailer CRC (4) DADOS trailer CRC (4) (43-?) código Org (3) tipo DADOS (2) (38-1492) trailer CRC (4) • Jumbo frames: – Suporte para frames maiores que 1500 bytes – Não é suportado pela IEEE – Baseia-se num draft do IETF (Extended Ethernet Frame Size Support) • Implementação: – Usar um frame ETHERNET (RFC 894) – Usar o tipo de dados 0x8870 para indicar que é um jumbo frame – Usar campos IEEE802.3 DSAP, SSAP e CNTL para especificar os dados/protocolo – Os campos IEEE802.3 de código, tipo e a informação sobre tamanho estão ausentes Encapsulamento Ethernet • Existe uma terceira forma de encapsulamento Ethernet designada “Trailer Encapsulation”. – Consiste em colocar à cabeça os dados e no fim o cabeçalho IP e TCP. – Este tipo de encapsulamento foi desenvolvido para ser utilizado em sistemas UNIX BSD baseados em hardware VAX. – Ao alinhar os dados no inicio do pacote podia-se mapear os dados numa pagina física. – Sempre que fosse necessário mover os dados era apenas necessário manipular a tabela de paginas do kernel. – Esta forma de encapsulamento é raramente usada. – O tipo de encapsulamento trailer era negociado entre sistemas recorrendo a uma extensão do protocolo ARP. Interfaces Ethernet Auto negociação • A norma 100baseTX introduziu a auto negociação • Na norma 1000BaseT a auto negociação é obrigatória: – Escolha do clock-master – Ainda assim por vezes é necessário fixar alguns parâmetros • Auto negociação: – – – – Velocidade: 10Mbits, 100Mbits, 1000Mbits Full Duplex / Half Duplex Clock master (quem é master e quem é slave) Flow control (TX sim ou não, RX sim ou não) Auto-negociação • Processo através do qual duas interfaces Ethernet interligadas escolhem parâmetros de comunicação comuns: – Aplicável às ligações UTP – Ligações em fibra não possuem auto-negociação – A auto-negociação é obrigatória em 1000base-T (IEEE 802.3ab) e opcional nas especificações anteriores • A auto-negociação é usada por dispositivos que suportam múltiplas: – velocidades, modos duplex, controlo de fluxo, fontes de clock • Cada dispositivo anuncias as suas capacidades • Os dispositivos escolhem o melhor modo: 1. 2. 3. Maior velocidade possível Duplex Controle de fluxo Auto negociação • Atenção se for preciso fixar o modo duplex este deve ser fixado de ambos os lados !!! • Quando a velocidade é forçada manualmente a 10 ou 100 deixa de haver negociação: – Sem auto-configuração a velocidade de uma interface é detectada por analise do sinal – Sem auto-configuração não é possível detectar o modo duplex de uma interface – Logo se um dos lados não for capaz de negociação o outro lado assume sempre por defeito o modo half duplex – Um “mismatch” de duplex resulta em desempenho muito baixo Asneira !!! Sem auto-negociação Configurado manualmente a 100Mbps Configurado manualmente a Full-duplex Capaz de auto-negociação Detecta 100Mbps por analise do sinal Assume half-duplex Auto-negociação • Se uma interface estiver em auto-negociação e a outra não – Auto-configuração pode estar inibida 10Base-T, 100Base-TX – Interface pode não possuir auto-negociação 10Base-T, 100Base-TX • A primeira versão da norma de auto-negociação IEEE802.3u publicada em 1995 não era clara: – Conduziu a muitos problemas de interoperabilidade que resultavam em falhas de auto-negociação – Só em 1998 foi publicada nova norma corrigida – Interfaces antigas de fabricantes diferentes podem ter problemas de auto-negociação Auto-negociação • Quando uma interface TP não está a transmitir frames são transmitidos impulsos eléctricos: – Para determinar a presença de link (1 impulso de 100ns a cada 16ms) – Para auto-negociação (33 impulsos de 100ns a cada 16ms) FLP • Os 33 impulsos possuem estrutura: – Os primeiros 17 impulsos servem para sincronizar o clock – Os últimos 16 impulsos representam bits Auto-negociação • Codificado neste bits são enviadas as capacidades – Em interfaces 100Base-TX bastam 16 bits para enviar as capacidades – Em interfaces 1000Base-T são enviadas 3 “páginas” de 16 bits • Hierarquia de selecção de velocidades, duplex e tecnologia: – – – – – – – – – 1000BASE-T full duplex 1000BASE-T half duplex 100BASE-T2 full duplex 100BASE-TX full duplex 100BASE-T2 half duplex 100BASE-T4 100BASE-TX half duplex 10BASE-T full duplex 10BASE-T half duplex Auto-negociação • Em 1000Base-T não é possível desactivar a autonegociação: – Mas pode-se reduzir os modos que são anunciados a um único modo ! • Quando se configura manualmente a 10 ou 100: – Deve-se configurar a velocidade e modo duplex – Se uma interface estiver manual e a outra em auto-negociação o modo duplex da manual tem de estar em half • A auto-negociação é um processo continuo está sempre a decorrer o que é excelente: – Porque pode falhar a qualquer momento … • Idealmente a auto-negociação só deve ser usada: – Nas componentes de acesso de uma rede – O núcleo da rede deve estar configurado manualmente Controle de Fluxo • Para evitar a congestão em redes Ethernet comutadas full duplex usa-se o controlo de fluxo (flow control). – Parte da norma 802.3x • O controlo de fluxo permite enviar notificações explicitas de congestão: – De uma estação para um comutador – De um comutador para uma estação – Entre comutadores • Perante uma notificação de congestão: – A interface que a recebe deve suspender a transmissão durante um período de tempo Controle de Fluxo • Os frames de controlo de fluxo (pause frames): – Possuem: • MAC type 0x8808 • Control opcode de 0x0001 – São enviados para: • endereço de multicast 01-80-C2-00-00-01 • ou para o Endereço MAC do destinatário – O scope deste multicast é limitado ao dispositivo que o recebe • Não pode ser retransmitido para outros dispositivos (bridge group address) Cabeçalho Ethernet Pacote de MAC control Controle de Fluxo • Os frames de controlo de fluxo (pause frames): – Cada frame de pausa indica: • Intervalo de tempo durante o qual o transmissor deve parar • Se o transmissor estiver em pausa e chegar um frame de PAUSE com intervalo zero a transmissão continua imediatamente – O intervalo de tempo: • • • • É codificado num campo de 2 bytes Varia entre 0 e 65535 unidades chamadas “pause quanta” Zero quer dizer cancelar a PAUSA Cada unidade (pause quanta) corresponde à duração de tempo necessária para a transmissão de 512 bits por parte da interface que recebe Controle de Fluxo • É preciso ter atenção … – O controle de fluxo funciona ao nível L2 – Ao nível das interfaces de rede – Não distingue aplicações ou streams • O ideal é que sejam os protocolos L3 a lidar com a congestão • Os switches não devem enviar frames de pause !!! PAUSE SWITCH 10GbE Bottleneck 1GbE Interfaces em Linux • Em RedHat Linux: – /etc/sysconfig/network-scripts/ifcfg-eth0 • Configuração típica: DEVICE=eth0 HWADDR=00:17:39:7E:A0:67 ONBOOT=yes TYPE=Ethernet BOOTPROTO=none IPADDR=10.153.1.1 NETMASK=255.0.0.0 NETWORK=10.0.0.0 BROADCAST=10.255.255.255 • Iniciar e parar uma interface configurada em ifcfg-eth0: /sbin/ifup eth0 /sbin/ifdown eth0 Interfaces em Linux • Os drivers são definidos em /etc/modprobe.conf $ cat /etc/modprobe.conf alias eth0 tg3 alias eth1 tg3 alias eth2 netxen_nic alias eth3 netxen_nic alias net-pf-10 off alias ipv6 off blacklist ipv6 … Interfaces em Linux • Pode-se usar manualmente o comando ifconfig para configurar uma interface: /sbin/ifconfig eth0 10.153.1.1 netmask 255.0.0.0 up • A configuração feita com ifconfig não é persistente • Desaparece no reboot ou se a interface for parada e os módulos removidos • Parar a interface: ifconfig eth0 down Interfaces em Linux • O comando ifconfig pode ser usado para obter informação sobre as interfaces: eth0 Link encap:Ethernet HWaddr 00:17:31:7F:A8:97 inet addr:10.50.1.1 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::217:31ff:fe7f:a897/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:104987826 errors:0 dropped:0 overruns:0 frame:0 TX packets:96461379 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30918485304 (28.7 GiB) TX bytes:57575886314 (53.6 GiB) Interrupt:23 Base address:0x2000 Interfaces em Linux • Alguma informação útil: eth0 Link encap:Ethernet HWaddr 00:17:31:7F:A8:97 … RX packets:104987826 errors:0 dropped:0 overruns:0 frame:0 TX packets:96461379 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 • • • • RX errors: Número de pacotes recebidos com erros RX dropped: Falta de espaço nos buffers do sistema operativo para receber os pacotes que chegam. Falta de desempenho do sistema para processar os pacotes que chegam ou buffers demasiado pequenos (net.core.netdev_max_backlog). RX overruns: Falta de espaço nos buffers de hardware da interface para receber os pacotes que chegam RX frame: Pacotes recebidos corrompidos pode resultar de colisões ou de problemas na interface ethernet ou nos cabos Interfaces em Linux • Alguma informação útil: eth0 Link encap:Ethernet HWaddr 00:17:31:7F:A8:97 … RX packets:104987826 errors:0 dropped:0 overruns:0 frame:0 TX packets:96461379 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 • • • • • TX errors: Número de pacotes recebidos com erros TX dropped: Falta de espaço nos buffers do sistema operativo, falta de capacidade para processar a fila TX overruns: Falta de espaço nos buffers de hardware TX carrier: Quebra de conectividade na interface, corte no cabo de rede TX collisions: Colisões durante tentativas de transmissão. Não deve acontecer em interface configuradas como full-duplex. Interfaces em Linux • O comando ethtool pode alterar ou mostrar a configuração de uma interface sob o ponto de vista do protocolo Ethernet $ ethtool eth0 Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: external Auto-negotiation: on Supports Wake-on: g Wake-on: d Link detected: yes Interfaces em Linux • Identificar uma interface fisicamente fazendo-a piscar durante o numero de segundos especificados: ethtool –p eth0 17 • Informação sobre o bus, e versões de driver e firmware da interface: ethtool –i eth0 • Testar uma interface efectuando todos os testes com perda de conectividade: ethtool –t eth0 offline • Testes limitados sem perda de conectividade: ethtool –t eth0 online Interfaces em Linux • Forçar mudança de velocidade e modo duplex ethtool –s eth0 speed 100 duplex half ethtool –s eth0 speed 1000 duplex full • Activar/Desactivar autonegociação ethtool –s eth0 autoneg on ethtool –s eth0 autoneg off • Reiniciar auto-negociação ethtool –r eth0 (100Base-TX) (100Base-TX) Interfaces em Linux • Mostrar o estado do controlo de fluxo (pause) ethtool –a eth0 • Alterar o controlo de fluxo (pause) ethtool –A eth0 autoneg off rx off tx off ethtool –A eth0 autoneg on rx on tx on • Mostrar alocação de descritores dos buffers de RX/TX ethtool –g eth0 • Alterar alocação de descritores rx, tx, tx-mini, rx-jumbo ethtool –G eth0 rx 1024 tx 512 ethtool –G eth0 rx-jumbo 2048 rx-mini 256 Interfaces em Linux • Em interfaces muito rápidas um dos problemas é a quantidade de interrupções e transferências nos buses para atender a chegada dos pacotes – Gigabit Ethernet – Ten Gigabit Ethernet • Algumas interfaces suportam coalescência permitindo acumular pacotes e efectuar uma única interrupção e transferência para todo o conjunto – Aplica-se tanto na recepção como na transmissão – A coalescência aumenta os atrasos – Diminui o consumo de CPU • Para obter a configuração da coalescência em Linux: ethtool –c eth0 Interfaces em Linux • • • • • • • • • • • • • • • • • • • • • • • $ ethtool -c eth3 Coalesce parameters for eth3: Adaptive RX: off TX: off stats-block-usecs: 0 sample-interval: 0 pkt-rate-low: 0 pkt-rate-high: 0 rx-usecs: 3 rx-frames: 64 rx-usecs-irq: 0 rx-frames-irq: 0 tx-usecs: 0 tx-frames: 0 tx-usecs-irq: 0 tx-frames-irq: 0 rx-usecs-low: 0 rx-frame-low: 0 tx-usecs-low: 0 tx-frame-low: 0 rx-usecs-high: 0 rx-frame-high: 0 tx-usecs-high: 0 tx-frame-high: 0 Interfaces em Linux • rx-usecs: máximo de microsegundos que um pacote pode ser atrasado (atraso de IRQ). Se for 0 apenas rx-max-frames é usado. • rx-usecs-irq: o mesmo que acima mas aplica-se caso no momento da recepção um IRQ esteja a ser atendido • rx-max-frames: máximo numero de pacotes que a entrega do IRQ pode ser atrasada. Tem de ser diferente de 0 se rx-usecs=0. • rx-max-frames-irq: o mesmo que acima mas aplica-se caso no momento da recepção um IRQ esteja a ser atendido • tx-usecs: máximo de ms que um IRQ pode ser atrasado após transmissão de um pacote. Se for 0 apenas tx-max-frames é usado. • tx-usecs-irq: o mesmo que acima mas aplica-se caso no momento da recepção um IRQ esteja a ser atendido • tx-max-frames: máximo numero de pacotes transmitidos que um IRQ pode ser atrasado. Tem de ser diferente de 0 se tx-usecs=0. • tx-max-frames-irq: o mesmo que acima mas aplica-se caso no momento da transmissão um IRQ esteja a ser atendido Interfaces em Linux • adaptative-rx: algoritmo para melhorar a latência durante baixos ritmos e melhorar o desempenho durante elevados ritmos • adaptative-tx: o mesmo para a transmissão • sample-interval: numero de segundos de amostragem para os algoritmos adaptativos. Tem de ser diferente de zero. • pkt-rate-low: abaixo deste valor são usados os seguintes parametros – rx-usecs-low, tx-usecs-low – rx-max-frames-low, tx-max-frames-low • pkt-rate-high: acima deste valor são usados os seguintes parametros – rx-usecs-high, tx-usecs-high – rx-max-frames-high, tx-max-frames-high Interfaces em Linux • Loopback interface (lo) • É uma interface lógica (não física) que permite comunicação dentro do próprio sistema • A comunicação através do loopback é mais rápida: – Não necessita de checksums – Permite MTUs mais elevados $ ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:67221 errors:0 dropped:0 overruns:0 frame:0 TX packets:67221 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4891691 (4.6 MiB) TX bytes:4891691 (4.6 MiB) Interfaces CISCO • O comando para mostrar o estado de uma interface é o show interfaces • Sem argumentos mostra todas as interfaces • Pode dar-se como argumento o nome de uma interface show interface GigabitEthernet 2/48 Tipo de interface • Normalmente abrevia-se sh int gi2/48 Modulo/slot ou controlador Número da Interface no modulo ou controlador gtlip# show interface GigabitEthernet2/48 GigabitEthernet2/48 is up, line protocol is up (connected) Hardware is c7600 1Gb 802.3, address is 0021.55e0.b1bf (bia 0021.55e0.b1bf) Description: LNNET02 MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 1000Mb/s input flow-control is off, output flow-control is off Clock mode is auto ARP type: ARPA, ARP Timeout 04:00:00 Last input never, output 00:00:14, output hang never Last clearing of "show interface" counters never Input queue: 0/2000/71617/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 34000 bits/sec, 14 packets/sec 5 minute output rate 18000 bits/sec, 16 packets/sec 7410623822 packets input, 10505908106275 bytes, 0 no buffer Received 2916 broadcasts (63 multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 4 frame, 43 overrun, 0 ignored 0 watchdog, 0 multicast, 0 pause input 0 input packets with dribble condition detected 2708426665 packets output, 329568276026 bytes, 0 underruns 0 output errors, 0 collisions, 3 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier, 0 pause output 0 output buffer failures, 0 output buffers swapped out Interfaces CISCO gtlip# show interface GigabitEthernet2/48 GigabitEthernet2/48 is up, line protocol is up (connected) UP ADMINISTRATIVELY DOWN UP DOWN MAC ADDRESS EM USO MAC ADDRESS BURNED IN Hardware is c7600 1Gb 802.3, address is 0021.55e0.b1bf (bia 0021.55e0.b1bf) Description: LNNET02 MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 FIABILIDADE NOS ÚLTIMOS 5 MINUTOS UTILIZAÇÃO/CARGA NOS ÚLTIMOS 5 MINUTOS Interfaces CISCO Encapsulation ARPA, loopback not set ENCAPSULAMENTO ETHERNET RFC 894 (ARPA) vs IEEE CADA INTERFACE ENVIA MENSAGENS DE KEEPALIVE PARA SI PRÓPRIA PARA VERIFICAR SE FUNCIONA BEM Keepalive set (10 sec) Full-duplex, 1000Mb/s input flow-control is off, output flow-control is off Clock mode is auto ARP type: ARPA, ARP Timeout 04:00:00 Last input never, output 00:00:14, output hang never PACOTES FAST SWITCHED NÃO CONTAM DUPLEX e VELOCIDADE CONTROLO DE FLUXO DETERMINAÇÃO DO CLOCK NEAR END / FAR END ÚLTIMO RESET AUTOMATICO DEVIDO UMA TRANSMISSÃO QUE DEMOROU DEMASIADO Last clearing of "show interface" counters never QUANDO FOI FEITO O ÚLTIMO RESET DOS CONTADORES ESTATISTICAS DE UTILIZAÇÃO Interfaces CISCO Input queue: 0/2000/71617/0 (size/max/drops/flushes); Total output drops: 0 TAMANHO ACTUAL CAPACIDADE DROPS FILA CHEIA Queueing strategy: fifo Output queue: 0/40 (size/max) SELECTIVE PACKET DISCARDS (SPD) DROPS PARA EVITAR PERDA DE PACOTES MAIS IMPORTANTES POR FALTA DE ESPAÇO (CONGESTÃO) 5 minute input rate 34000 bits/sec, 14 packets/sec 5 minute output rate 18000 bits/sec, 16 packets/sec 7410623822 packets input, 10505908106275 bytes, 0 no buffer PACOTES SEM ERROS BYTES NOS PACOTES SEM ERROS INCLUI CABEÇALHOS PACOTES DROPPED POR FALTA DE BUFFERS Interfaces CISCO Received 2916 broadcasts (63 multicasts) 0 runts, 0 giants, 0 throttles RUNTS: drops de frames demasiado pequenos GIANTS: drops de frames demasiado grandes THROTTLES: porta desabilitada por falta de buffers ou capacidade de processamento 0 input errors, 0 CRC, 4 frame, 43 overrun, 0 ignored ERRORS: inclui runts, giants, no buffer, CRC, frame, overrun, and ignored counts os frames podem ter mais de um tipo de erro CRC: erros de checksum FRAME:numero de octetos errados OVERRUN: falha na copia para um buffer de hardware por data rate demasiado elevado IGNORED: frames ignorados porque os buffers internos da interface estavam esacassos 0 watchdog, 0 multicast, 0 pause input WATCHDOG: o input watchdog timer dispara quando um pacote maior que 2048 está a ser recebido PAUSE: frames de controlo de fluxo, estamos a transmitir demasiado rápido 0 input packets with dribble condition detected DRIBBLE: o frame é ligeiramente maior do que devia mas ainda assim é aceite Interfaces CISCO 2708426665 packets output, 329568276026 bytes, 0 underruns 0 output errors, 0 collisions, 3 interface resets ERRORS total de erros de transmissão os frames podem ter mais de um tipo de erro UNDERRUNS: a interface de transmissão é mais rápida que o router COLLISIONS: colisões ethernet RESETS: resets da interface por exemplo quando uma transmissão demora demasiado ou por perda de link 0 babbles, 0 late collision, 0 deferred BABLES: transmissão de um frame demasiado longo DEFERRED: transmissão adiada quando ia começar porque outra transmissão começou LATE COLLISIONS: colisão após envio do preamblo 0 lost carrier, 0 no carrier, 0 pause output LOST CARRIER: perda de portadora durante a transmissão NO CARRIER: a portadora não estava presente aquando do inicio da transmissão PAUSE: frames de controlo de fluxo, estamos a pedir uma pausa 0 output buffer failures, 0 output buffers swapped out Quando não há espaço nos buffers de transmissão da interface Os swaps ocorrem quando à copia de buffers de transmissão para a memoria do router em caso de saturação dos buffers de transmissão Interfaces CISCO • Para ver a configuração activa: show running-config • Para ver a configuração que está guardada: show config • Extracto de um show config referente a uma interface: interface GigabitEthernet2/48 description MAIN STORAGE SERVER switchport switchport access vlan 51 speed 1000 duplex full Interfaces CISCO • Para mudar a configuração activa usar o comando: config • Exemplo de sessão: gtlip#config t Enter configuration commands, one per line. End with CNTL/Z. gtlip(config)#int gi 2/19 gtlip(config-if)#switchport gtlip(config-if)#descr TEST gtlip(config-if)#no switchport gtlip(config-if)#no descr gtlip(config-if)#no shut gtlip(config-if)#shut Interfaces Force10 • Os comandos são extremamente semelhantes aos do CISCO IOS • Para mostrar o estado de uma interface: show interface GigabitEthernet 3/7 show interface gi3/7 swlip01#sh int Te1/4 TenGigabitEthernet 1/4 is up, line protocol is up Hardware is Force10Eth, address is 00:01:e8:56:02:20 Current address is 00:01:e8:56:02:20 Pluggable media present, XFP type is 10GBASE-SR Medium is MultiRate, Wavelength is 850.00nm XFP receive power reading is -2.6059 Interface index is 68487169 Internet address is not set MTU 1554 bytes, IP MTU 1500 bytes LineSpeed 10000 Mbit ARP type: ARPA, ARP Timeout 04:00:00 Last clearing of "show interface" counters 32w5d13h Queueing strategy: fifo Input Statistics: 67686406437 packets, 94546995614357 bytes 194537009 64-byte pkts, 4933673507 over 64-byte pkts, 88908513 over 127-byte pkts 238772903 over 255-byte pkts, 428776132 over 511-byte pkts, 61801738369 over 1023-byte pkts 9643737 Multicasts, 8915 Broadcasts 4 runts, 0 giants, 9642968 throttles 7 CRC, 0 overrun, 7 discarded Output Statistics: 40995110798 packets, 25539944685602 bytes, 0 underruns 502644891 64-byte pkts, 24524523707 over 64-byte pkts, 85083781 over 127-byte pkts 166263970 over 255-byte pkts, 142506658 over 511-byte pkts, 15574087791 over 1023-byte pkts 319729304 Multicasts, 151876492 Broadcasts, 49113439594 Unicasts 0 throttles, 0 discarded, 0 collisions Rate info (interval 299 seconds): Input 120.00 Mbits/sec, 11776 packets/sec, 1.21% of line-rate Output 41.00 Mbits/sec, 4227 packets/sec, 0.42% of line-rate Time since last interface status change: 11w5d8h swlip01>sh int status Port Description Te 0/0 Te 0/1 Ligacao ao Te 0/2 Uplink swli Te 0/3 Uplink swli Te 1/0 se006 Te 1/1 gftp03 (VLa Te 1/2 gftp04 (VLa Te 1/3 se005 Te 1/4 se007 Te 1/5 se002 Te 1/6 se003 Te 1/7 se004 Te 2/0 stlip03 Te 2/1 stlip02 Te 2/2 se008 Te 2/3 se011 Te 2/4 Te 2/5 Te 2/6 Te 2/7 Gi 3/0 wn043 Gi 3/1 wn044 Gi 3/2 wn045 Status Down Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up Down Down Down Down Up Up Up Speed Duplex 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 10000 Mbit Auto 1000 Mbit Full 1000 Mbit Full 1000 Mbit Full Vlan -31 1,7,10 1,10 8 9 9 8 8 8 8 8 8 10 8 10 ----8 8 8 swlip01#sho hardware int gi3/0 phy MII Control Register SpeedSelection: 1Gbps AutoNeg: ON Loopback: False PowerDown: False Isolate: False DuplexMode: Full MII Status Register : AutoNegComplete: True RemoteFault: False LinkStatus: Up JabberDetect: False AutoNegotiation Advertise : 100MegFullDplx: False 100MegHalfDplx: False 10MegFullDplx: False 10MegHalfDplx: False Asym Pause: False Sym Pause: False AutoNegotiation Remote Partner's Ability : 100MegFullDplx: True 100MegHalfDplx: True 10MegFullDplx: True 10MegHalfDplx: True Asym Pause: True Sym Pause: True AutoNegotiation Expansion : ParallelDetectionFault: False 1000Base-T Control Register: Master/Slave Mode: Auto 1000MegFullDplx: True 1000MegHalfDplx: True 1000Base-T Status Register Master/Slave Fault: No Master/Slave: Master Local RX OK: True Remote RX OK: True Link Partner 1000MegFullDplx: True Link Partner 1000MegHalfDplx: False Idle Error Count: 0 1000Base-T/100Base-TX/10Base-T PHY Extnd Control Register Automatic MDI Crossover Mode: Enable 1000Base-T/100Base-TX/10Base-T PHY Extnd Status Register Automatic MDI Crossover State: Normal swlip01>sh int description Interface OK TenGigabitEthernet 0/0 NO TenGigabitEthernet 0/1 YES TenGigabitEthernet 0/2 YES TenGigabitEthernet 0/3 YES TenGigabitEthernet 1/0 YES TenGigabitEthernet 1/1 YES TenGigabitEthernet 1/2 YES TenGigabitEthernet 1/3 YES TenGigabitEthernet 1/4 YES TenGigabitEthernet 1/5 YES TenGigabitEthernet 1/6 YES TenGigabitEthernet 1/7 YES TenGigabitEthernet 2/0 YES TenGigabitEthernet 2/1 YES TenGigabitEthernet 2/2 YES TenGigabitEthernet 2/3 YES TenGigabitEthernet 2/4 NO TenGigabitEthernet 2/5 NO TenGigabitEthernet 2/6 NO TenGigabitEthernet 2/7 NO GigabitEthernet 3/0 YES GigabitEthernet 3/1 YES GigabitEthernet 3/2 YES GigabitEthernet 3/3 YES Status admin down up up up up up up up up up up up up up up up admin down admin down admin down admin down up up up up Protocol down up up up up up up up up up up up up up up up down down down down up up up up Description Ligacao ao gtlip Uplink swlip02 (1 Andar) Uplink swlip06 (R/C) se006 gftp03 (VLan 9) gftp04 (VLan 8) se005 se007 se002 se003 se004 stlip03 stlip02 se008 se011 wn043 wn044 wn045 wn046 swlip01>sh running-config ! interface TenGigabitEthernet 0/2 description Uplink swlip02 (1 Andar) no ip address switchport no shutdown ! interface TenGigabitEthernet 2/6 no ip address shutdown ! interface GigabitEthernet 3/0 description wn043 no ip address switchport speed 1000 no shutdown Interfaces e Cabos • Os Force10 e CISCO suportam teste das ligações UTP através de Time Domain Reflectometry (TDR) – A Interface envia um sinal – A interface examina a reflexão do sinal • Atenção: os testes de TDR são intrusivos e não devem ser realizados em links que estão a funcionar – O link falha durante o teste • Para efectuar um teste: tdr-cable-test GigabitEthernet 3/7 show tdr GigabitEthernet 3/7 Time since last test: 00:00:09 Pair A, Length: 7 (+/- 1) meters, Status: Open Pair B, Length: 8 (+/- 1) meters, Status: Open Pair C, Length: 8 (+/- 1) meters, Status: Open Pair D, Length: 8 (+/- 1) meters, Status: Open Interfaces e Cabos • Num equipamento CISCO: test cable-diagnostics tdr int gi 2/34 TDR test started on interface Gi2/34 A TDR test can take a few seconds to run on an interface Use 'show cable-diagnostics tdr' to read the TDR results. • Para ver o resultado do teste: show cable-diagn tdr int gi 2/34 TDR test last run on: March 21 23:30:16 Interface Speed Pair Cable length --------- ----- ---- ------------------Gi2/34 auto 1-2 N/A 3-6 N/A 4-5 N/A 7-8 N/A Distance to fault ------------------1 +/- 2 m 0 +/- 2 m 1 +/- 2 m 1 +/- 2 m Channel ------Invalid Invalid Invalid Invalid Pair status -----------Open Open Open Open Interfaces e Cabos • Num equipamento CISCO para ver o estado de um transceiver sh int ten1/1 trans Transceiver monitoring is disabled for all interfaces. ITU Channel not available (Wavelength not available), Transceiver is internally calibrated. If device is externally calibrated, only calibrated values are printed. ++ : high alarm, + : high warning, - : low warning, -- : low alarm. NA or N/A: not applicable, Tx: transmit, Rx: receive. mA: milliamperes, dBm: decibels (milliwatts). Port ------Te1/1 Temperature (Celsius) ----------41.8 Voltage (Volts) ------0.00 Current (mA) -------42.1 -- Optical Tx Power (dBm) --------1.5 Optical Rx Power (dBm) --------6.0 Interfaces e Cabos • Num equipamento CISCO para ver o estado do flow control de uma interface sh int ten1/1 trans Port Send FlowControl admin oper --------- -------- -------Te1/1 off off Receive FlowControl admin oper -------- -------off off RxPause TxPause ------- ------0 0 Interfaces e Cabos • Num CISCO para ver as capacidades de uma interface sh int ten1/1 capabilities TenGigabitEthernet1/1 Model: WS-X6704-10GE Type: 10Gbase-LR Speed: 10000 Duplex: full Trunk encap. type: 802.1Q,ISL Trunk mode: on,off,desirable,nonegotiate Channel: yes Broadcast suppression: percentage(0-100) Flowcontrol: rx-(off,on),tx-(off,on) Membership: static Fast Start: yes QOS scheduling: rx-(1q8t), tx-(1p7q8t) CoS rewrite: yes ToS rewrite: yes Inline power: no SPAN: source/destination UDLD yes Link Debounce: yes Link Debounce Time: yes Ports on ASIC: 1 Port-Security: yes Power Over Ethernet Power Over Ethernet (PoE) • Tecnologia para passar alimentação eléctrica através de cabos Ethernet UTP: – Baixa voltagem e intensidade – Alimentação de dispositivos de rede – telefones IP, Wireless AP, camaras, pequenos switches de rede, pequenos sistemas • Diversas implementações: – Proprietárias CISCO, Nortel, 3com, etc – Normas: IEEE802.3af (PoE), IEEE802.3at (PoE+) • A alimentação pode ser introduzida nos cabos (PSE): – Directamente pelos switches de rede (têm de estar preparados) – Através de injectores • Os dispositivos a alimentar (PD): – Podem eles próprios extrair a alimentação – Podem precisar de um extractor Power Over Ethernet (PoE) PINS on Switch 10/100 DC on Spares 10/100 Mixed DC & Data 1000 Gigabit DC & Bi-Data Pin 1 Rx + Rx + DC + TxRx A + DC + Pin 2 Rx - Rx - DC + TxRx A - DC + Pin 3 Tx + Tx + DC - TxRx B + DC - Pin 4 DC + unused TxRx C + Pin 5 DC + unused TxRx C - Pin 6 Tx - Pin 7 DC - unused TxRx D + Pin 8 DC - unused TxRx D - Tx - DC - TxRx B - • Alimentação através da técnica de phantom power. • Mesma técnica usada para alimentar microfones. DC - Power Over Ethernet (PoE) • Vantagens: – Não é necessário um transformador para cada dispositivo de rede – Simplifica a cablagem – Não requer tomada de 240V junto ao equipamento – Instalação mais rápida – Os transformadores destes pequenos dispositivos são frequentemente de baixa qualidade – Gestão remota da alimentação • Características: – 802.3af: • 48V DC nominal, 10~350mA, 0.44~12.95W após perdas, cat3 ou cat5e • 4x níveis de potencia seleccionáveis através de medição de resistência – 802.3at (norma muito recente Setembro de 2009) • 48V DC nominal, 0.1~25.5W após perdas, cat3 ou cat5e • 5x níveis de potencia seleccionáveis através de medição de resistência ou através do protocolo Ethernet layer 2 LLDP (Link Layer Discovery Protocol) Link Layer Discovery Protocol Link Layer Discovery Protocol • O LLDP é um protocolo layer 2 usado para anunciar e identificar dispositivos ligados a uma rede: – Similar aos protocolos proprietários: Cisco DP, Extreme DP, Nortel DP, LLTD (MS Link Layer Topology Discovery) – Norma IEEE802.1AB de 2005 • Objectivos principais: – Identificar a topologia da rede – Permitir identificar problemas de configuração entre dispositivos especialmente ao nível das VLANs • Funcionamento: – – – – – – LLDP L2 frames são enviados em todas as portas/VLANs suportadas Os frames são enviados periodicamente Não são enviadas respostas aos frames A estações que recebem os frames armazenam a sua informação A informação fica disponivel para consulta via SNMP Aplicações SNMP podem colher a informação, reconstruir a topologia e detectar problemas de configuração Link Layer Discovery Protocol • Um agente LLDP pode funcionar : – Como receptor – Como transmissor – Como receptor e transmissor • Um frame LLDP – Usa como destino o endereço MAC de multicast 01:80:c2:00:00:0e – Tem como tipo 88-CC • A informação transmitida inclui: – – – – – – – – – System name and description Port name and description VLAN name IP management address System capabilities (switching, routing, etc.) MAC/PHY information MDI power Link aggregation Maximum frame size Link Layer Discovery Protocol • • • • • • • LLDP-MEP Media Discovery Extension Extensão/melhoramento do LLDP Norma: ANSI/TIA-1057 (Telecom Industry Association) Descoberta de politicas (prioridades L2, Diffserv) Automação dos dispositivos Power Over Ethernet (PoE) Melhor suporte para telefones IP Levantamento dos dispositivos ligados à rede: – – – – Fabricante, modelo Software e versão, Hardware e versão, Firmware e versão Número de serie, Número de inventário Etc Wake on Lan Wake on Lan (WoL) • Norma Ethernet • Permite acordar sistemas remotos através do envio de um pacote pela rede: – – – – Primeiro o sistema tem de ser ligado e o Wake on Lan activado Só depois se pode desligar o sistema (shutdown) O sistema fica com a Interface de rede activa (ver leds) O mediante a recepção de um determinado pacote (Magic Packet) a placa de rede pode efectuar o arranque do sistema Wake on Lan (WoL) • Um magic packet: – É um frame Ethernet que em qualquer parte do payload tem a sequencia FF FF FF FF FF FF seguida de 16 repetições do MAC address do sistema a acordar – É frequentemente enviado como um broadcast – É frequentemente enviado como um datagrama UDP para o porto 0, 7 ou 9 – A vantagem do UDP é que o Magic Packet pode ser routed – Mas pode ser enviado dentro de um frame Layer 2 sem mais – Algumas implementações suportam uma password que de ser adicionada à sequência do payload – A Intel possui uma implementação que suporta encriptação TLS Wake on Lan (WoL) • Para activar o WoL em Linux: ethtool -s eth1 wol g shutdown –h now • Para acordar um sistema remoto em Linux: /sbin/ether-wake AA:B1:72:F3:FC:D5 Envia um frame Ethernet tipo 0x0842 para AA:B1:72:F3:FC:D5 • Existem muitas outras implementações de clientes WoL Agregação Agregação • Agregação de interfaces – link aggregation ou channel bonding • Estabelecer um canal de comunicação através da união de múltiplas interfaces de rede A SWITCH • Criar uma interface virtual em A que agregue as 4 interfaces de rede como se fossem uma única • Aumento de largura de banda • Redundância Agregação • Agregação de interfaces (link aggregation) • Muito usado como forma de aumentar a largura de banda entre comutadores Ethernet a baixo custo SWITCH SWITCH • Ao nível dos switches existem diversos protocolos de agregação proprietários: • • Etherchannel (CISCO), MLT e SMLT (Nortel), etc Problemas de interoperabilidade Agregação LACP • Link Aggregation Control Protocol • Protocolo de agregação IEEE801.AX – Também conhecido pelo nome do grupo de trabalho da IEEE que o criou designado por IEEE802.3ad – Norma disponível em quase todos os equipamentos modernos • Funcionamento: – Os equipamentos enviam frames especiais LACPDUs quando o outro extremo recebe os frames sabe que pode usar a ligação para agregação – O envio de frames permite detectar falhas na ligação – Existem dois modos de funcionamento activo e passivo • ACTIVO envia frames LACPDU, ambos os extremos podem ser activos • PASSIVO só envia frames LACPDU quando detecta a recepção Agregação LACP • Portas: – Todas as portas devem ter a mesma configuração full-duplex – As portas que participam numa mesma agregação devem possuir a mesma velocidade de transmissão – Não usar autoconfiguração das portas e desligar spanning tree • Para evitar que os pacotes de dados de um mesmo stream ou estação cheguem fora de ordem – Existe um algoritmo de encaminhamento/balanceamento baseado no hash de diversos campos dos pacotes: • • • • Endereço MAC de origem e/ou destino (L2) Endereço IP de origem e/ou destino (L3) Portas TCP ou UDP de origem e/ou destino (L4) Podem ser usadas combinações ex: IP_origem+IP_destino+Porta_origem+Porta_destino • As combinações possiveis dependem dos equipamentos – Cada stream ou estação é mapeado sempre na mesma porta Agregação LACP Force10(conf)#load-balance tcp-udp enable Force10(conf)#interface port-channel 32 Force10(conf-if-po-32)#no shutdown Force10(conf-if-po-32)#switchport Force10(conf-if-po-32)# lacp long-timeout … Force10(conf)#interface Gigabitethernet 3/15 Force10(conf-if-gi-3/15)#no shutdown Force10(conf-if-gi-3/15)#port-channel-protocol lacp Force10(conf-if-gi-3/15-lacp)#port-channel 32 mode active ... Force10(conf)#interface Gigabitethernet 3/16 Force10(conf-if-gi-3/16)#no shutdown Force10(conf-if-gi-3/16)#port-channel-protocol lacp Force10(conf-if-gi-3/16-lacp)#port-channel 32 mode active Agregação Linux • O driver de bonding do Linux permite diversos tipos de agregação: – Balance-rr: transmissão de pacotes em round-robin – Balance-xor: balanceamento feito de acordo com uma politica de hash (MAC _origem XOR MAC_destino) – Active-backup: não é bem uma agregação! So uma interface funciona e se falhar passa para a segunda. – Broadcast: transmite o mesmo pacote em todas as interfaces – 802.3ad: norma IEEE801.AX o balanceamento é controlado pela politica XOR – Balance-tlb: balanceamento da transmissão de acordo com a carga de cada interface, recepção numa única interface – Balance-alb: inclui balance-tlb mais balanceamento da recepção manipulação dos frames ARP que são transmitidos diferentes sistemas remotos recebem respostas a queries ARP com endereços MAC diferentes balanço dinâmico baseado na utilização das interfaces cada MAC remoto numa interface diferente Agregação Linux • Alguns pormenores sobre os modos bonding em Linux: – Balance-rr, Balance-xor e broadcast: • Requer que as portas sejam agrupadas do lado do switch. • Configuração tipo Etherchannel da CISCO ou “trunk mode”. • As interfaces partilham todas o mesmo endereço MAC. – Balance-tlb, Balance-alb e active-backup: • Não requerem reconfiguração do switch • Para o switch é transparente tudo funciona ao nível do ARP • As interfaces retêm os endereços MAC originais – 802.3ad: • Requer que no switch seja criada uma agregação 802.3ad (LACP) • As interfaces partilham todas o mesmo endereço MAC. – 802.3ad, Balance-xor: • Os algoritmos XOR suportam L2, L3 e L4 Agregação Linux • /etc/modprobe.conf alias eth0 bnx2 alias eth1 bnx2 alias bond0 bonding options bond0 mode=balance-alb miimon=100 install bnx2 /sbin/modprobe bonding; /sbin/modprobe --ignore-install bnx2 • /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=none IPADDR=132.50.1.210 NETMASK=255.255.255.0 ONBOOT=yes Agregação Linux • /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:1E:0B:FF:22:1C BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes • /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 HWADDR=00:1E:0B:FF:22:9E BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes Agregação Linux • É possivel obter informação sobre uma agregação através do /proc $ cat /proc/net/bonding/bond0 • Também é possivel efectuar a configuração a partir de /sys/class/net/bond0 modprobe bonding modprobe bnx2 echo balance-alb > /sys/class/net/bond0/bonding/mode ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up echo 100 > /sys/class/net/bond0/bonding/miimon echo +eth0 > /sys/class/net/bond0/bonding/slaves echo +eth1 > /sys/class/net/bond0/bonding/slaves