From 2ca8bce6e3194af64d383485b73b6f04b339c39d Mon Sep 17 00:00:00 2001 From: Julien Duponchelle Date: Fri, 23 Sep 2016 17:08:05 +0200 Subject: [PATCH] WIP for fixing the nat node Ref #686 --- gns3server/compute/builtin/nodes/cloud.py | 9 +++++---- gns3server/compute/builtin/nodes/nat.py | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gns3server/compute/builtin/nodes/cloud.py b/gns3server/compute/builtin/nodes/cloud.py index 6d28ba5d8..84d495fa2 100644 --- a/gns3server/compute/builtin/nodes/cloud.py +++ b/gns3server/compute/builtin/nodes/cloud.py @@ -198,8 +198,8 @@ def _add_ubridge_connection(self, nio, port_number): if sys.platform.startswith("linux"): # use raw sockets on Linux - yield from self._ubridge_send('bridge add_nio_linux_raw {name} "{interface}"'.format(name=bridge_name, - interface=port_info["interface"])) + yield from self._ubridge_send('bridge add_nio_ethernet {name} "{interface}"'.format(name=bridge_name, + interface=port_info["interface"])) else: if sys.platform.startswith("darwin"): # Wireless adapters are not well supported by the libpcap on OSX @@ -214,8 +214,9 @@ def _add_ubridge_connection(self, nio, port_number): interface=port_info["interface"])) elif port_info["type"] == "tap": - yield from self._ubridge_send('bridge add_nio_tap {name} "{interface}"'.format(name=bridge_name, - interface=port_info["interface"])) + yield from self._ubridge_send('bridge add_nio_tap {name} "{interface}"'.format(name=bridge_name, interface=port_info["interface"])) + if port_info["interface"].startswith("nat"): + yield from self._ubridge_send('brctl addif virbr0 "{interface}"'.format(interface=port_info["interface"])) elif port_info["type"] == "udp": yield from self._ubridge_send('bridge add_nio_udp {name} {lport} {rhost} {rport}'.format(name=bridge_name, diff --git a/gns3server/compute/builtin/nodes/nat.py b/gns3server/compute/builtin/nodes/nat.py index 7e1a1582f..c748f94a9 100644 --- a/gns3server/compute/builtin/nodes/nat.py +++ b/gns3server/compute/builtin/nodes/nat.py @@ -35,8 +35,8 @@ def __init__(self, *args, **kwargs): ports = [ { "name": "nat0", - "type": "ethernet", - "interface": "virbr0", + "type": "tap", + "interface": "nat0", "port_number": 0 } ]