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 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 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 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. Costa Júnior, Antônio Carlos Theóphilo Ficha Catalográfica 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.
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 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. 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
Sumário 1 Introdução 12 2 Trabalhos Relacionados 16 2.1 OMG 16 2.2 JXTA 19 2.3 ICE 20 2.4 Xtradyne 21 3 Propostas de Travessias de Firewalls/NAT 22 3.1 Abordagem OMG 23 3.2 Abordagem Procurador TCP 24 3.3 Abordagem Procurador HTTP 30 4 Implementação 35 4.1 Arquivo de Configuração 35 4.2 Abordagem OMG 36 4.3 Abordagem Procurador TCP 39 4.4 Abordagem Procurador HTTP 41 5 Validação 44 5.1 Gerenciamento de Memória 44 5.2 Concorrência 45 5.3 Interface com Outros ORBs 46 5.4 Atraso de Invocação 46 5.5 Escalabilidade 49 5.6 Conclusão dos Testes 51 6 Conclusões e Trabalhos Futuros 52 7 Referências Bibliográficas 54 A Arquivo de Configuração 56 A.1 Document Type Definition DTD 56 A.2 Exemplo Abordagem OMG 57 A.3 Exemplo Abordagem Procurador HTTP 58 B Protocolo da Abordagem Procurador HTTP 59 B.1 Mensagens Enviadas pelo ORB Servidor 59 B.2 Mensagens Enviadas pelo Procurador 61
Lista de Figuras 2.1 Caso de Uso da Especificação de Travessia de Firewalls da OMG 19 3.1 Abordagem OMG 23 3.2 Abordagem Procurador TCP 25 3.3 Tipos de Conexões - Procurador TCP 26 3.4 Procurador HTTP - Exemplo 32 4.1 Arquitetura do Procurador de Aplicação 38 4.2 Arquitetura do Procurador TCP 40 5.1 Testes de Escalabilidade 49
Lista de Tabelas 5.1 Resultados do Teste de Atraso de Invocação 47
Eu não tenho ídolos, tenho admiração por trabalho, dedicação e competência Ayrton Senna, 1960 1994.