BR112016015096B1 - Método e sistema de computação para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso - Google Patents

Método e sistema de computação para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso Download PDF

Info

Publication number
BR112016015096B1
BR112016015096B1 BR112016015096-1A BR112016015096A BR112016015096B1 BR 112016015096 B1 BR112016015096 B1 BR 112016015096B1 BR 112016015096 A BR112016015096 A BR 112016015096A BR 112016015096 B1 BR112016015096 B1 BR 112016015096B1
Authority
BR
Brazil
Prior art keywords
virtual
virtual network
network
address
message
Prior art date
Application number
BR112016015096-1A
Other languages
English (en)
Other versions
BR112016015096A2 (pt
Inventor
Parveen Patel
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112016015096A2 publication Critical patent/BR112016015096A2/pt
Publication of BR112016015096B1 publication Critical patent/BR112016015096B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

MÉTODO E SISTEMA DE COMPUTAÇÃO PARA ROTEAR UMA MENSAGEM A PARTIR DE UMA PRIMEIRA REDE VIRTUAL PARA UMA SEGUNDA REDE VIRTUAL SEM O USO DE UMA PORTA DE ACESSO. A invenção refere-se ao encaminhamento de mensagens entre redes virtuais utilizando um mapeamento de endereços virtuais a partir de uma rede virtual para um endereço virtual da outra rede virtual. Cada rede virtual possui um conjunto válido de endereços virtuais, alguns dos quais sendo designados para nós virtuais dentro da rede correspondente. Quando uma rede virtual identifica uma mensagem a ser enviada, ela identifica um destino para a mensagem. Alguns destinos podem estar dentro da mesma rede virtual e assim, podem ser encaminhados para nós virtuais dentro da rede virtual. Outros destinos, ao invés disso, podem estar mapeados para um endereço virtual de outra rede virtual. Neste caso, a informação de encaminhamento também pode ser obtida e a mensagem pode ser despachada para o endereço virtual da outra rede virtual. Isto pode ser executado sem a necessidade de um dispositivo de interconexão de redes, o qual divulga um endereço público que é globalmente único.

Description

ANTECEDENTES
[001] Em qualquer dada rede física, cada nó recebe um endereço chamado de endereço de Protocolo Internet (ou "IP"). O endereço de cada nó é publicado dentro do domínio da rede física de modo que os nós podem ser apropriadamente identificados, e as mensagens de rede (por exemplo, pacotes IP) podem ser apropriadamente direcionadas dentro da rede física. Os nós físicos correspondem aos componentes físicos reais tais como servidores, placas de interface de rede, comutadores, dentre outros.
[002] Uma ou mais redes virtuais podem ser sobrepostas sobre uma rede física. Entretanto, nas redes virtuais, os nós (neste documento chamados de "nós virtuais") são componentes que são capazes de processar informação, mas não podem ser confinados a qualquer limite físico. Por exemplo, o nó pode ser um componente de software, aplicativo, máquina virtual, comutador virtual, virtualizador, ou qualquer outro componente capaz de enviar e/ou receber mensagens de rede.
[003] Uma camada de rede virtual que opera na rede física abs traiu a natureza da rede física subjacente para os nós virtuais. Especi-ficamente, a camada de rede virtual mantém o rastro de um endereço (isto é, um endereço virtual) designado para cada nó virtual, e correlaciona o endereço virtual com um endereço físico aplicável para o nó físico (por exemplo, um comutador).
[004] O assunto reivindicado neste documento não está limitado às concretizações que solucionam quaisquer desvantagens ou que operam somente em ambientes tais como estes descritos acima. Ao invés disso, este antecedente é somente proporcionado para ilustrar uma área de tecnologia ilustrativa onde algumas concretizações descritas neste documento podem ser praticadas.
BREVE SUMÁRIO
[005] Pelo menos algumas concretizações descritas neste docu mento se referem a direcionar mensagens entre redes virtuais utilizando um mapeamento de um endereço virtual a partir de uma rede física para um endereço virtual da outra rede virtual. Cada rede virtual possui um conjunto válido de endereços virtuais, alguns dos quais sendo designados para nós virtuais dentro da rede virtual correspondente. Em uma concretização, a rede virtual sobrepõe a mesma rede física. Quando uma rede virtual identifica uma mensagem a ser enviada, ela identifica um destino para a mensagem. Alguns destinos podem estar dentro da mesma rede virtual e assim, pode ser direcionado para nós virtuais dentro da rede virtual.
[006] Outros destinos ao invés disso podem ser mapeados para endereços virtuais de outra rede virtual. Neste caso, a informação de roteamento também pode ser obtida e a mensagem pode ser despachada para o endereço virtual da outra rede virtual. Isto pode ser executado sem a necessidade de uma porta de acesso ("gateway"), o qual divulga um endereço público que é globalmente único. Ao invés disso, a lógica dentro da própria rede virtual realiza a troca de mensagens entre as redes virtuais.
[007] Este Sumário é proporcionado para introduzir uma seleção de conceitos de uma forma simplificada, os quais são adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindicado, nem é pretendido para ser utilizado como um auxílio ao determinar o escopo do assunto reivindicado.
BREVE DESCRIÇÃO DOS DESENHOS
[008] De modo a descrever a maneira na qual as vantagens e aspectos citados acima e outras vantagens e aspectos da invenção podem ser obtidos, uma descrição mais particular da invenção brevemente descrita acima será fornecida por referência às concretizações específicas da mesma que são ilustradas nos desenhos anexos. Entendendo que estes desenhos representam somente concretizações típicas da invenção e, portanto, não são para ser consideradas como sendo limitativas de seu escopo, a invenção será descrita e explicada com especificidade e detalhes adicionais através do uso dos desenhos acompanhantes, nos quais:
[009] A Figura 1 ilustra um sistema de computação ilustrativo no qual os princípios descritos neste documento podem ser implementados;
[0010] A Figura 2 ilustra um ambiente de rede que inclui várias re des virtuais sobrepondo uma rede física e se comunicando umas com as outras;
[0011] A Figura 3 ilustra um fluxograma de um método para direci onar uma mensagem entre redes virtuais de acordo com os princípios descritos neste documento;
[0012] A Figura 4A de forma abstrata ilustra uma mensagem origi nal utilizada no exemplo da Figura 3, e que inclui um "payload" e um cabeçalho;
[0013] A Figura 4B de forma abstrata ilustra uma primeira mensa gem encapsulada que encapsula mensagem original da Figura 4A com um primeiro cabeçalho de encapsulamento; e
[0014] A Figura 4C de forma abstrata ilustra uma segunda mensa gem encapsulada que encapsula a primeira mensagem encapsulada da Figura 4B com um segundo cabeçalho de encapsulamento.
DESCRIÇÃO DETALHADA
[0015] Pelo menos algumas concretizações descritas neste docu- mento estão relacionadas com o roteamento de mensagens entre redes virtuais utilizando um mapeamento de endereços virtuais a partir de uma rede virtual para endereços virtuais da outra rede virtual. Cada rede virtual possui um conjunto válido de endereços virtuais, alguns dos quais sendo designados para nós virtuais dentro da rede correspondente. Em uma concretização, as redes virtuais sobrepõem a mesma rede física. Quando uma rede virtual identifica uma mensagem a ser enviada, ela identifica um destino para a mensagem. Alguns endereços virtuais de destino podem estar dentro da mesma rede virtual e assim, podem ser roteados para nós virtuais dentro da rede virtual.
[0016] Outros endereços virtuais de destino podem ao invés disso ser mapeados para um endereço virtual de outra rede virtual. Neste caso, a informação de roteamento também pode ser obtida e a mensagem pode ser despachada para o endereço virtual da outra rede virtual. Isto pode ser executado sem a necessidade de uma porta de acesso, o qual divulga um endereço público que é globalmente único. Ao invés disso, a lógica dentro da própria rede virtual realiza a troca de mensagens entre redes virtuais.
[0017] Apesar de o assunto ter sido descrito em linguagem especí fica para aspectos estruturais e/ou atos metodológicos, é para ser entendido que o assunto definido nas reivindicações anexas não está necessariamente limitado aos aspectos ou atos descritos acima, ou à ordem dos atos descritos acima. Ao invés disso, os aspectos e atos descritos são revelados como formas ilustrativas para implementar as reivindicações.
[0018] Os sistemas de computação atualmente estão crescente mente assumindo uma ampla variedade de formas. Os sistemas de computador podem, por exemplo, ser dispositivos portáteis, utensílios, computadores laptop, computadores de mesa, computadores de grande porte, sistemas de computação distribuída, ou mesmo dispositivos que não têm sido convencionalmente considerados um sistema de computação. Nesta descrição e nas reivindicações, o termo "sistema de computação" é definido amplamente como incluindo qualquer dispositivo ou sistema (ou combinação dos mesmos) que inclua pelo menos um processador físico e tangível, e uma memória física e tangível capaz de ter na mesma instruções executáveis por computador que podem ser executadas pelo processador. Um sistema de computação pode ser distribuídos através de um ambiente em rede e pode incluir vários sistemas de computação constituintes.
[0019] Como ilustrado na Figura 1, em sua configuração mais bá sica, um sistema de computação 100 tipicamente inclui pelo menos uma unidade de processamento 102 e a memória 104. A memória 104 pode ser memória física do sistema, a qual pode ser volátil, não volátil, ou alguma combinação das duas. O termo "memória" também pode ser utilizado neste documento para se referir a armazenamento em massa não volátil tal como meio físico de armazenamento. Se o sistema de computação for distribuído, a capacidade de processamento, de memória e/ou de armazenamento pode ser igualmente distribuída.
[0020] Como utilizado neste documento, o termo "módulo executá vel" ou "componente executável " pode se referir a objetos de software, roteamentos, ou métodos que podem ser executados no sistema de computação. Os diferentes componentes, módulos, mecanismos e serviços descritos neste documento podem ser implementados como objetos ou processos que executam no sistema de computação (por exemplo, como encadeamentos separados).
[0021] Na descrição a seguir, são descritas concretizações com referência aos atos que são executados por um ou mais sistemas de computação. Se tais atos forem implementados em software, um ou mais processadores do sistema de computação associado que executa o ato direcionam a operação do sistema de computação em respos- ta a ter as instruções executáveis por computador executadas. Por exemplo, tais instruções executáveis por computador podem ser incorporadas em um ou mais meios legíveis por computador que formam um produto de programa de computador. Um exemplo de tal operação envolve a manipulação de dados. As instruções executáveis por computador (e os dados manipulados) podem ser armazenadas na memória 104 do sistema de computação 100. O sistema de computação 100 também pode conter canais de comunicação 108 que permitem ao sistema de computação 100 se comunicar com outros processadores de mensagem através, por exemplo, da rede 110.
[0022] As concretizações descritas neste documento podem com preender ou utilizar um sistema de computador de propósito especial ou de propósito geral que inclui hardware de computador, tal como, por exemplo, um ou mais processadores e memória do sistema, como discutido abaixo em maiores detalhes. A memória do sistema pode estar incluída dentro da memória geral 104. A memória do sistema pode também ser referida como "memória principal", e inclui localizações da memória que são endereçáveis por pelo menos uma unidade de processamento 102 através de um barramento de memória, caso em que a localização de endereço é comunicada no próprio barramento de memória. A memória do sistema tradicionalmente tem sido volátil, mas os princípios descritos neste documento também se aplicam em circunstâncias nas quais a memória do sistema é parcialmente, ou mesmo totalmente, não volátil.
[0023] As concretizações dentro do escopo da presente invenção também incluem meios legíveis por computador físicos e outros meios legíveis por computador para transportar ou armazenar instruções executáveis por computador e/ou estruturas de dados. Tais meios legíveis por computador também podem ser qualquer meio disponível que possa ser acessado por um sistema de computador de propósito geral ou de propósito especial. Os meios legíveis por computador que armazenam instruções executáveis por computador e/ou estruturas de dados são meios de armazenamento do computador. Os meios legíveis por computador que transportam instruções executáveis por computador e/ou estruturas de dados são meios de transmissão. Assim, a título de exemplo e não de limitação, as concretizações da invenção podem compreender pelo menos dois tipos distintamente diferentes de meios legíveis por computador: meio de armazenamento do computador e meio de transmissão.
[0024] Os meios de armazenamento do computador são meios físicos de armazenamento de hardware que armazenam instruções e/ou estruturas de dados executáveis por computador. Os meios físicos de armazenamento de hardware incluem hardware do computador, tal como RAM, ROM, EEPROM, unidades de estado sólido ("SSDs"), memória flash, memória de mudança de fase ("PCM"), armazenamento em disco ótico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro dispositivo(s) de armazenamento de hardware que possa ser utilizado para armazenar código de programa na forma de instruções ou de es-truturas de dados legíveis por computador, as quais podem ser acessadas e executadas por um sistema de computador de propósito geral ou de propósito especial para implementar a funcionalidade da invenção revelada.
[0025] Os meios de transmissão podem incluir uma rede e/ou liga ções de dados que podem ser utilizadas para transportar o código de programa na forma de instruções ou de estruturas de dados executáveis por computador, e que podem ser acessadas por um sistema de computador de propósito geral ou de propósito especial. Uma "rede" é definida como uma ou mais ligações de dados que permitem o transporte de dados eletrônicos entre sistemas e/ou módulos de computa- dor e/ou outros dispositivos eletrônicos. Quando a informação é transferida ou proporcionada através de uma rede ou de outra conexão de comunicações (seja com uso de fios, sem uso de fios ou uma combinação de com uso de fios ou sem uso de fios) para um sistema de computador, o sistema de computador pode ver a conexão como meio de transmissão. Combinações do dito acima também devem estar incluídas dentro do escopo de meio legível por computador.
[0026] Adicionalmente, ao alcançar os vários componentes do sis tema de computador, o código de programa na forma de instruções ou de estruturas de dados executáveis por computador pode ser transferido automaticamente do meio de transmissão para o meio de armazenamento do computador (ou vice-versa). Por exemplo, as instruções ou estruturas de dados executáveis por computador recebidas através de uma rede ou de ligação de dados podem ser colocadas em memória temporária na RAM dentro de um módulo de interface de rede (por exemplo, um "NIC"), e então, eventualmente transferidas para a RAM do sistema de computação e/ou para meio de armazenamento do computador menos volátil em um sistema de computador. Assim, deve ser entendido que o meio de armazenamento em massa pode estar incluído nos componentes do sistema de computador que também (ou mesmo principalmente) utilizam o meio de transmissão.
[0027] As instruções executáveis por computador compreendem, por exemplo, instruções e dados que, quando executados em um ou mais processadores, causam que um sistema de computador de propósito geral, sistema de computador de propósito especial, ou dispositivo de processamento de propósito especial execute alguma função ou grupo de funções. As instruções executáveis por computador podem ser, por exemplo, binários, instruções em formato intermediário tal como linguagem assembly, ou mesmo código fonte.
[0028] Os versados na técnica irão apreciar que os princípios des- critos neste documento podem ser praticados em ambiente de computação em rede com vários tipos de configurações de sistema de computador, incluindo, computadores pessoais, computadores de mesa, computadores laptop, processadores de mensagem, dispositivos portáteis, sistemas multiprocessador, eletroeletrônicos baseados em microprocessador ou programáveis, PCs de rede, minicomputadores, computadores de grande porte, telefones celulares, PDAs, tablets, pagers, roteadores, comutadores, dentre outros. A invenção também pode ser praticada em ambientes de sistema distribuído onde sistemas de computador locais e remotos, os quais estão ligados (seja por ligações de dados físicas, ligações de dados sem uso de fios, ou por uma combinação de ligações de dados físicas e sem uso de fios) através de uma rede, ambos executam tarefas. Assim, em um ambiente de sistema distribuído, um sistema de computador pode incluir vários sistemas de computador constituintes. Em um ambiente de sistema distribuído, os módulos de programa podem estar localizados tanto nos dispositivos de armazenamento em memória locais como remotos.
[0029] Os versados na técnica também irão apreciar que a inven ção pode ser praticada em um ambiente de computação em nuvem. Os ambientes de computação em nuvem podem ser distribuídos, apesar de isto não ser requerido. Quando distribuídos, os ambientes de computação em nuvem podem ser distribuídos de forma internacional dentro de uma organização e/ou possuírem componentes possuídos através de várias organizações. Nesta descrição e nas reivindicações seguinte, "computação em nuvem" é definida como um modelo para permitir acesso à rede sob demanda para um grupo compartilhado de recursos de computação configuráveis (por exemplo, redes, servidores, armazenamento, aplicativos e serviços). A definição de "computação em nuvem" não está limitada a qualquer uma dentre outras várias vantagens que podem ser obtidas a partir de tal modelo quando apro- priadamente implementado.
[0030] A Figura 2 ilustra um ambiente em rede 200 que inclui vá rias redes virtuais 201. Na concretização ilustrada, existem três redes virtuais ilustradas incluindo a rede virtual 201A, a rede virtual 201B e a rede virtual 201C. Entretanto, as elipses 201D simbolicamente representam que podem existir qualquer número (dois ou mais) de redes virtuais 201 dentro do ambiente em rede 200. Na concretização ilustrada, cada uma das redes virtuais 201 opera através de uma rede física 220.
[0031] Cada rede virtual inclui um ou mais nós virtuais. Um "nó vir tual" é um componente (tal como um módulo de software, objeto, função, método, coleção dos mesmos, ou combinações dos mesmos) que seja capaz de processar informação, mas não pode ser confinado a qualquer limite físico. Por exemplo, o nó pode ser um componente de software, aplicativo, máquina virtual, comutador virtual, virtualizador, ou qualquer outro componente capaz de enviar e/ou receber mensagens de rede.
[0032] Uma rede virtual pode incluir qualquer número de nós virtu ais, mas no exemplo ilustrado, cada rede virtual é ilustrada como incluindo três nós virtuais. Por exemplo, a rede virtual 201A inclui os nós virtuais 210A, os quais incluem os nós virtuais 211A, 212A e 213A. Da mesma forma, a rede virtual 201B inclui os nós virtuais 210B, os quais incluem os nós virtuais 211B, 212B e 213B. Finalmente, a rede virtual 201C inclui os nós virtuais 210C, os quais incluem os nós virtuais 211C, 212C e 213C. As elipses 214A, 214B e 214C simbolicamente representam que pode existir qualquer número de nós virtuais dentro de qualquer dada rede virtual, e o número de nós virtuais em qualquer dada rede virtual pode alterar à medida que os nós virtuais são termi-nados ou criados com o passar do tempo.
[0033] Na concretização ilustrada, cada rede virtual inclui compo- nentes adicionais que permitem que as mensagens da rede sejam roteadas entre nós virtuais incluindo entre redes virtuais.
[0034] Por exemplo, a rede virtual 201A inclui um componente de pesquisa 202A que identifica um endereço virtual de destino para uma mensagem que está sendo transmitida por um dos nós virtuais na rede virtual 201A ou que está em transmissão a partir de outro nó virtual em outra rede virtual (por exemplo, rede virtual 201B ou rede virtual 201C).
[0035] A rede virtual 201A também inclui a lógica de roteamento interno 203A que é configurada para rotear dentro da rede virtual 201A quaisquer mensagens que possuam um endereço virtual de destino correspondendo a qualquer um dos nós virtuais internos 210A. A rede virtual 201A também inclui uma informação de roteamento de endereço interno 204A que identifica os endereços virtuais para cada um dos nós virtuais (por exemplo, nós virtuais 211A, 212A e 213A) dentro da rede virtual 201A, e qualquer informação de roteamento utilizada para rotear a mensagem para cada nó virtual. Por exemplo, pode existir um registro que contém tal informação de roteamento para cada endereço virtual dos nós virtuais 210A. A lógica de roteamento interno 203A pode utilizar a informação de roteamento de endereço interno 204A (por exemplo, o registro correspondendo ao endereço virtual de destino) para identificar o nó virtual interno que é o destino da mensagem, e rotear a mensagem para este nó virtual interno.
[0036] A rede virtual 201A também inclui a lógica de roteamento externo 206A que é configurada para rotear mensagens que não são destinadas para a rede virtual 201A. A rede virtual 201A também inclui uma informação de roteamento de endereço externo 205A que corresponde a outro dos endereços virtuais que 1) são endereços virtuais válidos para a rede virtual 201A, mas que 2) cada um é mapeado para um endereço válido em uma rede virtual externa correspondente 201B ou 201C. Por exemplo, pode existir um registro que contém tal informação de roteamento para cada um dos vários nós externos com o qual qualquer um dos nós virtuais 210A dentro da rede virtual 201A pode ser comunicar.
[0037] A lógica de roteamento externo 206A pode utilizar a infor mação de roteamento de endereço externo 205A (por exemplo, um registro correspondendo ao endereço virtual de destino) para identificar um endereço virtual mapeado correspondendo a um dos nós virtuais nas outras redes virtuais 201B e 201C. A lógica de roteamento externo 206A também pode utilizar a informação de roteamento externo 205A (por exemplo, o registro correspondendo ao endereço virtual de destino) para rotear a mensagem através da rede física 220 para a lógica de roteamento interno da próxima rede virtual que manipula a mensagem (por exemplo, a lógica de roteamento interno 202B da rede virtual 201B se o endereço virtual mapeado estiver dentro da rede virtual 201B, ou a lógica de roteamento interno 202C da rede virtual 201C se o endereço virtual mapeado estiver dentro da rede virtual 201C). Em uma concretização, o componente de pesquisa e a lógica de roteamento externo podem ser substituídos por um servidor de Servidor de Nome de Domínio (DNS), o qual é equipado para retornar o endereço virtual mapeado dado um nome (por exemplo, localizador de recurso uniforme) do destino.
[0038] Observa-se que a próxima rede virtual para manipular a mensagem pode ser a rede virtual na qual o nó virtual de destino está operando, ou pode simplesmente representar um ponto intermediário à medida que a mensagem passa de uma rede virtual para a próxima. Assim, as redes virtuais 201B e 201C são apresentadas como incluindo componentes similares a estes da rede virtual 201A. Por exemplo, a rede virtual 201B inclui o componente de pesquisa 202B, a lógica de roteamento interno 203B, a informação de roteamento de endereço interno 204B, a informação de roteamento de endereço externo 205B, e a lógica de roteamento externo 206B, os quais podem executar as mesmas operações com respeito à rede virtual 201B que as operações descritas acima como sendo executadas pelos componentes correspondentes 202A, 203A, 204A, 205A e 206A para a primeira rede virtual 201.
[0039] Por consequência, as mensagens recebidas pelo compo nente de pesquisa 202B da segunda rede virtual 201B podem, da mesma forma, dependendo de se existe um nó virtual interno endereçado pela mensagem recebida, 1) internamente rotear a mensagem para um dos nós virtuais 210B da rede virtual 201B utilizando a lógica de roteamento interno 203B e a informação de roteamento de endereço interno 204B ou 2) externamente rotear a mensagem para um dos nós virtuais das outras redes virtuais 201A ou 201C utilizando a lógica de roteamento externo 206B e a informação de roteamento de endereço externo 205B.
[0040] Da mesma forma, mensagens recebidas pelo componente de pesquisa 202C da terceira rede virtual 201C podem, dependendo de se existe um nó virtual interno endereçado pela mensagem recebida, 1) internamente rotear a mensagem para um dos nós virtuais 210C da rede virtual 201C utilizando a lógica de roteamento interno 203C e a informação de roteamento de endereço interno 204C ou 2) externamente rotear a mensagem para um dos nós virtuais das outras redes virtuais 201A ou 201B utilizando a lógica de roteamento externo 206C e a informação de roteamento de endereço externo 205C.
[0041] Assim, uma mensagem pode ser transportada entre nós virtuais dentro da mesma rede virtual, ou pode ser transportada entre nós virtuais em diferentes redes virtuais. Adicionalmente, para estas mensagens transportadas entre nós virtuais em diferentes redes virtuais, tais mensagens podem ser transferidas utilizando nenhuma ou re- des virtuais intermediárias.
[0042] Cada uma das redes virtuais 201A, 201B e 201C inclui um componente de gerenciamento correspondente 207A, 207B e 207C, respectivamente. O componente de gerenciamento 207A pode ser utilizado para configurar a informação de roteamento de endereço interno 204A e a informação de roteamento de endereço externo 205A. Por exemplo, por alterar a informação de roteamento interno, os nós virtuais podem ser criados, terminados, ou configurados dentro da rede virtual correspondente. Por alterar a informação de roteamento externo, as comunicações podem ser habilitadas com um ou mais nós virtuais externos. De forma similar, o componente de gerenciamento 207B pode ser utilizado para configurar a informação de roteamento de endereço interno 204B e a informação de roteamento de endereço externo 205B. Além disso, o componente de gerenciamento 207C po-de ser utilizado para configurar a informação de roteamento de endereço interno 204C e a informação de roteamento de endereço externo 205C.
[0043] Em uma concretização, canais bidirecionais de suavização podem ser criados pela adição de informação de roteamento adicional associada com um caminho de retorno dentro do registro correspondente da informação de roteamento de endereço externo. Por exemplo, considere uma situação na qual uma mensagem é transmitida a partir de um primeiro nó virtual particular em uma primeira rede virtual particular para um segundo nó virtual particular em uma segunda rede virtual particular.
[0044] Como anteriormente descrito, o componente de pesquisa da primeira rede virtual particular recebe a mensagem a partir do primeiro nó virtual particular, e verifica que o endereço virtual de destino corresponde à informação de roteamento de endereço externo. A lógica de roteamento externo da primeira rede virtual particular utiliza o endereço virtual mapeado correspondendo ao segundo nó virtual particular para despachar a mensagem. Entretanto, antes de fazer assim, o registro pode incluir um endereço virtual de retorno correspondendo ao endereço virtual mapeado. O endereço virtual de retorno é um endereço virtual válido da segunda rede virtual particular.
[0045] Antes de despachar a mensagem para o endereço virtual mapeado correspondendo ao segundo nó virtual particular, a lógica de roteamento externo da primeira rede virtual particular modifica a mensagem de modo que respostas para a mensagem são roteadas para o endereço virtual de retorno. Da mesma forma, a informação de rotea- mento de endereço externo da segunda rede virtual particular é da mesma forma alterada de modo que a mensagem destinada para o endereço virtual de retorno é mapeada para o endereço virtual do primeiro nó virtual particular. Isto permite comunicações bidirecionais entre dois nós virtuais em diferentes redes virtuais pela modificação da informação de roteamento de endereço externo em cada uma das duas redes virtuais. Isto foi realizado sem ter que divulgar um endereço público globalmente único. Assim, uma porta de acesso não é utilizado para comunicação entre diferentes redes virtuais.
[0046] A Figura 3 ilustra um fluxograma de um método 300 para rotear uma mensagem a partir de uma primeira rede virtual particular (por exemplo, rede virtual 201A na Figura 2) para uma segunda rede virtual particular (por exemplo, rede virtual 201B na Figura 2). À medida que o método 300 pode ser executado no contexto do ambiente de rede 200 da Figura 2, o método 300 da Figura 3 será descrito com referência frequência ao ambiente de rede 200 da Figura 2. Em particular, neste exemplo, uma mensagem é enviada a partir do nó virtual 211A para o nó virtual 212C via a segunda rede virtual 201B (como representado pelas quatro setas 221 até 224), e uma resposta é enviada de volta via a segunda rede virtual 201B (como representado pe- las quatro setas 225 até 228).
[0047] Neste exemplo de comunicação bidirecional, o método 300 será executado seis vezes. A primeira instância do método 300 comunica a mensagem a partir do nó virtual de origem 211A na primeira rede virtual 201A para a segunda rede virtual 201B (veja as setas 221 e 222). A segunda instância do método 300 comunica a mensagem a partir da segunda rede virtual para a rede virtual alvo 201C (veja a seta 223). A terceira instância do método 300 comunica a mensagem para o nó virtual alvo 212C na rede virtual alvo 201C (veja a seta 224).
[0048] A quarta instância do método 300 comunica a resposta a partir do nó virtual alvo 212C na terceira rede virtual 201C para a segunda rede virtual 201B (veja as setas 225 e 226). A quinta instância do método 300 comunica a resposta a partir da segunda rede virtual 201B para a rede virtual de origem 201A (veja a seta 227). A sexta instância e a instância final do método 300 é executada para comunicar a resposta para o nó virtual de origem 211A na rede virtual de origem 201A (como representado pela seta 228).
[0049] A primeira instância da execução do método 300 será ago ra descrita com respeito à Figura 2 e às setas 221 e 222. A rede virtual que executa o método (rede virtual 201A na primeira instância do método 300) recebe uma mensagem a ser distribuída (ato 301). Esta recepção da mensagem é executada pelo componente de pesquisa em cada rede virtual, e no caso geral poderia incluir receber a mensagem a partir do nó virtual de origem que criou a mensagem, ou poderia inclui receber a mensagem a partir de outra rede virtual. No caso da primeira instância do método 300, o componente de pesquisa 202A da primeira rede virtual 201A recebe a mensagem (como representado pela seta 221) a partir do nó virtual de origem 211A.
[0050] Então, a rede virtual identifica o endereço virtual de destino na mensagem (ato 302). Este endereço virtual de destino não é ne- cessariamente, e quase certamente não é, o mesmo endereço que o endereço virtual do nó virtual alvo na rede virtual alvo. Entretanto, o endereço virtual de destino expresso na mensagem neste ponto é um endereço virtual válido no meio do conjunto de endereços virtuais válidos atribuídos para a rede virtual. Por exemplo, no caso da seta 221, a mensagem irá possuir um endereço virtual de destino que é um dos endereços virtuais válidos da primeira rede virtual 201A. Por exemplo, um exemplo da mensagem neste ponto é de forma abstrata representado na Figura 4A. A mensagem 400A inclui um "payload" 401A e um cabeçalho 402A, com o cabeçalho incluindo um endereço virtual de origem 403A (simbolizado por "A") e um endereço virtual de destino 404A (simbolizado como "B"). Neste exemplo, o componente de pesquisa 202A determina que o endereço virtual de destino é "B" (o qual pode de forma abstrata representar um endereço IP). Os outros endereços "A", "C", "D", "E" e "F" da mesma forma podem simbolizar endereços IP.
[0051] Então, a rede virtual acessa um registro associado com o endereço virtual de destino na rede virtual (ato 303). Por exemplo, o componente de pesquisa 202A da primeira rede virtual 201A pode acessar a informação de roteamento de endereço interno 204A e/ou a informação de roteamento de endereço externo 205A para acessar um registro correspondendo ao endereço destino "B".
[0052] Então, a rede virtual determina se o endereço virtual de destino é designado para um nó virtual dentro da mesma rede virtual ("Interno" do bloco de decisão 304), ou se o endereço virtual de destino está mapeado para um endereço virtual associado com outra rede virtual ("Externo" no bloco de decisão 304). Por exemplo, na Figura 2, se o registro estava na informação de roteamento de endereço interno 204A, então o endereço virtual de destino está designado para um nó virtual dentro da mesma rede virtual ("Interno" no bloco de decisão 304). Se o registro estava na informação de roteamento de endereço externo 205A, então o endereço virtual de destino é mapeado para um endereço virtual em outra rede virtual ("Externo" no bloco de decisão 304). O endereço virtual mapeado é um endereço virtual válido da próxima rede virtual.
[0053] Se o endereço virtual de destino for um endereço virtual interno ("Interno" no bloco de decisão 304), então a mensagem é roteada para o nó virtual interno à rede virtual (ato 305) utilizando informação potencialmente incluída dentro do registro correspondendo ao endereço virtual de destino. Por exemplo, isto pode ser realizado na Figura 2 utilizando a lógica de roteamento interno 203A.
[0054] Entretanto, se o endereço virtual de destino for mapeado para um endereço virtual de outra rede virtual ("Externo" no bloco de decisão 304), a mensagem é modificada (ato 306) de modo a ser endereçada para o endereço virtual mapeado na próxima rede virtual. Por exemplo, no exemplo da Figura 2, suponha que o endereço virtual "D" é um endereço virtual válido na segunda rede virtual 201B, a mensagem pode ser encapsulada com outro cabeçalho que possui um endereço virtual de destino de "D". Além disso, para facilitar comunicações bidirecionais, a mensagem também é modificada (como parte do ato 306) de modo que quando a outra rede virtual manipular uma res-posta para a mensagem, a resposta é enviada para um endereço virtual válido da próxima rede virtual.
[0055] Por exemplo, no exemplo da Figura 2, suponha que o ende reço virtual "C" é um endereço virtual válido na segunda rede virtual 201B. Neste caso, o cabeçalho de encapsulamento também pode incluir um endereço virtual de origem de "C". A Figura 4B ilustra um exemplo da mensagem encapsulada 400B incluindo um "payload" encapsulada 401B que representa toda a mensagem 400A, e que inclui um cabeçalho de encapsulamento 402B que inclui um endereço virtual de origem 403B (simbolizado como "C") e um endereço virtual de destino 404B (simbolizado como "D").
[0056] Então, a rede virtual roteia a mensagem modificada para o endereço virtual de destino do endereço virtual modificado (ato 307). O registro associado com o endereço virtual de destino original pode incluir informação de roteamento para ajudar com este roteamento. Por exemplo, no exemplo da Figura 2, a lógica de roteamento externo 206A pode utilizar o registro associado com o endereço virtual de destino "B" para rotear a mensagem (como representado pela seta 222) através da rede física 220 em direção ao endereço virtual de destino "D" que é um endereço virtual válido da segunda rede virtual 201B.
[0057] Observe que nenhum, um ou ambos os endereços virtuais "C" e "D" também podem ter sido endereços válidos para a primeira rede virtual 201A. Entretanto, a comunicação como descrita neste documento ainda será realizada contanto que os endereços virtuais "C" e "D" não fossem atribuídos para um nó virtual na primeira rede virtual 201A.
[0058] Fora do exemplo da Figura 2, a primeira rede virtual 201A pode utilizar o método 300 qualquer número de vezes para enviar mensagens para a segunda rede virtual 201B. Adicionalmente, a primeira rede virtual 201B pode utilizar o método 300 qualquer número de vezes para enviar mensagens para a terceira rede virtual 201C mesmo sem o uso da segunda rede virtual como um intermediário, contanto que a informação de roteamento exista para tal transmissão direta dentro da informação de roteamento de endereço externo 205A.
[0059] Isto completa a primeira das seis instâncias do método 300 para o exemplo, desse modo descrevendo como as comunicações associadas com as setas 221 e a seta 222 podem ser executadas.
[0060] A segunda instância da execução do método 300 agora se rá descrita com respeito à Figura 2 e à seta 223. Neste caso, a segun- da rede virtual 201B executa o método 300. O componente de pesquisa 202B recebe a mensagem a ser distribuída (ato 301) como representado pela seta 222. O componente de pesquisa 202B então identifica o endereço virtual de destino como o endereço virtual "D" (ato 302), um endereço virtual válido da segunda rede virtual 201B. O componente de pesquisa 202B então acessa um registro associado com o endereço virtual de destino "D" (ato 303). Neste caso, o componente de pesquisa 202B encontra um registro dentro da informação de roteamento externo "Externo" no bloco de decisão 304), registro este que inclui dois endereços virtuais mapeados "E" e "F", ambos os endereços virtuais válidos da terceira rede virtual 201C.
[0061] A mensagem é novamente modificada (por exemplo, en capsulada) com o endereço virtual de origem "E" e com o endereço virtual de destino "F". A Figura 4C ilustra um exemplo da mensagem duplamente encapsulada 400C incluindo um "payload" 401C que representa toda a mensagem 400B, e que inclui um segundo cabeçalho de encapsulamento 402C que inclui um endereço virtual de origem 403C (simbolizado como "E") e um endereço virtual de destino 404C (simbolizado como "F"). A lógica de roteamento externo 206B então roteia a mensagem modificada (como representado pela seta 223) através da rede física 220 em direção ao endereço virtual de destino "F" que é um endereço virtual válido da terceira rede virtual 201C. Isto completa a segunda das seis instâncias do método 300 para o exemplo, desse modo descrevendo como as comunicações associadas com a seta 223 podem ser executadas.
[0062] A terceira instância da execução do método 300 agora será descrita com respeito à Figura 2 e à seta 224. Neste caso, a terceira rede virtual 201C executa o método 300. O componente de pesquisa 202C recebe a mensagem a ser distribuída (ato 301) como representado pela seta 223. O componente de pesquisa 202C então identifica o endereço virtual de destino como o endereço virtual "F" (ato 302), um endereço virtual válido da terceira rede virtual 201C. O componente de pesquisa 202D então acessa um registro associado com o endereço virtual de destino "F" (ato 303). Neste caso, o componente de pesquisa 202B encontra um registro dentro da informação de roteamento de endereço interno 204C ("Interno" no bloco de decisão 304), o qual corresponde ao nó virtual alvo 212C. A lógica de roteamento interno 203C é então utilizada para rotear a mensagem para o nó virtual alvo (ato 305) como representado pela seta 224.
[0063] O nó virtual alvo 212C recebe e processa a mensagem pa ra gerar uma resposta. A resposta é comunicada de volta para o nó virtual de origem 211A utilizando as três instâncias finais do método 300. Entretanto, neste caso, a mensagem é a resposta para a mensagem original.
[0064] A quarta instância da execução do método 300 agora será descrita com respeito à Figura 2 e às setas 224 e 225. A rede virtual que executa o método 300 é a terceira rede virtual 201C. O componente de pesquisa 202C recebe a mensagem de resposta a partir do nó virtual alvo 212C como representado pela seta 225 (ato 301). O componente de pesquisa 202C então identifica o endereço virtual de destino como o endereço virtual "E" (ato 302). Lembrando que a mensagem original foi modificada de modo que as respostas para a mensagem seriam enviadas para o endereço virtual "E", um endereço válido da terceira rede virtual 201C. O componente de pesquisa 202C então acessa um registro associado com o endereço virtual de destino "E" (ato 303). Neste caso, o registro está na informação de roteamento externo 204C ("Externo" no bloco de decisão 304), e determina que o endereço virtual "E" está mapeado para o "endereço virtual C", um endereço virtual válido na segunda rede virtual 201B. A lógica de rotea- mento externo 206C modifica a mensagem (ato 306) de modo a ser despachada em direção ao endereço virtual "C" (ato 307) como representado pela seta 226.
[0065] A quinta instância da execução do método 300 agora será descrita com respeito à Figura 2 e à seta 227. Neste caso, a segunda rede virtual 201B executa o método 300. O componente de pesquisa 202B recebe a mensagem de resposta a ser distribuída (ato 301) como representado pela seta 226. O componente de pesquisa 202B então identifica o endereço virtual de destino como o endereço virtual "C" (ato 302), um endereço virtual válido da segunda rede virtual 201B. O componente de pesquisa 202B então acessa um registro associado com o endereço virtual de destino "C" (ato 303). Neste caso, o componente de pesquisa 202B encontra um registro dentro da informação de roteamento externo ("Externo" no bloco de decisão 304), o qual é mapeado para um endereço virtual "A", um primeiro endereço válido na primeira rede virtual 201A, e que acontece de ser o endereço virtual do nó virtual de origem 211A da mensagem original. A lógica de rotea- mento externo 206B modifica a mensagem (ato 306) de modo a ser despachada em direção ao endereço virtual "A" (ato 307) como representado pela seta 227.
[0066] A sexta e última instância da execução do método 300 agora será descrita com respeito à Figura 2 e à seta 228. Neste caso, a primeira rede virtual 201A executa o método 300. O componente de pesquisa 202A recebe a mensagem de resposta a ser distribuída (to 301) como representado pela seta 227. O componente de pesquisa 202A então identifica o endereço virtual de destino como o endereço virtual A" (ato 302), um endereço virtual válido da primeira rede virtual 201A. O componente de pesquisa 202A então acessa um registro associado com o endereço virtual de destino "A" (ato 303). Neste caso, o componente de pesquisa 202A encontra um registro dentro da informação de roteamento de endereço interno 204A ("Interno" no bloco de decisão 304), o qual cor- responde ao nó virtual de origem 211A. A lógica de roteamento interno 203A é então utilizada para rotear a mensagem para o nó virtual de origem (ato 305) como representado pela seta 228.
[0067] Por consequência, um mecanismo que foi descrito neste do cumento onde nós virtuais podem se comunicar fora de redes virtuais sem o uso de uma porta de acesso. As concretizações descritas são para ser consideradas em todos os aspectos somente como ilustrativas e não restritivas. Portanto, o escopo da invenção é indicado pelas reivindicações anexas ao invés do que pela descrição precedente. Todas as alterações que surjam dentro do significado e da faixa de equivalência das reivindicações são para ser abrangidas dentro de seu escopo.

