PUC-Rio - Certificação Digital Nº 0321447/CA Antônio Carlos Theóphilo Costa Júnior Soluções para a Travessia de Firewalls/NAT usando CORBA DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós–graduação em Informática Rio de Janeiro Agosto de 2005 Antônio Carlos Theóphilo Costa Júnior PUC-Rio - Certificação Digital Nº 0321447/CA Soluções para a Travessia de Firewalls/NAT usando CORBA Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós– graduação em Informática do Departamento de Informática da PUC-Rio Orientador: Prof. Markus Endler Co–Orientador: Prof. Renato Cerqueira Rio de Janeiro Agosto de 2005 Antônio Carlos Theóphilo Costa Júnior PUC-Rio - Certificação Digital Nº 0321447/CA Soluções para a Travessia de Firewalls/NAT usando CORBA Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós– graduação em Informática do Departamento de Informática do Centro Técnico Cientı́fico da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada. Prof. Markus Endler Orientador Departamento de Informática — PUC-Rio Prof. Renato Cerqueira Co–Orientador Departamento de Informática — PUC-Rio Prof. Luı́s Fernando Gomes Soares Departamento de Informática — PUC-Rio Prof. Alexandre Sztajnberg Instituto de Matemática e Estatı́stica — UERJ Prof. José Eugênio Leal Coordenador Setorial do Centro Técnico Cientı́fico — PUC-Rio Rio de Janeiro, 16 de Agosto de 2005 Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Antônio Carlos Theóphilo Costa Júnior PUC-Rio - Certificação Digital Nº 0321447/CA Graduou-se em Ciência da Computação na UFRN (Universidade Federal do Rio Grande do Norte) em 2002. É especialista em Sistemas em Tempo Real para Otimização e Automação no Setor Petróleo & Gás. Foi bolsista de iniciação cientı́fica do Programa Especial de Treinamento da Capes (PET-CC) e do Programa de Recursos Humanos da ANP. Ficha Catalográfica Costa Júnior, Antônio Carlos Theóphilo Soluções para a travessia de firewalls/NAT usando CORBA / Antônio Carlos Theóphilo Costa Júnior; orientador: Markus Endler; co–orientador: Renato Cerqueira. — Rio de Janeiro : PUC-Rio, Departamento de Informática, 2005. 62 f. ; 29,7 cm 1. Dissertação (mestrado) - Pontifı́cia Universidade Católica do Rio de Janeiro, Departamento de Informática. Inclui referências bibliográficas. 1. Informática - Teses. 2. Travessia de firewalls. 3. Requisição remota de métodos. 4. Middleware. 5. CORBA. 6. OiL. 7. Firewall. 8. NAT. I. Endler, Markus. II. Cerqueira, Renato. III. Pontifı́cia Universidade Católica do Rio de Janeiro. Departamento de Informática. IV. Tı́tulo. CDD: 004 Às minhas famı́lias, atual e futura. PUC-Rio - Certificação Digital Nº 0321447/CA PUC-Rio - Certificação Digital Nº 0321447/CA Agradecimentos Primeiramente agradeço a Deus por tudo o que me foi dado e que possibilitou a realização deste trabalho; Aos meus pais, irmãs e sobrinha que tanto amor e carinho me deram durante todo este perı́odo; À Aninha, que acompanhou de perto todo este esforço, me dando muito mais amor e apoio do que eu precisava; Aos amigos e funcionários da PUC-Rio, que contribuiram para tornar este perı́odo um dos mais agradavéis de minha vida, me fazendo adorar tanto esta cidade como esta escola, trazendo muitas saudades no momento em que escrevo estas palavras; Aos meus orientadores, pelos exemplos de amizade e competência que tanto me influenciaram durante a realização deste trabalho; À PUC-Rio, Capes e CNPq por todo o apoio financeiro oferecido. Resumo Costa Júnior, Antônio Carlos Theóphilo; Endler, Markus; Cerqueira, Renato. Soluções para a Travessia de Firewalls/NAT usando CORBA. Rio de Janeiro, 2005. 62p. Dissertação de Mestrado — Departamento de Informática, Pontifı́cia Universidade Católica do Rio de Janeiro. Aplicações que usam CORBA como plataforma de comunicação geralmente PUC-Rio - Certificação Digital Nº 0321447/CA possuem restrições ao serem executadas em ambientes compostos por mais de um domı́nio administrativo. Este fato é particularmente verdade quando as aplicações precisam atravessar firewalls/NAT. Além do mais, não existe atualmente uma solução padronizada e adotada por todos os ORBs, obrigando as aplicações que utilizam este middleware a adotarem soluções proprietárias que muitas vezes não são adequadas ao ambiente em que as aplicações funcionam (e.g. impossibilidade de abertura de portas no firewall). Este trabalho apresenta e avalia três soluções para a travessia de firewall/NAT por aplicações distribuı́das que utilizam CORBA como camada de comunicação, cada uma explorando as vantagens de uma situação especı́fica. Exemplos de tais situações são a possibilidade de configuração do firewall ou a possibilidade de abertura de conexões TCP para fora da rede. Palavras–chave Travessia de Firewalls, Requisição Remota de Métodos, Middleware, CORBA, OiL, Firewall, NAT Abstract Costa Júnior, Antônio Carlos Theóphilo; Endler, Markus; Cerqueira, Renato. Firewall/NAT Traversal Solutions Using CORBA. Rio de Janeiro, 2005. 62p. MSc. Dissertation — Departamento de Informática, Pontifı́cia Universidade Católica do Rio de Janeiro. PUC-Rio - Certificação Digital Nº 0321447/CA Applications that use CORBA as the communication layer often face some restrictions for multi-domain deployment. This is particularly true when they have to face firewall/NAT traversal. Furthermore, nowadays there is no well-accepted unique or standardized solution adopted by all ORBs, compelling applications using this type of middleware to use proprietary solutions that sometimes do not address the environment restrictions in which they are deployed (e.g. impossibility to open firewall ports). This work presents and compares three solutions for firewall/NAT traversal by CORBA-based distributed applications, each one suitable for a specific situation and exploring its advantages. Examples of such situations are the possibility of open firewall ports or the possibility of start a TCP connection to the outside network. Keywords Firewall Traversal, Remote Method Invocation, Middleware, CORBA, OiL, Firewall, NAT PUC-Rio - Certificação Digital Nº 0321447/CA Sumário 1 Introdução 12 2 Trabalhos Relacionados 2.1 OMG 2.2 JXTA 2.3 ICE 2.4 Xtradyne 16 16 19 20 21 3 Propostas de Travessias de Firewalls/NAT 3.1 Abordagem OMG 3.2 Abordagem Procurador TCP 3.3 Abordagem Procurador HTTP 22 23 24 30 4 Implementação 4.1 Arquivo de Configuração 4.2 Abordagem OMG 4.3 Abordagem Procurador TCP 4.4 Abordagem Procurador HTTP 35 35 36 39 41 5 Validação 5.1 Gerenciamento de Memória 5.2 Concorrência 5.3 Interface com Outros ORBs 5.4 Atraso de Invocação 5.5 Escalabilidade 5.6 Conclusão dos Testes 44 44 45 46 46 49 51 6 Conclusões e Trabalhos Futuros 52 7 Referências Bibliográficas 54 A Arquivo de Configuração A.1 Document Type Definition – DTD A.2 Exemplo – Abordagem OMG A.3 Exemplo – Abordagem Procurador HTTP 56 56 57 58 B Protocolo da Abordagem Procurador HTTP B.1 Mensagens Enviadas pelo ORB Servidor B.2 Mensagens Enviadas pelo Procurador 59 59 61 PUC-Rio - Certificação Digital Nº 0321447/CA Lista de Figuras 2.1 Caso de Uso da Especificação de Travessia de Firewalls da OMG 19 3.1 3.2 3.3 3.4 23 25 26 32 Abordagem OMG Abordagem Procurador TCP Tipos de Conexões - Procurador TCP Procurador HTTP - Exemplo 4.1 Arquitetura do Procurador de Aplicação 4.2 Arquitetura do Procurador TCP 38 40 5.1 Testes de Escalabilidade 49 Lista de Tabelas PUC-Rio - Certificação Digital Nº 0321447/CA 5.1 Resultados do Teste de Atraso de Invocação 47 PUC-Rio - Certificação Digital Nº 0321447/CA “Eu não tenho ı́dolos, tenho admiração por trabalho, dedicação e competência” Ayrton Senna, 1960–1994.