Curso Cursode deextensão extensãoem emadministração Administraçãode deserviços serviçosgnu/linux GNU/Linux - italo@dcc.ufba.br Gestores da Rede Acadêmica de Computação Departamento de Ciência da Computação Universidade Federal da Bahia, 2011.1
Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License: Atribuição - Uso não comercial - Permanência da Licença http://creativecommons.org/licenses/by-nc-sa/3.0/
Assuntos abordados Arquitetura TCP/IP GNU/Linux em rede Prática
Introdução Necessidade de interligação A função básica de uma rede é transportar dados de ponto à outro: Pode ser entre dois micros, em uma pequena sala Pode ser entre dois servidores fisicamente em países distintos localizados Entretanto, para o software não faz diferença se os computadores a serem interligados estão na mesma sala ou à 5.000Km de distância. Como isso é possível?
Introdução Necessidade de interligação A arquitetura da rede é uma estrutura lógica e formal que especifica como os diversos componentes devem se comunicar entre si. Assim, a arquitetura de rede em uso hoje nas redes locais (Local Area Network - LAN) bem como na atual Internet é derivada do modelo conceitual OSI (Open System Interconnection), desenvolvido pela ISO (International Standards Organization), chamdo modelo TCP/IP. Este modelo, teve por objetivo a interoperabilidade, compatibilidade, portabilidade e escalabilidade exigidos para implementação de uma rede de computadores
Introdução Principais componentes Protocolos Equipamentos e meios físicos Softwares
Introdução Protocolos É a padronização de leis e procedimentos que são dispostos à execução de determinada tarefa. Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede não funciona. Um protocolo especifica como um programa deve preparar os dados para serem enviados para o estágio seguinte do processo de comunicação. Grande maioria definida pela IETF Exemplos: TCP/IP, DNS, SMTP, HTTP, OSI
Introdução Equipamentos de Rede Concentrador (hub) Cabos Roteadores Estação de trabalho Modem Servidor Placa de rede
Introdução Meios físicos Meios pelos quais se propagam as informações da Rede: Cabos Metálicos (Coaxiais e Par trançado) Luz (Fibra Ótica e Laser) Ar (Laser, Rádio)
Introdução Softwares de rede Softwares necessários para implementar a rede: Implementar a hierarquia de protocolos Implementar comunicação com o hardware e o sistema operacional
Modelo TCP/IP Modelos de rede
Modelo TCP/IP Surgimento do TCP/IP A suíte de protocolos TCP/IP foi adotada como um padrão militar em 1983, e desde então se tornou o padrão mundial para comunicações de rede na Internet e em muitas LANs, substituindo protocolos proprietários em muitos casos. O modelo TCP/IP possui apenas 4 camadas (ao invés das 7 do seu genitor, o OSI). Todos os sistemas operacionais modernos suportam o TCP/IP
Modelo TCP/IP Surgimento do TCP/IP O nome TCP/IP se refere a dois protocolos: TCP (Transmission Control Protocol) que é o protocolo responsável pelo controle e qualidade da comunicação entre a origem (transmissor) e o destino final (receptor). IP (Internet Protocol) que é o responsável pelo endereçamento nas redes, de forma que os dados cheguem a seu destino de acordo com o endereço de rede fornecido.
Modelo TCP/IP Canais virtuais ou ports Em uma comunicação TCP/IP por uma única conexão física (meio de comunicação físico) podemos ter diferentes serviços simultâneos compartilhando essa conexão. Para tanto, cada serviço tem um canal lógico (virtual) específico denominado de port, que é um número no TCP. Alguns ports mais utilizados: Port 110 = pop3 (para receber e-mails) Port 25 = smtp (para enviar e-mails) Port 80 = http (acesso à páginas web) Port 389 = ldap (protocolo leve de acesso à diretórios) Port 53 = DNS
Modelo TCP/IP Camadas da arquitetura TCP/IP A arquitetura TCP/IP divide seus processos em um modelo de quatro camadas: Aplicação: Protocolos de aplicação: FTP, TELNET, DNS, SNMP, SMTP. Transporte: transferência de dados host-to-host: TCP, UDP. Rede: roteamento de datagramas da origem até o destino: IP, protocolos de roteamento. Enlace de rede e física: transferência de dados entre elementos de rede vizinhos. Tráfego de bits. É comum separar a parte física da camada de Enlace de rede e física para facilitar a compreensão e comparação com o modelo OSI.
Modelo TCP/IP Encapsulamento de dados
Modelo TCP/IP Camada física Essa camada é composta pelo hardware, conexões elétricas sinais elétricos e demais características físicas dos equipamentos e meios de transmissão dos dados: Hubs Cabos e conectores Placas de rede Modems
Modelo TCP/IP Camada de enlace de rede Nessa camada ficam os protocolos de acesso e comunicação pelo meio físico. Nas redes locais, os protocolos de acesso ao meio são os protocolos Ethernet-CSMA/CD, Token-Ring e FDDI. São especificados endereços MAC (Media Access Control) que são endereços das placas de redes ligadas ao barramento. Na camada de enlace temos as definições de como os dados devem ser transportados no meio físico. Os protocolos em redes locais definem os endereços de destino no barramento e o controle de fluxo de dados na comunicação.
Modelo TCP/IP Camada de enlace de rede Os endereços físicos utilizados pelo protocolo de enlace para endereçar os dados no meio físico são os MAC-address, que são gravados na memória fixa da placa de rede. O enderenço MAC-address é composto por 6 bytes, representados no formato hexadecimal, sendo que cada quatro bits representam um caractere hexa. Os três primeiros bytes representam o código do fabricante e os três outros o número de sequência. Ex: 00:1e:c9:24:6b:dc
Modelo TCP/IP Camada de rede Funciona como interface entre a camada de enlace e a camada de transporte. Nessa camada são definidos e tratados os endereços lógicos de origem e destino na rede, os caminhos que os dados irão percorrer para atingir o seu destino e a interconexão de múltiplos links. Adiciona os cabeçalhos com informações de controle, endereço de origem e destino, campos de correção e eventualmente priorização. Essa camada define como transportar dados entre dispositivos que não estão localmente conectados (roteamento). Principais representantes: IPv4 e ICMP
Modelo TCP/IP Camada de transporte Funciona como interface entre a camada de rede e a camada de aplicação. Adiciona os cabeçalhos como portas, seqüenciamento, correção, controles. Responsável por associar aplicações a endereços de soquetes, ou seja, comunicação host-to-host. Pode ou não garantir integridade dos dados Principais representantes: TCP e UDP
Modelo TCP/IP Camada de transporte TCP (Transmisson Control Protocol): mecanismo de transporte "confiável", orientado à conexão garante que os dados danificados e em ordem). cheguem íntegros (não tenta continuamente medir o quão carregada a rede está e desacelera sua taxa de envio para evitar sobrecarga.
Modelo TCP/IP Camada de transporte UDP (User Datagram Protocol): Não orientado à conexão. "melhor esforço" ou "não confiável não verifica se os pacotes alcançaram seu destino, não dá qualquer garantia que eles irão chegar na ordem.
Modelo TCP/IP Exemplo de conexão HOST A HOST B Aplicação Aplicação Transporte Transporte Roteador Inter-Rede Inter-Rede Inter-Rede Host/Rede Hosts/Rede Host/Rede Rede A Rede B
Equipamentos de rede Principais equipamentos de rede Hub Switchs Roteadores Placas de Rede Firewall IDS
Equipamentos de rede Hub Funciona como repetidor Concentrador de rede burro Recebe por uma porta e encaminha para todas Inseguro, lento e ineficiente Obsoleto Trabalha na camada 1 ( Física ) Pode ou não ser gerenciável Possui interfaces RJ-45, BNC, Fibra Ótica, AUI
Equipamentos de rede Switch Funciona como repetidor Concentrador de rede inteligente Recebe por uma porta e encaminha apenas para a porta correta seguro, rápido e eficiente Trabalha na camada 2 ( Enlace MAC ) Pode ou não ser gerenciável Possui interfaces RJ-45, BNC, Fibra Ótica, AUI
Equipamentos de rede Roteador Escolhe o melhor caminho da origem até o destino Interliga diversas redes distintas Pode implementar controles de segurança Trabalha na camada 3 ( Rede ) Possui interfaces RJ-45, BNC, Fibra Ótica, AUI Pode usar IPv4, IPv6, IPX, Apple Talk, ICMP
Equipamentos de rede Firewall Controla as permissões de acesso entre redes distintas Faz roteamento Primeira barreira para implementar segurança de rede Trabalha nas camada 3 e 4 ( Rede e Transporte ) Chamado de Filtro de Pacotes Pode suportar VPN, Controle de conteúdo, etc. Responsável pelo NAT e bloqueio de portas!
Equipamentos de rede Firewall como gateway Um firewall pode funcionar como gateway. Um gateway é um computador com duas ou mais placas de rede, ou mesmo um equipamento dedicado, usado para ligar redes distintas. Deve ser configurado nas estações. Quando uma estação tentar acessar um endereço que não pertença à rede local, o gateway será consultado para resolver o caminho a ser seguido.
Equipamentos de rede Firewall como gateway Como Host A pode acessar Server 1? Como Host B pode acessar Server 2? Como Host A pode acessar Host B?
Protocolos IP Internet Protocol Para haver comunicação entre redes distintas, se faz necessário a utilização do protocolo IP Define o endereçamento na camada 3. A comunicação é feita através de pacotes denominados datagramas IP (unidade básica da transmissão). Versões em uso: IPv4 (32 bits) e IPv6 (128 bits)
Protocolos IP Internet Protocol
Protocolos IP Internet Protocol Um endereço IP é formado através da utilização de endereços binários compostos de 32 bits, agrupados em 4 blocos de 8 bits separados por um. cada Na base decimal, é representado por 4 blocos, cada um separado por um. da seguinte forma: X.X.X.X onde X varia de 0-255 (2^8 possibilidades em cada posição) Exemplos: 200.17.147.8 208.67.222.222 189.105.178.76 10.1.154.116
Protocolos IP Internet Protocol A primeira parte de um endereço identifica a rede e a segunda parte identifica o host. De acordo ao tamanho dessas partes (quantidade de octetos), dividimos os endereços IPs em classes:
Protocolos IP Internet Protocol As faixas de endereços IP começadas com "10", com "192.168" ou com de "172.16" até "172.31" são reservadas para uso em redes locais e por isso não são usados na internet. A máscara de sub-rede (netmask) define a qual rede determinado host pertence, através da operação lógica AND entre o endereço IP do host e a máscara de sub-rede: Endereço IP: 192.168.0.1 11000000.10101000.00000000.00000001 Máscara de sub-rede: 255.255.255.0 11111111.11111111.11111111.00000000 AND -------------------------------------------------------------------Endereço de rede: 192.168.0.0 11000000.10101000.00000000.00000000
Protocolos DHCP ( Dynamic Host Configuration Protocol ) Protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede. Pode trabalhar com atualização: Manual Automática
Protocolos ICMP - Internet Control Message Protocol Para testar a disponibilidade entre hosts em diferentes redes, um protocolo específico foi inventado: o ICMP (Internet Control Message Protocol) Ferramentas comumente utilizadas em ambientes GNU/Linux que são baseadas neste protocolo são o ping e o traceroute
Protocolos ICMP - Internet Control Message Protocol
Protocolos ICMP - Internet Control Message Protocol As mensagens ICMP geralmente são enviadas automaticamente em uma das seguintes situações: Um pacote IP não consegue chegar ao seu destino (i.e. Tempo de vida do pacote expirado) O Gateway não consegue retransmitir os pacotes na frequencia adequada (i.e. Gateway congestionado) O Roteador ou Encaminhador indica uma rota melhor para a maquina a enviar pacotes.
GNU/Linux em rede
GNU/Linux em rede Conexões O Linux trata os adaptadores de rede através do tipo de conexão. Vamos utilizar um adaptador de rede do tipo Ethernet, pois estaremos abordando apenas redes locais (LANs).
GNU/Linux em rede Adaptadores de rede O nome dado aos adaptadores ethernet é eth, e o Linux insere um número para referência após cada adaptador instalado. Assim temos: 1º adaptador de rede eth0 2º adaptador de rede eth1 E assim por diante...
GNU/Linux em rede Adaptadores de rede Um outro dispositivo normalmente configurado é denominado loopback, cujo ip é 127.0.0.1 (RFC1700). O loopback, tem como nome associado "localhost" e referencia a própria máquina.
GNU/Linux em rede Comandos básicos # ifconfig Verifica o visualiza, ativa ou desativa uma interface de rede # ip visualiza ou manipula rotas, dispositivos, políticas de roteamento e túneis IP. # mii-tool exibe o status das interfaces de rede conectadas ao computador
GNU/Linux em rede Configurando uma interface: ifconfig Para visualizar informações sobre as interfaces configuradas, digitamos ifconfig sem parâmetros. Para visualizar informações de uma interface específica, devemos passar o nome da interface como parâmetro.
GNU/Linux em rede Configurando uma interface: ifconfig Alguns parâmetros -a exibe todas as interfaces presentes, mesmo as inativas. up down promisc define o tipo de funcionamento da interface <nome> [ip] netmask <addr>, define a netmask para uma interface. Exemplo: # ifconfig eth0 netmask 255.255.255.224 <nomr> [ip] broadcast <addr>, endereço de broadcast da rede. Exemplo: # ifconfig eth0 broadcast 192.168.2.25
GNU/Linux em rede Configurando uma interface: ifconfig É possível alterar virtualmente o MAC Address de uma placa de rede. Para isso: Primeiro derrubamos a interface: ifconfig eth0 down Agora usamos o parâmetro hw, seguido de ether, para alterar o MAC: ifconfig eth0 hw ether 00:D1:D2:65:2C:03 Para que as alterações tenham levantamos a interface novamente: efeito, ifconfig eth0 192.168.0.2 up
GNU/Linux em rede Interfaces virtuais: ifconfig Com o ifconfig, podemos atribuir mais de um endereço IP a mesma interface de rede, criando interfaces virtuais atreladas a uma interface física. O nome do alias da interface é definido pelo nome da interface seguido de ":" e do n.º do alias. # # # # ifconfig ifconfig ifconfig ifconfig eth0 192.168.1.2 eth0:1 192.168.1.20 eth0:2 192.168.3.2 eth0:3 10.10.10.20
GNU/Linux em rede Verificação de status: ip O comando ip fornece informações sobre sua configuração atual. Alguns parâmetros addr, fornece informações sobre as placas de rede: endereço IP, máscara e nome da interface de rede. route, exibe informações sobre a tabela de rotas da máquina. A última linha, iniciada com default, indica o caminho padrão dos pacotes ou o gateway de seu host. Exemplo de uso: ip addr ip route
GNU/Linux em rede Definindo rotas: route Q. Como podemos configurar o gateway padrão? A. O comando route é usado para mostrar ou manipular a tabela de roteamento IP em sistemas GNU/Linux e Unix. A tabela de roteamento é usada para configurar rotas estáticas para hosts ou redes específicas via uma interface depois de tê-la configurado com o ifconfig. Quando as opções add ou del são usadas o route modifica a tabela de roteamento. Sem essas opções, route exibe o conteúdo atual da tabela de roteamento.
GNU/Linux em rede Exibindo a tabela de roteamento: route Para exibir a tabela de roteamento: # route Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref 172.101.0.0 * 255.255.255.248 U 0 0 link local * 255.255.0.0 U 1000 0 default 172.101.0.1 0.0.0.0 UG 0 0 Uso Iface 0 eth1 0 eth1 0 eth1 A opção -n é usada para exibir endereços númericos: # route n Tabela de Roteamento IP do Kernel Destino Roteador MáscaraGen. Opções Métrica Ref 172.101.0.0 0.0.0.0 255.255.255.248 U 0 0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0.0.0.0 172.101.0.1 0.0.0.0 UG 0 0 Uso Iface 0 eth1 0 eth1 0 eth1
GNU/Linux em rede Adicionar/configurar o gateway padrão: route A sintaxe é a seguinte: route add default gw {ADDRESS} {INTERFACE} Onde: ADDRESS: específica o IP do gateway. INTERFACE: especifica a interface a ser usada. Por exemplo, supondo nosso gateway com IP 192.168.1.254, usamos o seguinte comando: route add default gw 192.168.1.254 Para remover o gateway: route del default
GNU/Linux em rede Salvando as configurações No Debian GNU/Linux, a configuração padrão das interfaces de rede é feita no arquivo /etc/network/interfaces Uma configuração básica com IP fixo poderia ser: # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 Reiniciamos o serviço: /etc/init.d/networking restart
GNU/Linux em rede Salvando as configurações É possível também configurar o /etc/network/interfaces para obter um endereço IP automaticamente através do protocolo DHCP (Dynamic Host Control Protocol): # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
GNU/Linux em rede Testando conectividade com o ping Ping é uma ferramenta simples e extremamente prática para análise de rede. Ele envia pacotes ICMP (request e replay) para um computador alvo e mede o tempo de resposta de cada requisição (quando há respostas).
GNU/Linux em rede Monitorando o tráfego: tcpdump Podemos analisar todo o tráfego passando por nossa placa de rede pelo uso de ferramentas como tcpdump. O monitoramento é feito especificando-se a interface desejada: eth0, eth1, ppp0 e etc. A saída do comando corresponde ao tráfego de pacotes enviados e recebidos juntamente com os endereços de origem e destino. Para instalar o tcpdump: aptitude install tcpdump
GNU/Linux em rede Monitorando o tráfego: tcpdump Assim como outros programas de captura de tráfego, ele usa a libpcap, e adiciona uma série regras de sintaxe interessantes além de poder salvar os dados em um arquivo usado por muitas aplicações. Precisa de privilégios de root para executar. Para iniciar a captura, basta digitar: tcpdump [opcoes] [filtros] Para finalizar a captura, tecle Ctrl-C.
GNU/Linux em rede Monitorando o tráfego: tcpdump Exemplo de pacote capturado:
GNU/Linux em rede Monitorando o tráfego: tcpdump Para capturarmos somente da interface eth0: tcpdump -i eth0 Para capturarmos somentes pacotes detinados à 192.168.1.5 tcpdump dst host 192.168.1.5 Combinando várias opções: tcpdump -i eth0 -n dst host 192.168.0.1 and port 80 -w captura.cap
GNU/Linux em rede Monitorando o tráfego: wireshark
GNU/Linux em rede Dúvidas?
Laboratório Configurando LANs Verifique o roteiro de prática com o instrutor