A method, comprising: receiving (S130), at a first gateway (AM1), a data packet from a first host (H1) served by the first gateway destined to a second host (H2) served by a second gateway (AM2), the data packet having a header comprising a layer 3 destination address of the second host and a broadcast layer 2 destination address, searching (S131), by the first gateway, a flow table which contains rules for data forwarding and is stored in the first gateway for a layer 2 identity of the second gateway associated with the layer 3 destination address of the second host, if the layer 2 identity of the second gateway is found in the flow table, replacing (S133), by the first gateway, the broadcast layer 2 destination address with the layer 2 identity of the second gateway, and transmitting (S134), by the first gateway, the data packet to the second gateway, if the layer 2 identity of the second gateway is not found in the flow table, searching (S135), by the first gateway, an allocation table which stores the layer 3 addresses of hosts in association with the layer 2 identities of the gateways serving the respective hosts and is stored in the first gateway, for the layer 2 identity of the second gateway associated with the layer 3 destination address, and if the layer 2 identity of the second gateway associated with the layer 3 destination address is found in the allocation table, storing (S139), in the flow table, the layer 2 identity of the second gateway in association with the layer 3 destination address, replacing (S133) the broadcast layer 2 destination address with the layer 2 identity of the second gateway, and transmitting (S134), by the first gateway, the data packet to the second gateway. receiving (S130), at a first gateway (AM1), a data packet from a first host (H1) served by the first gateway destined to a second host (H2) served by a second gateway (AM2), the data packet having a header comprising a layer 3 destination address of the second host and a broadcast layer 2 destination address, searching (S131), by the first gateway, a flow table which contains rules for data forwarding and is stored in the first gateway for a layer 2 identity of the second gateway associated with the layer 3 destination address of the second host, if the layer 2 identity of the second gateway is found in the flow table, replacing (S133), by the first gateway, the broadcast layer 2 destination address with the layer 2 identity of the second gateway, and transmitting (S134), by the first gateway, the data packet to the second gateway, if the layer 2 identity of the second gateway is not found in the flow table, searching (S135), by the first gateway, an allocation table which stores the layer 3 addresses of hosts in association with the layer 2 identities of the gateways serving the respective hosts and is stored in the first gateway, for the layer 2 identity of the second gateway associated with the layer 3 destination address, and if the layer 2 identity of the second gateway associated with the layer 3 destination address is found in the allocation table, storing (S139), in the flow table, the layer 2 identity of the second gateway in association with the layer 3 destination address, replacing (S133) the broadcast layer 2 destination address with the layer 2 identity of the second gateway, and transmitting (S134), by the first gateway, the data packet to the second gateway. <EOS>