ports/161278: [net/dante] getoutaddr(): address [...] selected, but not set for external interface
rpolzer at at-one-it.de
Tue Oct 4 12:00:25 UTC 2011
>Synopsis: [net/dante] getoutaddr(): address [...] selected, but not set for external interface
>Arrival-Date: Tue Oct 04 12:00:18 UTC 2011
>Originator: Rudolf Polzer
@one IT GmbH
FreeBSD balogin.ba.vftest.net 7.4-RELEASE FreeBSD 7.4-RELEASE #0: Thu Dec 23 18:31:48 CET 2010 root at balogin.tnd.lab.arcor.de:/usr/obj/usr/src/sys/DL380DNS i386
We run a dante sockd with multiple external interfaces, defined in sockd.conf by:
This means that sockd is supposed to pick the external interface the same way the system would do when connecting to the target address of the connection.
This worked absolutely fine in dante-1.1.19_1, however in dante-1.3.2, it fails:
Oct 4 10:47:21 (1317718041.076916) sockd: info: pass(2): tcp/accept [: 18.104.22.168.8642 192.168.51.131.1080
Oct 4 10:47:21 (1317718041.078002) sockd: warning: getoutaddr(): address 192.168.51.131.0 selected, but not set for external interface
Indeed, 192.168.51.131.0 is not defined as an external address. Also the target address of the connection was not in any range that would be reached through 192.168.51.131. How can this happen, if external.rotation is route? It MIGHT be the case that it treats it as same-same...
Configure sockd as described above
See that the connect tries to go through the wrong interface and eventually fails. Observe the warning in syslog.
More information about the freebsd-ports-bugs