Claims (14)

1. Método para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso, a primeira rede virtual possuindo uma primeira pluralidade de endereços virtuais válidos, alguns dos quais sendo atribuídos para nós virtuais na primeira rede virtual, a segunda rede virtual possuindo uma segunda pluralidade de endereços virtuais válidos, o método caracterizado pelo fato de que compreende: a primeira rede virtual identificar um destino para uma mensagem; a primeira rede virtual acessar um registro interno associado com a rede virtual de destino, o registro contendo pelo menos a primeira pluralidade de endereços virtuais que são endereços virtuais válidos para nós virtuais dentro da primeira rede virtual, e a segunda pluralidade de endereços virtuais que são endereços virtuais válidos dentro da primeira rede virtual mas que são mapeados para uma pluralidade de nós virtuais da segunda rede virtual em que pelo menos um da segunda pluralidade de endereços virtuais válidos não é globalmente único e é alcançado pela primeira rede virtual sem uso de uma porta de acesso remota que publica endereços globalmente únicos para destinos de rede; a primeira rede virtual determinar a partir do registro interno, que o destino de mensagem é mapeado para um endereço virtual válido associado com um nó virtual da segunda rede virtual; e rotear a mensagem em direção ao endereço virtual da segunda rede virtual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: identificar o destino para uma mensagem compreende um ato de identificar um localizador de recurso uniforme do destino da mensagem; acessar um registro associado com o destino compreende um ato de acessar uma entrada para o localizador de recurso uniforme dentro de um servidor de nome de domínio externo à primeira rede virtual, em que a entrada mapeia o localizador de recurso uniforme para o endereço virtual da segunda rede virtual.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: identificar o destino para uma mensagem compreende identificar um endereço virtual de destino que é um da primeira pluralidade de endereços virtuais válidos, o registro associado com o destino estando dentro da primeira rede virtual, o registro incluindo pelo menos duas tabelas separadas, as pelo menos duas tabelas separadas incluindo uma tabela de informação de roteamento de endereço interno e uma tabela de informação de roteamento de endereço externo.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o ato de rotear compreende: rotear a mensagem de uma maneira que quando a segunda rede virtual manipular uma resposta para a mensagem, a resposta é enviada para um endereço virtual válido da segunda rede virtual.
5. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a segunda rede virtual é configurada de modo que quando a resposta com o endereço virtual válido da segunda rede virtual é manipulada, a resposta é roteada em direção a um nó virtual na primeira rede virtual que transmitiu a mensagem.
6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o endereço virtual da segunda rede virtual é um endereço virtual válido da primeira rede virtual, mas, contudo, a mensa- gem é roteada para a segunda rede virtual.
7. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a mensagem é uma primeira mensagem, o endereço virtual de destino é um primeiro endereço virtual de destino, o registro é um primeiro registro, o endereço virtual da segunda rede virtual é um primeiro endereço virtual da segunda rede virtual, o método ainda compreendendo: identificar um segundo endereço virtual de destino para uma segunda mensagem, o segundo endereço virtual de destino sendo um dentre a primeira pluralidade de endereços virtuais válidos; acessar um segundo registro associado com o segundo endereço virtual de destino; determinar a partir do segundo registro, que o segundo endereço virtual de destino está mapeado para um segundo endereço virtual da segunda rede virtual; e rotear a segunda mensagem em direção ao segundo endereço virtual da segunda rede virtual.
8. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a mensagem é uma primeira mensagem, o endereço virtual de destino é um primeiro endereço virtual de destino, o registro é um primeiro registro, o método ainda compreendendo: identificar um segundo endereço virtual de destino para uma segunda mensagem, o segundo endereço virtual de destino sendo um dentre a primeira pluralidade de endereços virtuais válidos; acessar um segundo registro associado com o segundo endereço virtual de destino; determinar a partir do segundo registro, que o segundo endereço virtual de destino está mapeado para um endereço virtual de uma terceira rede virtual; e rotear a segunda mensagem em direção ao endereço virtu- al da terceira rede virtual.
9. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a mensagem é uma primeira mensagem, o endereço virtual de destino é um primeiro endereço virtual de destino, o registro é um primeiro registro, o método ainda compreendendo: identificar um segundo endereço virtual de destino para uma segunda mensagem; acessar um segundo registro associado com o segundo endereço virtual de destino; determinar a partir do segundo registro, que o segundo endereço virtual de destino está dentro da primeira rede virtual; e rotear a segunda mensagem em direção ao segundo endereço virtual de destino da primeira rede virtual.
10. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o endereço virtual da segunda rede virtual não é atribuído para um nó virtual da segunda rede virtual.
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o endereço virtual da segunda rede virtual é atribuído para um nó virtual da segunda rede virtual.
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o endereço virtual da segunda rede virtual não é um endereço virtual válido da primeira rede virtual.
13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o registro é um primeiro registro, o método ainda compreendendo: a segunda rede virtual receber a mensagem destinada para o endereço virtual da segunda rede virtual; a segunda rede virtual acessar um registro associado com o endereço virtual da segunda rede virtual; a segunda rede virtual determinar a partir do registro, que o endereço virtual da segunda rede virtual é mapeado para um endereço virtual de uma terceira rede virtual; e rotear a mensagem em direção ao endereço virtual da terceira rede virtual.
14. Sistema de computação caracterizado pelo fato de que compreende: um ou mais processadores; e um ou mais meios de armazenamento legíveis por computador possuindo um método para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso, o método incluindo: a primeira rede virtual possuir uma primeira pluralidade de endereços virtuais válidos, alguns dos quais sendo atribuídos para nós virtuais na primeira rede virtual, a segunda rede virtual possuindo uma segunda pluralidade de endereços virtuais válidos, o método compreendendo: a primeira rede virtual identificar um destino para uma mensagem; a primeira rede virtual acessar um registro interno associado com a rede virtual de destino, o registro contendo pelo menos a primeira pluralidade de endereços virtuais que são endereços virtuais válidos para nós virtuais dentro da primeira rede virtual, e a segunda pluralidade de endereços virtuais que são endereços virtuais válidos dentro da primeira rede virtual mas que são mapeados para uma pluralidade de nós virtuais da segunda rede virtual em que pelo menos um da segunda pluralidade de endereços virtuais válidos não é globalmente único e é alcançado pela primeira rede virtual sem uso de uma porta de acesso remota que publica endereços globalmente únicos para destinos de rede; a primeira rede virtual determinar a partir do registro inter no, que o destino de mensagem é mapeado para um endereço virtual válido associado com um nó virtual da segunda rede virtual; e rotear a mensagem em direção ao endereço virtual da segunda rede virtual.
BR112016015096-1A 2014-01-08 2014-12-24 Método e sistema de computação para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso BR112016015096B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/150,584 US9712438B2 (en) 2014-01-08 2014-01-08 Routing messages between virtual networks
US14/150,584 2014-01-08
PCT/US2014/072305 WO2015105690A1 (en) 2014-01-08 2014-12-24 Routing messages between virtual networks

