IGMP Proxy Address already in use

Hi guys! I have some problem with IGMP Proxy.

This is my configuration

show protocols igmp-proxy
 interface eth1.36 {
     alt-subnet 224.0.0.0/8
     alt-subnet 10.0.0.0/8
     role upstream
     threshold 1
 }
 interface eth3 {
     alt-subnet 192.168.5.0/24
     role downstream
     threshold 1
 }

There is my igmpproxy.conf

########################################################
#
# autogenerated by igmp_proxy.py
#
#   The configuration file must define one upstream
#   interface, and one or more downstream interfaces.
#
#   If multicast traffic originates outside the
#   upstream subnet, the "altnet" option can be
#   used in order to define legal multicast sources.
#   (Se example...)
#
#   The "quickleave" should be used to avoid saturation
#   of the upstream link. The option should only
#   be used if it's absolutely nessecary to
#   accurately imitate just one Client.
#
########################################################

quickleave

# Configuration for eth1.36 (upstream interface)
phyint eth1.36 upstream ratelimit 0 threshold 1
        altnet 224.0.0.0/8
        altnet 10.0.0.0/8

# Configuration for eth3 (downstream interface)
phyint eth3 downstream ratelimit 0 threshold 1
        altnet 192.168.5.0/24

IGMP Proxy doesn’t start. I got this message in the logs

Jul 29 13:58:32 vyos igmpproxy[2979]: MC-Router API already in use; Errno(98): Address already in use

Version:          VyOS 1.3-rolling-202007261311
Release Train:    equuleus

Built by:         autobuild@vyos.net
Built on:         Sun 26 Jul 2020 13:11 UTC
Build UUID:       0e846aa8-1e7c-429e-be07-6df40934a3b5
Build Commit ID:  09eedb0dccf687

Architecture:     x86_64
Boot via:         installed image
System type:      bare metal

Hardware vendor:  Gigabyte Technology Co., Ltd.
Hardware model:   B365M DS3H
Hardware S/N:     Unknown
Hardware UUID:    Unknown

Copyright:        VyOS maintainers and contributors

Does anyone know what’s the problem?

Thanks

Even with a fresh install, same issue…

This is my configuration file.

