There might be another issue. I was wondering, why tvheadend was able to find my Kathrein EXIP-414E SAT>IP Server on one Raspberry directly, while it was not working on the Raspberry where it was supposed to run.
Turns out, as tvheadend seems to always bind to 0.0.0.0, when it comes to broadcasts, the broadcast that is used to detect SAT>IP servers, it sent to the wrong interface (and it is only sent to one of the ones that are found).
root@machine:~# netstat -tulpn |grep tvh
tcp 0 0 0.0.0.0:9981 0.0.0.0:* LISTEN 27774/tvheadend
tcp 0 0 0.0.0.0:9982 0.0.0.0:* LISTEN 27774/tvheadend
udp 0 0 239.255.255.250:1900 0.0.0.0:* 27774/tvheadend
udp 0 0 0.0.0.0:52421 0.0.0.0:* 27774/tvheadend
Using Wireshark, I found that the SSDP "M-SEARCH * HTTP/1.1" Packet, that was sent to 239.255.255.250, used my public internet IP as the source (which is ppp0 and not eth0).
Any idea, how to tell tvheadend to change this? Or maybe this can be done on system level?
root@machine:~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:59:ca:2f brd ff:ff:ff:ff:ff:ff
inet 192.168.110.1/24 brd 192.168.110.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::ba27:ebff:fe59:ca2f/64 scope link
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 192.168.111.1 peer 192.168.111.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::6b39:4e2e:dd9e:8826/64 scope link flags 800
valid_lft forever preferred_lft forever
49: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1452 qdisc htb state UNKNOWN group default qlen 3
link/ppp
inet 83.135.8.XXX peer 62.214.YY.XX/32 scope global ppp0
valid_lft forever preferred_lft forever
50: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 172.22.0.69 peer 172.22.0.70/32 scope global tun1
valid_lft forever preferred_lft forever
inet6 fe80::cbb7:addb:5949:1e0/64 scope link flags 800
valid_lft forever preferred_lft forever
root@machine:~#
Again, on a Raspberry Pi where is only one external interface (next to lo), it seems to magically pick the correct one. :-)
On the other one (the one that generated the interface list above, it selects interface #49 as the broadcast source.
I'm using 4.2.3-20~g407c8a3~raspbianjessie from
http://dl.bintray.com/mpmc/deb, if that is of help.