Publications (2)

Publication Number Publication Date
BR112016015096A2 BR112016015096A2 (pt) 2017-08-08
BR112016015096B1 true BR112016015096B1 (pt) 2023-03-28

Family

ID=52350379

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016015096-1A BR112016015096B1 (pt) 2014-01-08 2014-12-24 Método e sistema de computação para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso

Country Status (5)

Country Link
US (3) US9712438B2 (pt)
EP (1) EP3092753A1 (pt)
CN (1) CN105900407B (pt)
BR (1) BR112016015096B1 (pt)
WO (1) WO2015105690A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170142234A1 (en) * 2015-11-13 2017-05-18 Microsoft Technology Licensing, Llc Scalable addressing mechanism for virtual machines
US10778636B2 (en) * 2016-06-28 2020-09-15 ColorTokens, Inc. Dynamic credential based addressing
CN110419199B (zh) * 2017-03-08 2020-12-15 华为技术有限公司 使用主动式最短路径的sdn中的扁平化l3路由
CN109245983B (zh) * 2017-07-11 2021-11-16 阿里巴巴集团控股有限公司 一种虚拟网络设备、路由设备及虚拟网络的连接方法
US10810033B2 (en) * 2017-08-11 2020-10-20 International Business Machines Corporation Propagating external route changes into a cloud network
CN113170005B (zh) * 2018-09-13 2023-08-08 瑞典爱立信有限公司 支持在通信上耦接的通信设备的网络中的消息的选择性转发的方法和设备
US10999244B2 (en) 2018-09-21 2021-05-04 Microsoft Technology Licensing, Llc Mapping a service into a virtual network using source network address translation
CN109739877B (zh) * 2018-11-21 2020-03-31 比亚迪股份有限公司 数据库系统和数据管理方法
CN113647065B (zh) * 2019-05-02 2023-08-22 华为云计算技术有限公司 虚拟网络拓扑
US11108735B2 (en) * 2019-06-07 2021-08-31 Microsoft Technology Licensing, Llc Mapping subnets in different virtual networks using private address space
US11474846B2 (en) * 2019-07-11 2022-10-18 Microsoft Technology Licensing, Llc Controller for bridging database architectures
CN110519406B (zh) * 2019-08-16 2022-05-17 济南浪潮数据技术有限公司 一种虚拟地址分配方法、装置及ctdb集群和存储介质
CN112688985B (zh) * 2019-10-18 2022-07-12 华为技术有限公司 通信方法及装置
US11516291B2 (en) * 2020-09-29 2022-11-29 Cohesity, Inc. Secure communications of storage tenants that share a storage cluster system
US11632268B2 (en) * 2021-03-30 2023-04-18 Juniper Networks, Inc. Generating route target values for virtual private network routes
CN115314437B (zh) * 2022-06-16 2024-03-01 阿里巴巴(中国)有限公司 容器虚拟网络通信方法和容器虚拟网络

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845203A (en) 1996-01-25 1998-12-01 Aertis Cormmunications Remote access application messaging wireless method
US6097719A (en) 1997-03-11 2000-08-01 Bell Atlantic Network Services, Inc. Public IP transport network
US6611872B1 (en) 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US7552233B2 (en) 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
US20020186698A1 (en) 2001-06-12 2002-12-12 Glen Ceniza System to map remote lan hosts to local IP addresses
US7194553B2 (en) * 2001-10-16 2007-03-20 Microsoft Corporation Resolving virtual network names
EP1579638A1 (en) 2002-12-02 2005-09-28 Operax AB Arrangements and method for hierarchical resource management in a layered network architecture
US7991852B2 (en) 2004-01-22 2011-08-02 Alcatel-Lucent Usa Inc. Network architecture and related methods for surviving denial of service attacks
US20060098664A1 (en) 2004-11-09 2006-05-11 Tvblob S.R.I. Intelligent application level multicast module for multimedia transmission
US7660296B2 (en) 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US8166205B2 (en) 2007-07-31 2012-04-24 Cisco Technology, Inc. Overlay transport virtualization
GB2458154B (en) 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US8046480B2 (en) 2008-03-31 2011-10-25 Amazon Technologies, Inc. Embedding overlay virtual network addresses in underlying substrate network addresses
CN102047245B (zh) * 2008-03-31 2013-07-17 亚马逊技术有限公司 配置计算机节点之间的通信
US9106540B2 (en) 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US8374183B2 (en) * 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8688994B2 (en) 2010-06-25 2014-04-01 Microsoft Corporation Federation among services for supporting virtual-network overlays
US8612576B1 (en) * 2010-06-29 2013-12-17 Amazon Technologies, Inc. Wide area network monitoring
US8825844B2 (en) * 2011-08-30 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) Notifying network operator when virtual addresses do not match on network elements configured for interchassis redundancy