set firewall name IPTV_IN default-action 'drop'
set firewall name IPTV_IN description 'IPTV To Lan'
set firewall name IPTV_IN rule 5 action 'accept'
set firewall name IPTV_IN rule 5 description 'Accept established'
set firewall name IPTV_IN rule 5 log 'disable'
set firewall name IPTV_IN rule 5 protocol 'all'
set firewall name IPTV_IN rule 5 state established 'enable'
set firewall name IPTV_IN rule 5 state related 'enable'
set firewall name IPTV_IN rule 10 action 'accept'
set firewall name IPTV_IN rule 10 description 'Allow IGMP'
set firewall name IPTV_IN rule 10 log 'disable'
set firewall name IPTV_IN rule 10 protocol 'igmp'
set firewall name IPTV_IN rule 20 action 'accept'
set firewall name IPTV_IN rule 20 description 'Allow IPTV-Bell'
set firewall name IPTV_IN rule 20 log 'disable'
set firewall name IPTV_IN rule 20 protocol 'udp'
set firewall name IPTV_IN rule 30 action 'drop'
set firewall name IPTV_IN rule 30 description 'Drop invalid'
set firewall name IPTV_IN rule 30 log 'disable'
set firewall name IPTV_IN rule 30 protocol 'all'
set firewall name IPTV_IN rule 30 state invalid 'enable'
set firewall name IPTV_LOCAL default-action 'drop'
set firewall name IPTV_LOCAL rule 5 action 'accept'
set firewall name IPTV_LOCAL rule 5 description 'Accept established'
set firewall name IPTV_LOCAL rule 5 log 'disable'
set firewall name IPTV_LOCAL rule 5 protocol 'all'
set firewall name IPTV_LOCAL rule 5 source
set firewall name IPTV_LOCAL rule 5 state established 'enable'
set firewall name IPTV_LOCAL rule 5 state related 'enable'
set firewall name IPTV_LOCAL rule 10 action 'accept'
set firewall name IPTV_LOCAL rule 10 description 'Allow IPTV-UDP'
set firewall name IPTV_LOCAL rule 10 log 'disable'
set firewall name IPTV_LOCAL rule 10 protocol 'udp'
set firewall name IPTV_LOCAL rule 20 action 'accept'
set firewall name IPTV_LOCAL rule 20 description 'Allow IGMP'
set firewall name IPTV_LOCAL rule 20 log 'disable'
set firewall name IPTV_LOCAL rule 20 protocol 'igmp'
set firewall name IPTV_LOCAL rule 30 action 'accept'
set firewall name IPTV_LOCAL rule 30 description 'Allow ICMP'
set firewall name IPTV_LOCAL rule 30 log 'disable'
set firewall name IPTV_LOCAL rule 30 protocol 'icmp'
set firewall name IPTV_LOCAL rule 60 action 'drop'
set firewall name IPTV_LOCAL rule 60 description 'Drop invalid'
set firewall name IPTV_LOCAL rule 60 log 'disable'
set firewall name IPTV_LOCAL rule 60 protocol 'all'
set firewall name IPTV_LOCAL rule 60 state invalid 'enable'
set firewall name WAN_IN default-action 'drop'
set firewall name WAN_IN rule 10 action 'accept'
set firewall name WAN_IN rule 10 state established 'enable'
set firewall name WAN_IN rule 10 state related 'enable'
set firewall name WAN_IN rule 11 action 'accept'
set firewall name WAN_IN rule 11 description 'Allow HTTPS'
set firewall name WAN_IN rule 11 destination address '172.16.12.5'
set firewall name WAN_IN rule 11 destination port '443'
set firewall name WAN_IN rule 11 log 'disable'
set firewall name WAN_IN rule 11 protocol 'tcp'
set firewall name WAN_IN rule 11 state new 'enable'
set firewall name WAN_LOCAL default-action 'drop'
set firewall name WAN_LOCAL rule 10 action 'accept'
set firewall name WAN_LOCAL rule 10 state established 'enable'
set firewall name WAN_LOCAL rule 10 state related 'enable'
set firewall name WAN_LOCAL rule 20 action 'accept'
set firewall name WAN_LOCAL rule 20 icmp type-name 'echo-request'
set firewall name WAN_LOCAL rule 20 protocol 'icmp'
set firewall name WAN_LOCAL rule 20 state new 'enable'
set firewall name WAN_LOCAL rule 30 action 'drop'
set firewall name WAN_LOCAL rule 30 destination port '22'
set firewall name WAN_LOCAL rule 30 protocol 'tcp'
set firewall name WAN_LOCAL rule 30 recent count '4'
set firewall name WAN_LOCAL rule 30 recent time '60'
set firewall name WAN_LOCAL rule 30 state new 'enable'
set firewall name WAN_LOCAL rule 31 action 'accept'
set firewall name WAN_LOCAL rule 31 destination port '22'
set firewall name WAN_LOCAL rule 31 protocol 'tcp'
set firewall name WAN_LOCAL rule 31 state new 'enable'
set firewall name WAN_LOCAL rule 32 action 'accept'
set firewall name WAN_LOCAL rule 32 destination port '443'
set firewall name WAN_LOCAL rule 32 protocol 'tcp'
set firewall name WAN_LOCAL rule 32 state new 'enable'
set interfaces bridge br0 address '172.16.10.1/24'
set interfaces bridge br0 description 'BRIDGE_LAN'
set interfaces bridge br0 member interface eth0
set interfaces bridge br0 member interface eth2
set interfaces ethernet eth0 hw-id 'f4:e9:d4:84:52:50'
set interfaces ethernet eth1 hw-id 'f4:e9:d4:84:52:52'
set interfaces ethernet eth1 mtu '1508'
set interfaces ethernet eth1 vif 35 description 'BELL_INTERNET_VLAN'
set interfaces ethernet eth1 vif 35 mtu '1508'
set interfaces ethernet eth1 vif 36 address 'dhcp'
set interfaces ethernet eth1 vif 36 description 'BELL_IPTV'
set interfaces ethernet eth1 vif 36 firewall in name 'IPTV_IN'
set interfaces ethernet eth1 vif 36 firewall local name 'IPTV_LOCAL'
set interfaces ethernet eth1 vif 36 mtu '1500'
set interfaces ethernet eth2 hw-id 'b4:2e:99:84:b6:21'
set interfaces ethernet eth3 address '192.168.5.1/24'
set interfaces ethernet eth3 description 'IPTV_LAN'
set interfaces ethernet eth3 hw-id '68:1c:a2:13:48:c5'
set interfaces ethernet eth4 address '172.16.11.1/24'
set interfaces ethernet eth4 description 'WLAN'
set interfaces ethernet eth4 hw-id '68:1c:a2:13:48:c6'
set interfaces ethernet eth5 address '172.16.12.1/24'
set interfaces ethernet eth5 description 'SERVER'
set interfaces ethernet eth5 hw-id '68:1c:a2:13:48:c7'
set interfaces ethernet eth6 hw-id '68:1c:a2:13:48:c8'
set interfaces loopback lo
set interfaces pppoe pppoe0 authentication password 'PASSWORD'
set interfaces pppoe pppoe0 authentication user 'USERNAME'
set interfaces pppoe pppoe0 default-route 'force'
set interfaces pppoe pppoe0 firewall in name 'WAN_IN'
set interfaces pppoe pppoe0 firewall local name 'WAN_LOCAL'
set interfaces pppoe pppoe0 mtu '1500'
set interfaces pppoe pppoe0 source-interface 'eth1.35'
set nat destination rule 10 description 'Port Forward HTTPS'
set nat destination rule 10 destination port '443'
set nat destination rule 10 inbound-interface 'pppoe0'
set nat destination rule 10 protocol 'tcp'
set nat destination rule 10 translation address '172.16.12.5'
set nat source rule 100 outbound-interface 'pppoe0'
set nat source rule 100 translation address 'masquerade'
set nat source rule 101 description 'Bell IPTV'
set nat source rule 101 destination address '10.0.0.0/8'
set nat source rule 101 outbound-interface 'eth1.36'
set nat source rule 101 protocol 'all'
set nat source rule 101 translation address 'masquerade'
set protocols igmp-proxy interface eth1.36 alt-subnet '224.0.0.0/8'
set protocols igmp-proxy interface eth1.36 alt-subnet '10.0.0.0/8'
set protocols igmp-proxy interface eth1.36 role 'upstream'
set protocols igmp-proxy interface eth1.36 threshold '1'
set protocols igmp-proxy interface eth3 alt-subnet '192.168.5.0/24'
set protocols igmp-proxy interface eth3 role 'downstream'
set protocols igmp-proxy interface eth3 threshold '1'
set protocols static route 10.0.0.0/8 next-hop 10.247.48.1 distance '1'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 default-router '192.168.5.1'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 dns-server '207.164.234.129'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 dns-server '207.164.234.193'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 lease '86400'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 range 0 start '192.168.5.10'
set service dhcp-server shared-network-name IPTV_LAN subnet 192.168.5.0/24 range 0 stop '192.168.5.254'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 default-router '172.16.10.1'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 dns-server '1.1.1.1'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 dns-server '8.8.8.8'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 lease '86400'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 range 0 start '172.16.10.10'
set service dhcp-server shared-network-name LAN subnet 172.16.10.0/24 range 0 stop '172.16.10.254'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 default-router '172.16.12.1'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 dns-server '1.1.1.1'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 dns-server '8.8.8.8'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 lease '86400'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 range 0 start '172.16.12.10'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 range 0 stop '172.16.12.254'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping GloboMine ip-address '172.16.12.4'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping GloboMine mac-address '32:08:c6:1b:fe:4e'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping LaPetiteReplique ip-address '172.16.12.3'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping LaPetiteReplique mac-address '36:38:9e:c2:6c:34'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping Proxmox ip-address '172.16.12.10'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping Proxmox mac-address 'e2:f7:fa:62:2c:6c'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping ReverseProxy ip-address '172.16.12.5'
set service dhcp-server shared-network-name SERVER subnet 172.16.12.0/24 static-mapping ReverseProxy mac-address '66:16:fc:66:06:c7'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 default-router '172.16.11.1'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 dns-server '1.1.1.1'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 dns-server '8.8.8.8'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 lease '86400'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 range 0 start '172.16.11.10'
set service dhcp-server shared-network-name WLAN subnet 172.16.11.0/24 range 0 stop '172.16.11.254'
set service dns dynamic interface pppoe0 service cloudflare host-name 'DOMAIN'
set service dns dynamic interface pppoe0 service cloudflare login 'EMAIL'
set service dns dynamic interface pppoe0 service cloudflare password 'PASSWORD'
set service dns dynamic interface pppoe0 service cloudflare protocol 'cloudflare'
set service dns dynamic interface pppoe0 service cloudflare zone 'DOMAIN'
set service dns dynamic interface pppoe0 use-web skip 'Current IP Address: '
set service dns dynamic interface pppoe0 use-web url 'http://checkip.dyndns.com/'
set service ssh port '22'
set system config-management commit-revisions '100'
set system console device ttyS0 speed '115200'
set system host-name 'vyos'
set system login user vyos authentication encrypted-password 'PASSWORD'
set system login user vyos authentication plaintext-password ''
set system ntp server 0.pool.ntp.org
set system ntp server 1.pool.ntp.org
set system ntp server 2.pool.ntp.org
set system syslog global facility all level 'info'
set system syslog global facility protocols level 'debug'

