Does not work when an interface has multiple IP addresses
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
It seems like specifying only the 10.0.0.1 IP address may have let me work around this....