Static-UPnP icon indicating copy to clipboard operation
Static-UPnP copied to clipboard

Does not work when an interface has multiple IP addresses

Open tomrittervg opened this issue 4 years ago • 1 comments

I have a linux box as my router; it sits under a comcast modem/router - but all devices are under the linux box. eno1 is the 'external' nic; enp2s0 is the internal. There are a bunch of static ips assigned for the internal nic for each subnet.

This seyup however does not seem to be supported bby static_upnp, attempting to reregister multicast fails with address in use. (I added the 'Attempting to reregister' log line at the beginning of the loop that has ''Reregistering multicast'):

2021-12-27 21:37:40,956 INFO    UPnPServiceResponder util.py:setup_sockets:82 - Attempting to regester multicast for: 239.255.255.250: 10.1.1.1
Traceback (most recent call last):
  File "/root/.local/bin/static_upnp", line 33, in <module>
    sys.exit(load_entry_point('static-upnp==0.0.1', 'console_scripts', 'static_upnp')())
  File "/root/.local/lib/python3.9/site-packages/static_upnp/static.py", line 97, in main
    responder.start()
  File "/root/.local/lib/python3.9/site-packages/static_upnp/upnp_reciever.py", line 92, in start
    self.setup_sockets()
  File "/root/.local/lib/python3.9/site-packages/static_upnp/upnp_reciever.py", line 109, in setup_sockets
    return setup_sockets(self)
  File "/root/.local/lib/python3.9/site-packages/static_upnp/util.py", line 86, in setup_sockets
    multi_sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
OSError: [Errno 98] Address already in use

I don't know if my setup is weird and wrong and I should do something different; or if there is a way to hack around this to make it work...

ip addr output:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether XXXXX brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.1.1.1/24 brd 10.1.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.1.11.1/24 brd 10.1.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.1.12.1/24 brd 10.1.12.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.1.13.1/24 brd 10.1.13.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.1.2.1/24 brd 10.1.2.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.2.1.1/24 brd 10.2.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.2.11.1/24 brd 10.2.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.3.1.1/24 brd 10.3.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.3.11.1/24 brd 10.3.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.3.12.1/24 brd 10.3.12.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.3.13.1/24 brd 10.3.13.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.3.2.1/24 brd 10.3.2.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.4.11.1/24 brd 10.4.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.5.1.1/24 brd 10.5.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.5.11.1/24 brd 10.5.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.6.1.1/24 brd 10.6.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.6.11.1/24 brd 10.6.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.7.1.1/24 brd 10.7.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.7.11.1/24 brd 10.7.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.7.12.1/24 brd 10.7.12.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.7.13.1/24 brd 10.7.13.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.7.2.1/24 brd 10.7.2.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.8.1.1/24 brd 10.8.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.8.2.1/24 brd 10.8.2.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.9.1.1/24 brd 10.9.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.9.11.1/24 brd 10.9.11.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.255.1.1/24 brd 10.255.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 10.0.0.2/24 brd 10.0.0.255 scope global secondary enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::76d4:35ff:fee5:d449/64 scope link
       valid_lft forever preferred_lft forever
3: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
4: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
5: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
6: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
8: ip6_vti0@NONE: <NOARP> mtu 1364 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd :: permaddr c27c:a590:6c9c::
9: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
10: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd :: permaddr 1224:21f:9bd1::
11: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1000
    link/gre6 :: brd :: permaddr 12e7:215e:b419::
12: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether XXXXX brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.1.52/24 brd 192.168.1.255 scope global dynamic noprefixroute eno1
       valid_lft 2881sec preferred_lft 2431sec
    inet6 fe80::608:2a2f:6df1:db3b/64 scope link
       valid_lft forever preferred_lft forever

tomrittervg avatar Dec 28 '21 02:12 tomrittervg

It seems like specifying only the 10.0.0.1 IP address may have let me work around this....

tomrittervg avatar Jan 12 '22 19:01 tomrittervg