4 – Serviços de Aplicação • A existência de um suporte de comunicação permite a interligação de diversos dispositivos e também a disponibilização de diversas aplicações que adicionam funcionalidades ao sistema. • Embora alguns desses serviços sejam instalados em todas os dispositivos, na maioria dos casos os serviços são disponibilizados por servidores específicos para esse efeito. • Alguns dos servidores implicam configuração do lado dos clientes que utilizam o serviço, o que implica novas tarefas e problemas a nível de administração. Idealmente essa configuração não será necessária, sendo o sistema capaz de identificar e lidar com o tráfego pretendido. 2006-07 (vb) ARC 4.1 4.1 – Serviços de Aplicação – Proxy • Um servidor proxy funciona como intermediário entre os clientes de um serviço e o(s) servidor(es) que o prestam. Os pedidos efectuados pelos clientes (transferência de ficheiro, acesso a páginas http, etc) são efectuados ao proxy que os envia para o servidor destino, recebe a resposta e fá-la chegar ao cliente. • Como vantagens da utilização de proxies temos: – Caching de dados, optimizando a utilização da rede; – Ponto único de configuração de serviços (autenticação, etc); – Possibilidade de balanceamento de carga entre dispositivos que prestam o mesmo serviço; – Ponto único de monitorização e filtragem de tráfego; – Partilha de recurso. 2006-07 (vb) ARC 4.2 4.1 – Serviços de Aplicação – Proxy • Classificação de proxies quanto ao modo de operação: – Intercepting: o cliente não necessita de qualquer configuração (e pode não saber sequer da existência do proxy). Os pedidos por este enviados são capturados pelo proxy que os envia, recebe a resposta e injecta a resposta na rede. Utilizado quer para simplificar a gestão dos clientes quer para implementar mecanismos de filtragem/censura de recursos ou destinos; – Transparente: proxy que não altera o pedido efectuado pelo cliente. Um proxy não-transparente altera parte do pedido (mudança de protocolo, etc); 2006-07 (vb) ARC 4.3 4.1 – Serviços de Aplicação – Proxy • Classificação de proxies quanto ao modo de operação: – Split Proxy: par de aplicações a correr em dispositivos distintos e que implementam entre si um mecanismo de optimização de algum aspecto da transmissão (codificação de conteúdos, encriptação, etc.); – Reverse Proxy: proxy ao qual um ou mais servidores estão ligados. Desta forma é possível efectuar várias tarefas (balanceamento de tráfego, segurança, ponto único de monitorização, caching, optimização da gestão de pedidos, etc.); – Circumventer: mecanismo de fuga a políticas da rede, habitualmente implementando split proxying entre um servidor interno e um externo à estrutura. Entre eles é escondida de alguma forma a natureza do tráfego, que contorna assim as políticas do sistema. 2006-07 (vb) ARC 4.4 4.1 – Serviços de Aplicação – Proxy • Classificação de proxies quanto à finalidade: – Partilha de ligação ao exterior da rede; – Caching: usado em sistemas onde vários dispositivos acedam a com frequência aos mesmos dados (normalmente estáticos). Os pedidos e respostas são armazenados durante algum tempo e, quando surgem pedidos iguais de outros clientes, os dados são entregues mais rapidamente; – Web: embora efectuem também caching de dados, são usados para analisar e filtrar conteúdos ou destinos de tráfego; – Anonimizer: proxy não-transparente que mascara a identidade do cliente; 2006-07 (vb) ARC 4.5 4.1 – Serviços de Aplicação – Proxy • Problemas associados à utilização de proxies: – – – – – Ponto único de falha de um serviço; Desempenho do proxy afecta o desempenho do serviço; Tempo de vida dos dados em proxies de caching; Possibilidade de mascarar tráfego com fins pouco correctos; Em proxies de anonimato, o proxy fica associado ao comportamento dos dispositivos que o usam, podem ser banidos de determinados destinos e/ou serviços (e com eles todos dos dispositivos que os usam). 2006-07 (vb) ARC 4.6 4.2 – Serviços de Aplicação – DNS • DNS (Domain Name Server): – Serviço que permite interligar o endereço IP de um dispositivo público numa rede (ou na Internet) com um nome mais fácil de memorizar pelos utilizadores, gerido pelo ICANN (Internet Corporation for Assigned Names and Numbers); – Dado o volume de informação e milhões de consultas diárias, o serviço é distribuído por inúmeros servidores, organizados numa estrutura hierárquica. Quanto mais alto o nível do servidor, maior o volume de informação lá armazenado. A maioria dos servidores (normalmente localizados em ISPs) apenas mantêm tabelas reduzidas, recorrendo a servidores acima na hierarquia quando lhe é solicitada informação de que não dispõem. No topo da hierarquia existem os chamados servidores raíz, 13 no total e identificados de A a M (na realidade cada servidor é um agregado de servidores). 2006-07 (vb) ARC 4.7 4.2 – Serviços de Aplicação – DNS Estrutura do serviço DNS 2006-07 (vb) ARC 4.8 4.2 – Serviços de Aplicação – DNS • DNS (Domain Name Server): – Os nomes DNS estão normalmente organizados de forma hierárquica, estando os elementos de topo da hierarquia mais à direita no nome. – O elemento mais à direita é designado zona raíz ou domínio de topo, podendo identificar um país (pt, uk, br, etc), zona geográfica (eu, asia, etc) ou natureza de entidade (org, edu, net, etc). – Os prefixos adicionados permitem pormenorizar o elemento na estrutura (por exemplo esta.ipt.pt e estt.ipt.pt fazem parte do mesmo domínio ipt.pt). 2006-07 (vb) ARC 4.9 4.2 – Serviços de Aplicação – DNS • Conceitos associados: – Zona DNS: zona contígua de um namespace (dtic.esta.ipt.pt, aalcatel.esta.ipt.pt e esta.ipt.pt, por exemplo), gerida por um servidor DNS; – Resolver: cliente que efectua pedidos (queries) a um servidor DNS; – Resource Records: entradas de uma base de dados onde são efectuadas associações nome – endereço IP. 2006-07 (vb) ARC 4.10 4.2 – Serviços de Aplicação – DNS • Resolução: 1. 2. Consulta da cache; Se 1 falha, consulta do servidor DNS configurado no dispositivo; Servidor verifica o elemento da query faz parte das zonas que serve; Se 3 falha, o servidor consulta a sua cache; Se 4 falha, o servidor comportase como um cliente DNS fazendo consultas recursivas a uma lista de servidores prédefinidos (Root hints). 3. 4. 5. 2006-07 (vb) ARC 4.11 4.2 – Serviços de Aplicação – DNS • Consulta recursiva: 1. 2. Consulta ao NS por teste.nome.com; Caso não saiba responder, o NS consulta um root server; O root server responde com a referência ao um NS com autoridade no domínio .com; Consulta ao NS de 3 por .com; Que responde com a referência ao NS com autoridade no domínio nome.com; Consulta ao NS de 5 por nome.com; Que responde com a informação; Que é passada ao cliente. 3. 4. 5. 6. 7. 8. 2006-07 (vb) ARC 4.12 4.2 – Serviços de Aplicação – DNS • Problemas associados à utilização de DNS: – – – – – Serviço crítico para os utilizadores; Tempo de vida da cache DNS; Utilização de servidor próprio ou recurso a servidor exterior; Propagação de novos dados na estrutura DNS; Necessidade de associar endereços IP estáticos aos nomes: • • Contornável numa rede interna pela interligação do servidor DNS com um servidor de atribuição dinâmica de endereços IP (4.3); Contornável na Internet pela utilização de serviços DDNS (DNS dinâmico). 2006-07 (vb) ARC 4.13 4.3 – Serviços de Aplicação – DHCP • DHCP (Dynamic Host Configuration Protocol): – Permite a um dispositivo a configuração automática de diversos parâmetros (endereço IP, gateway, etc) recorrendo a um servidor para este fim; – Permite melhor aproveitamento de uma gama de endereços IP; – Automatiza o processo de configuração dos dispositivos: • Fugindo a problemas da configuração manual; • Permitindo uma rápida alteração de configuração no sistema; – O endereço é atribuído durante um intervalo de tempo configurável (lease time). 2006-07 (vb) ARC 4.14 4.3 – Serviços de Aplicação – DHCP • Procedimento: 1. O cliente envia um pedido para a rede a solicitar a configuração, mesmo sem ter informação sobre o servidor (eventualmente sugerindo valores); 2. O servidor recebe o pedido e responde enviando o endereço IP (de acordo com a sua política e historial do dispositivo); 3. O cliente indica a aceitação do valor, enviando para toda a rede o valor (para que, caso existam vários servidores, os outros percebem com a oferta aceite); 4. O servidor envia o resto da configuração do dispositivo; 2006-07 (vb) ARC 4.15 4.3 – Serviços de Aplicação – DHCP • Problemas associados à utilização do DHCP: – – – – – Ponto de falha único; Serviço crítico para os utilizadores; Servidores não autorizados; Clientes não autorizados; Conflito de endereços caso a gama de endereços a ser gerida esteja mal definida; – Conflito de endereços quando dispositivos são configurados manualmente com endereços da gama dinâmica; – Interligação com o acesso aos dispositivos por nome (DNS). 2006-07 (vb) ARC 4.16 4.4 – Serviços de Aplicação – HTTP • Servidor HTTP: – Servidor capaz de processar pedidos HTTP (HyperText Transfer Protocol); – Serviços básicos: • HTTP; • Logging; • Outros serviços: – Autenticação; – Conteúdos dinâmicos: usando interfaces como o CGI, ASP, PHP, .Net; – HTTPS (Secure HTTP): serviços de transferência segura, baseados nos protocolos SSL ou TLS; – Gestão de largura de banda (Bandwidth throttling); – Hosts virtuais: vários servidores virtuais no mesmo dispositivo. 2006-07 (vb) ARC 4.17 4.4 – Serviços de Aplicação – HTTP • Implementação: – Linux: Apache; – Windows: IIS; • Parâmetros de Desempenho: – – – – Número de pedidos; Latência de processamento dos pedidos; Throughput; Comportamento do sistema depende do efeito conjunto destes parâmetros. 2006-07 (vb) ARC 4.18 4.4 – Serviços de Aplicação – HTTP • Factores de dimensionamento: – Número de pedidos; – Natureza dos conteúdos (estáticos ou dinâmicos). • Sobrecarga: – – – – • Sobreutilização; Código ou comportamento malicioso; Comportamento do rede; Outros serviços em execução no servidor. Possíveis melhorias: – – – – Caching de conteúdos dinâmicos; Replicação de servidores; Firewalls e sistemas de detecção de intrusão; Bandwidth Throttling e traffic shaping. 2006-07 (vb) ARC 4.19 4.4 – Serviços de Aplicação – HTTP • Configuração: – Habitualmente o serviço funciona no porto 80 (8080 para HTTPS), que deve estar acessível para tráfego TCP e UDP; – Nalguns casos será aconselhável alterar o porto; – A transferência de conteúdos multimédia é implementada pelo protocolo MIME. 2006-07 (vb) ARC 4.20 4.5 – Serviços de Aplicação – Mail • Serviço extremamente complexo: – Embora o serviço não seja em tempo real, o volume de dados é muito elevado: • Spam, vírus, chain letters, ficheiros de dimensão muito elevada, etc. – Implementação: • Linux: Free-BSD ou Sendmail; • Windows: nativo nos servidores. – Acesso do utilizador: • • • • • Local; Webmail; SMTP; POP; IMAP. 2006-07 (vb) ARC 4.21 4.5 – Serviços de Aplicação – Mail • Protocolos de acesso: – SMTP (Simple Mail Transfer Protocol): protocolo simples, usualmente a correr no porto 25. Várias limitações como a necessidade de percorrer sequencialmente as mensagens e a inexistência de autenticação no envio de correio electrónico. – POP (Post Office Protocol): actualmente na versão 3. Opera sobre o porto 110. O protocolo mais implantado, tem algumas limitações pois é pensado como um mecanismo de entrega em que a mensagem deixa de existir no servidor após a entrega (contornável). – IMAP (Internet Message Access Protocol): actualmente na versão 4. Apresenta algumas mensagens face ao POP (cópias de mensagem no servidor, download on demand das mensagens), mas é menos utilizado. Opera sobre o porto 143. 2006-07 (vb) ARC 4.22 4.6 – Serviços de Aplicação – FTP • FTP (File Transfer Protocol): – Permite a transferência de ficheiros entre dispositivos; – Implementações: • Linux: várias, WU-FTP, etc. • Windows: IIS. – Funciona em dois portos, um para comandos (21) e outro para os dados (pode ser o porto 20 ou um porto acima de 1023). – Modos de operação: o estabelecimento da ligação passa por dois requests, o primeiro iniciado pelo cliente. • Activo: o segundo request é iniciado pelo servidor; • Passivo: o segundo request também é iniciado pelo cliente. 2006-07 (vb) ARC 4.23 4.6 – Serviços de Aplicação – FTP • FTP (File Transfer Protocol): Modo activo Modo passivo 2006-07 (vb) ARC 4.24 4.6 – Serviços de Aplicação – FTP • Modo activo vs modo passivo: – Modo activo é mais vantajoso para o servidor, mas o pedido por este iniciado pode ser filtrado pela firewall do cliente, o que levanta muitos problemas de conectividade; – Modo passivo é mais vantajoso para o cliente, mas implica que o servidor tem de estar mais exposto (portos na gama 1024+ têm de estar abertos aos clientes). • Modo de transferência: – ASCII: informação é enviada pelo seu código ASCII; – Binário: informação é enviada como um stream de bits. 2006-07 (vb) ARC 4.25