networkop / docker-topo

Docker topology builder for network simulations
BSD 3-Clause "New" or "Revised" License
138 stars 41 forks source link

OSError: [Errno 47] Address family not supported by protocol family #16

Open nicoaws opened 5 years ago

nicoaws commented 5 years ago

Hi all. I am getting a strange error when running docker-topo.

I am on MacOS HighSierra, Virtualenv + Python 3.7. Installed via python setup.py install (inside the venv) as per your instructions.


Traceback (most recent call last):
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/bin/docker-topo", line 4, in <module>
    __import__('pkg_resources').run_script('docker-topo==2.0.2', 'docker-topo')
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pkg_resources/__init__.py", line 664, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1451, in run_script
    exec(script_code, namespace, namespace)
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 793, in <module>
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 687, in main
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 228, in parse_v2
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 585, in __init__
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 589, in get_or_create
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 606, in _get
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/docker_topo-2.0.2-py3.7.egg/EGG-INFO/scripts/docker-topo", line 536, in __init__
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/ipdb/main.py", line 900, in __init__
    self.initdb()
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/ipdb/main.py", line 965, in initdb
    self.nl = IPRoute(sndbuf=self._sndbuf, rcvbuf=self._rcvbuf)
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/iproute/linux.py", line 127, in __init__
    super(RTNL_API, self).__init__(*argv, **kwarg)
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/netlink/rtnl/iprsocket.py", line 29, in __init__
    all_ns=all_ns)
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/netlink/nlsocket.py", line 364, in __init__
    self.post_init()
  File "/Users/narnoldi/Projects/cEOS-Lab/testdir/lib/python3.7/site-packages/pyroute2/netlink/nlsocket.py", line 918, in post_init
    self._fileno)
  File "/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 151, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 47] Address family not supported by protocol family
networkop commented 5 years ago

i think you're hitting this https://github.com/svinota/pyroute2/issues/437 you can try running your topology with the default docker bridge driver, that should work