Also Published As

Publication number Publication date
US20150195196A1 (en) 2015-07-09
US10225188B2 (en) 2019-03-05
CN105900407B (zh) 2019-06-28
BR112016015096A2 (pt) 2017-08-08
CN105900407A (zh) 2016-08-24
WO2015105690A1 (en) 2015-07-16
US20180212873A1 (en) 2018-07-26
US9712438B2 (en) 2017-07-18
US9942143B2 (en) 2018-04-10
EP3092753A1 (en) 2016-11-16
US20170295096A1 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
BR112016015096B1 (pt) Método e sistema de computação para rotear uma mensagem a partir de uma primeira rede virtual para uma segunda rede virtual sem o uso de uma porta de acesso
CN109451084B (zh) 一种服务访问方法及装置
CN110875848B (zh) 控制器和用于配置虚拟执行元件的虚拟网络接口的方法
EP3913480B1 (en) Method and apparatus for determining virtual machine migration
CN111131037B (zh) 基于虚拟网关的数据传输方法、装置、介质与电子设备
US8549187B1 (en) System and method of MAC address assignment using IP addresses
JP6087922B2 (ja) 通信制御方法及びゲートウェイ
US10419361B2 (en) Interworking between physical network and virtual network
US9560016B2 (en) Supporting IP address overlapping among different virtual networks
US20150172156A1 (en) Detecting end hosts in a distributed network environment
US11429411B2 (en) Fast ARP cache rewrites in a cloud-based virtualization environment
US11347597B2 (en) I/O to unpinned memory supporting memory overcommit and live migration of virtual machines
EP3369217B1 (en) Multiple gateway operation on single operating system
US11431569B2 (en) Communication apparatus, system, rollback method, and non-transitory medium
JP6162831B2 (ja) パケット通信システム、sdn制御装置、パケット通信方法、及びプログラム
US20190163511A1 (en) Fast Join and Leave Virtual Network
US11949660B2 (en) Methods for enabling enhanced firewall rules via ARP-based annotations
EP4283947A1 (en) Method to build a service function chain in an overlay network
CN117439946A (zh) 报文传输方法、装置及存储介质

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/12/2014, OBSERVADAS AS CONDICOES LEGAIS