Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2018 21:05:03 -0700
From:      Doug Hardie <bc979@lafn.org>
To:        freebsd-questions@freebsd.org
Subject:   UDP packet transmission
Message-ID:  <91591EE5-91EA-4C79-BE7B-A5F9F53CFADA@mail.sermon-archive.info>

Next in thread | Raw E-Mail | Index | Archive | Help
I have a somewhat unusual situation and have not found a solution for =
it.  I have a remote machine running 12 current.  It has two independent =
internet connections.  They are from two different sources and have =
different IP addresses.  One is a fixed IP address and the other =
dynamic.  The purpose is to be able to access the device if one of those =
interfaces is down.  It is only accessed when problems occur.  Typically =
that is when the fixed address is not accessible.  The problem is there =
is no way to know the dynamic address.

To address this, I tried sending a UDP packet through the dynamic IP =
link to another machine at a fixed IP address.  It records the IP =
address that originated the packet and logs it.  Hence, I can easily =
find the last dynamic IP that was used and access the device through =
that.  However, to make that happen, I need to be able to send a UDP =
packet that goes through a specific interface and does not use the =
routing table.

The most frequent approach I have found is to bind the socket to only =
the dynamic IP address's interface.  However, that does change the =
originating IP address in the packet to that interface, but continues to =
transmit via the interface found in the routing table.

Another suggestion was to use raw sockets.  However, all the reading on =
that (Stevens et al) indicate that the packet will still be transmitted =
on the interface selected in the routing table.

Yet another suggestion was to change the routing table temporarily, send =
the packet, and then change it back.  Besides a lot of potential for =
weird stuff, it would break a number of other connections going through =
the fixed IP address. =20

I am hoping there is another solution that would be better.  Thanks,

-- Doug




Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?91591EE5-91EA-4C79-BE7B-A5F9F53CFADA>