I asked about the issue to the IGMP Proxy author on GitHub

It means that igmpproxy (or some other multicast routing daemon) is already running.

Only one instance of multicast routing daemon can be started at the same time.

Is there any other multicast routing daemon that runs except igmpproxy?

Hi @fegauthier, we implemented IGMP/PIM support in rolling, it seems maybe a reason.

Hi @Dmitry

Is there a way to disable IGMP/PIM ? I don’t use it, but I need IGMP Proxy to work to get IPTV.

This is the processes that are running

root       175  0.0  0.0      0     0 ?        I    Jul29   0:15 [kworker/u8:4-events_unbound]
root       178  0.0  0.0      0     0 ?        I<   Jul29   0:00 [kworker/3:1H-kblockd]
root       199  0.0  0.0      0     0 ?        I<   Jul29   0:00 [kworker/2:1H-kblockd]
root       255  0.0  0.0      0     0 ?        I<   Jul29   0:00 [kworker/0:1H-kblockd]
root       277  0.0  0.0      0     0 ?        S    Jul29   0:00 [jbd2/sda3-8]
root       278  0.0  0.0      0     0 ?        I<   Jul29   0:00 [ext4-rsv-conver]
root       279  0.0  0.0      0     0 ?        I<   Jul29   0:00 [kworker/1:1H-kblockd]
root       323  0.0  0.0      0     0 ?        S<   Jul29   0:00 [loop0]
root       692  0.0  0.1  46480 15592 ?        Ss   Jul29   0:07 /lib/systemd/systemd-journald
root       701  0.0  0.3 121816 26356 ?        Ssl  Jul29   0:00 /usr/bin/python3 -u /usr/libexec/vyos/services/vyos-hostsd
root       710  0.0  0.0  21664  5600 ?        Ss   Jul29   0:00 /lib/systemd/systemd-udevd
root       716  0.0  0.0   8084  5220 ?        Ss   Jul29   0:06 /usr/sbin/haveged --Foreground --verbose=1 -w 1024
root       807  0.0  0.0      0     0 ?        S    Jul29   0:00 [irq/155-mei_me]
message+   882  0.0  0.0   8716  3640 ?        Ss   Jul29   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root       886  0.0  0.0   8504  2808 ?        Ss   Jul29   0:00 /usr/sbin/cron -f
root       887  0.0  0.0   2324   760 ?        Ss   Jul29   0:00 /usr/sbin/acpid
root       892  0.0  0.0  19304  6368 ?        Ss   Jul29   0:00 /lib/systemd/systemd-logind
root       896  0.0  0.0   2284    68 ?        S<   Jul29   0:00 /usr/sbin/atopacctd
daemon     918  0.0  0.0   5488  2088 ?        Ss   Jul29   0:00 /usr/sbin/atd -f
root       972  0.0  0.0   2296    84 ?        Ss   Jul29   0:00 /sbin/netplugd -P -p /var/run/vyos-netplug.pid
root      1048  0.0  0.0   9960  3060 ?        Ss   Jul29   0:35 /usr/lib/frr/watchfrr -d -F traditional zebra bgpd ripd ripngd ospfd ospf6d pimd ldpd staticd bfdd
frr       1086  0.0  0.1 1004728 12356 ?       Ssl  Jul29   0:09 /usr/lib/frr/zebra -d -F traditional -s 90000000 --daemon -A 127.0.0.1 -M snmp
frr       1091  0.0  0.1 197776  8900 ?        Ssl  Jul29   0:01 /usr/lib/frr/bgpd -d -F traditional --daemon -A 127.0.0.1 -M snmp -M rpki
frr       1099  0.0  0.0  34668  5100 ?        Ss   Jul29   0:01 /usr/lib/frr/ripd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr       1103  0.0  0.0  10712  3604 ?        Ss   Jul29   0:01 /usr/lib/frr/ripngd -d -F traditional --daemon -A ::1
frr       1107  0.0  0.0  35964  5756 ?        Ss   Jul29   0:01 /usr/lib/frr/ospfd -d -F traditional --daemon -A 127.0.0.1 -M snmp
frr       1111  0.0  0.0  35332  5420 ?        Ss   Jul29   0:01 /usr/lib/frr/ospf6d -d -F traditional --daemon -A ::1 -M snmp
frr       1115  0.0  0.0  11652  4140 ?        Ss   Jul29   0:01 /usr/lib/frr/pimd -d -F traditional --daemon -A 127.0.0.1
frr       1120  0.0  0.0  10296  4956 ?        S    Jul29   0:00 /usr/lib/frr/ldpd -L
frr       1121  0.0  0.0  10300  5140 ?        S    Jul29   0:00 /usr/lib/frr/ldpd -E
frr       1122  0.0  0.0  11432  3824 ?        Ss   Jul29   0:01 /usr/lib/frr/ldpd -d -F traditional --daemon -A 127.0.0.1
frr       1127  0.0  0.0  10396  3268 ?        Ss   Jul29   0:01 /usr/lib/frr/staticd -d -F traditional --daemon -A 127.0.0.1
frr       1131  0.0  0.0  10448  3408 ?        Ss   Jul29   0:01 /usr/lib/frr/bfdd -d -F traditional --daemon -A 127.0.0.1
root      1940  0.0  0.0   9488  5600 ?        Ss   Jul29   0:00 /sbin/dhclient -4 -nw -cf /var/lib/dhcp/dhclient_eth1.36.conf -pf /var/lib/dhcp/dhclient_eth1.36.pid -lf /var/lib/dhc
root      2021  0.0  0.0   9652  3652 ?        Ss   Jul29   0:00 /usr/sbin/pppd call pppoe0 nodetach nolog
ntp       2114  0.0  0.0  76468  3084 ?        Ssl  Jul29   0:02 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 109:115
root      2151  0.0  0.0 225824  3592 ?        Ssl  Jul29   0:01 /usr/sbin/rsyslogd -n -iNONE
root      2218  0.0  0.0  15852  6928 ?        Ss   Jul29   0:00 /usr/sbin/sshd -D
dhcpd     2368  0.0  0.1  13796 10000 ?        Ss   Jul29   0:00 /usr/sbin/dhcpd -4 -q -user dhcpd -group nogroup -pf /run/dhcp-server/dhcpd.pid -cf /run/dhcp-server/dhcpd.conf -lf /
root      2379  0.0  0.2  30472 23712 ?        S    Jul29   0:04 ddclient - sleeping for 40 seconds
root      2437  0.0  0.0   6340  3044 tty1     Ss   Jul29   0:00 /bin/login -p --
root      2439  0.0  0.0   5384  2020 ttyS0    Ss+  Jul29   0:00 /sbin/agetty -o -p -- \u --keep-baud 115200 ttyS0 vt220
vyos      2444  0.0  0.0   8300  5220 tty1     S+   Jul29   0:00 -vbash
root      3133  0.0  0.1  11212  8352 ?        S<Ls 00:00   0:02 /usr/bin/atop -R -w /var/log/atop/atop_20200730 600
root      3145  0.0  0.0      0     0 ?        I    00:00   0:00 [kworker/0:0-cgroup_destroy]
root      3380  0.0  0.0      0     0 ?        I    01:20   0:14 [kworker/1:0-events_freezable]
root      4828  0.0  0.0      0     0 ?        I    10:00   0:00 [kworker/u8:0-events_unbound]
root      5134  0.0  0.0  16296  7816 ?        Ss   12:12   0:00 sshd: vyos [priv]
vyos      5140  0.0  0.0  16296  4968 ?        S    12:12   0:00 sshd: vyos@pts/0
vyos      5141  0.6  0.0   8188  5072 pts/0    Ss   12:12   0:00 -vbash
vyos      5215  0.0  0.0  10632  3156 pts/0    R+   12:12   0:00 ps aux

pimd seems to be running

Thanks!

I think now hot fix is only to set no in /etc/frr/daemon on pimd and kill pimd
This is bug, and it need to fix.

It’s working! I set no in the daemon file. I did a reboot and everything’s working now.

Thanks!

Bug report created on the phabricator ⚓ T2744 igmp-proxy issue: Address already in use

Thanks for the hot fix!