• Nenhum resultado encontrado

Arquitetura cliente/servidor

q

Quem é o cliente? 1 O que inicia a conexão. Quem é o servidor?

1 O que “escuta” em uma porta e aguarda conexões.

No Unix/Linux, servidores também são chamados de daemons.

O modelo TCP/IP é baseado na arquitetura cliente/servidor. O cliente envia uma requisição

Cada host utiliza sua própria sequência de identificação, mas a resposta a cada data- grama pode carregar também uma confir- mação de recebimento que utiliza a sequência do outro host.

l

Ca pí tu lo 2 - I nt ro du çã o à a dm in is tr aç ão d e r ed es e a rq ui te tu ra T CP /IP (p ar te 2 )

ao servidor, que por sua vez processa essa requisição e retorna o resultado ao cliente. Nessa arquitetura, um servidor pode atender, simultaneamente, a diversas requisições de diferentes clientes.

Um servidor oferece seu serviço em uma porta padrão conhecida. Após ser inicializado, o servidor aguarda por requisições na sua porta. Por outro lado, o Sistema Operacional de um cliente escolhe uma porta aleatória não utilizada e solicita uma conexão com a porta padrão do servidor (no caso do TCP) ou envia diretamente pacotes para a porta do servidor (no caso do UDP). Uma conexão identifica de forma única o canal de comunicação estabelecido entre um processo cliente e um processo servidor. A conexão é identificada pelos endereços IP e pelas portas do cliente e do servidor.

Os servidores são implementados através de processos especiais conhecidos como

daemons. Em geral os daemons são conhecidos pelo nome do serviço acrescido da letra “d”.

q

Principais daemons ou portas:

1 21/tcp: ftp: usado para transferência de arquivos entre máquinas. 1 23/tcp: telnet: serviço de terminal remoto.

1 22/tcp: ssh: permite comunicação segura entre duas máquinas, utilizando meca- nismos de criptografia.

1 25/tcp: smtp: serviço de envio e recebimento de e-mails. 1 53/udp: dns: serviço de resolução de nomes.

1 80/tcp: www: servidor web http.

1 110/tcp: pop3: permite leitura e transferência remota de e-mails.

1 443/tcp; https: www seguro, permite transferência de páginas do servidor ao cliente sem que possam ser lidas por terceiros.

Acima podemos ver uma lista dos daemons, protocolos mais conhecidos e suas portas. Os protocolos são especificados em documentos denominados Request for Comments (RFCs), que descrevem os diferentes tipos de mensagens suportados pelos protocolos. A especificação de um protocolo assegura a compatibilidade das diversas implementações.

q

Algumas portas são padronizadas. 1 Exemplo: portas 21, 23, 80 e 110. No Linux/Unix:

1 Portas baixas: 0 a 1023, só o root pode usá-las. 1 Portas altas: 1024 a 65535.

As portas no intervalo de 0 a 1023 são conhecidas como portas restritas ou portas baixas. Os serviços que rodam nessas portas precisam ter permissão SUID = 0 (root), o que pode gerar graves consequências caso algum deles tenha qualquer problema de segurança. Atual- mente, os programas que usam tais portas procuram iniciar como root, apenas para ganhar acesso à porta e depois mudar o processo para um usuário sem tantos poderes. Por isso existem usuários chamados www, FTP, postmaster, Squid, Samba etc.

As portas de 1024 até 65535 são conhecidas como portas altas e são geralmente as portas aleatórias utilizadas pelos clientes. Como tais portas podem ser abertas por qualquer usuário, tornou-se comum usá-las também para serviços experimentais. No entanto, alguns desses serviços podem ser padronizados posteriormente e continuar a utilizar as portas

O modelo TCP/IP é baseado no conceito de portas e conexões para assegurar que dados recebidos por uma máquina sejam correta- mente repassados aos processos de destino.

l

Daemons Em Unix e outros sistemas operacio- nais multitarefas, um daemon, acrônimo de Disk And Execution MONitor (Monitor de Execução e de Disco) é um programa que roda de forma independente em background, em vez de ser controlado direta- mente por um usuário.

Uma vantagem das RFCs é que elas são debatidas em fóruns de discussão que tornam pública a opinião dos profissio- nais mais importantes nesses assuntos: os implementadores.

Ad m in is tr aç ão d e S is te m as L in ux : R ed es e S eg ur an ça

altas. Por exemplo: Squid (proxy), ICQ ou VNC.

Um aplicativo cliente/servidor muito conhecido é o Telnet, usado para obter uma sessão interativa com outro host. O protocolo é bastante simples e consiste basicamente no envio de comandos pelo cliente e no envio dos resultados dos comandos pelo servidor. A sim- plicidade do protocolo permite sua utilização para testar outros protocolos. Por exemplo, pode-se testar um servidor web sem utilizar um browser. Para isso, basta saber os tipos de mensagens do protocolo a ser testado.

A seguir, dois exemplos: no primeiro, o Telnet é usado para leitura de e-mails, via Pop; no segundo, para uma requisição de página a um servidor web:

Exemplo 1:

# telnet 10.4.0.1 110

.Trying 10.4.0.1... Connected to 10.4.0.1. Escape character is ‘^]’. +OK QPOP (version 2.53) at localhost starting. USER cristina +OK Password required for cristina. PASS supersenha

+OK cristina has 2 messages (8614 octets). LIST +OK 2 messages (8614 octets)

1 886 2 7728 DELE 1

+OK Message 1 has been deleted. QUIT Exemplo 2:

# telnet www.rnp.br 80 Trying 200.130.25.20...

Connected to jupiter.sso.rnp.br. Escape character is ‘^]’. GET /index.html

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”> <HTML><HEAD>

...

Connection closed by foreign host.

Os comandos digitados dentro do Telnet (em destaque) são as mensagens específicas dos protocolos. Os clientes oferecem uma interface com o usuário e, internamente, trocam men- sagens do protocolo específico com o servidor. A padronização dos protocolos viabiliza a existência de diversas implementações de clientes e servidores. Por exemplo, web browsers e servidores de e-mail. Dessa forma, os usuários têm total liberdade para escolher as imple- mentações que melhor atendam às suas necessidades.

Ca pí tu lo 2 - R ot ei ro d e A tiv id ad es

Roteiro de Atividades 2

Atividade 2.1 – Roteamento

Considere a seguinte topologia:

R2 Rede 10.0.0.0\24 Internet Rede 10.0.1.0\24 Rede 10.0.2.0\24 R1 R3 R4 H1

1. Atribua endereços às interfaces de conexão entre os roteadores R1, R2, R3 e R4, com

prefixo 192.168.0.X. Utilize a menor máscara de rede possível e atribua endereços para as interfaces das redes 10.0.X.0/24.

2. Construa a tabela de rotas dos roteadores R1, R2, R3, R4 e do host multi-homed H1;

também atribua endereços para as suas interfaces.

3. Construa a tabela de rotas do host 10.0.0.34.

4. Suponha que os roteadores R3 e R4 foram conectados um ao outro através de novas

interfaces de rede. O que mudará nas tabelas de roteamento?

5. Suponha que o roteador R2 parou de funcionar devido a um problema de hardware.

O que poderia ser feito para resolver o problema?