BIND 10 #1539: The sending part of passing UPDATE packets
BIND 10 Development
do-not-reply at isc.org
Sat May 19 02:50:04 UTC 2012
#1539: The sending part of passing UPDATE packets
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
vorner | Status: accepted
Type: task | Milestone:
Priority: | Sprint-20120529
medium | Resolution:
Component: | Sensitive: 0
b10-auth | Sub-Project: DNS
Keywords: | Estimated Difficulty: 0
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: DDNS |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
trac1539 is ready for review at branch trac1539-2. I made this branch
from the original trac1539, rebasing it onto a more recent master
(so it's easier to get the branch diff). In case it's not clear,
the diff to be reviewed is 'git diff 13838d3^'.
For testing the forwarder behavior effectively, I introduced the
base class of socket forwarder and mock derived class of it.
lib/util/unittests/mock_socketsession.h was newly created for this
purpose, and that consumes a large part of the entire diff. The size
is relatively large, but its implementation should be trivial.
And, other than this, I believe the size of the change should be
moderate and the implementation is quite straightforward.
Some notes:
- I've noticed there's no API to retrieve the local (server's)
address/port from a given IO message. We should fix this, but I
chose not to include it in this branch. At the moment the remote
address should be sufficient, for both ACL and returning the
response. I plan to open a separate ticket for the API to retrieve
the local address (and use it).
- I've followed the xfrout convention to get the UNIX socket file for
ddns, i.e, hardcoding it. I believe we should rather get it from
the b10-ddns configuration so we can centralize the information and
won't have to hardcode environment variables in the main code. But
that would make the branch much bigger, so I chose to not do it in
this branch. I plan to open a ticket for it, too.
- I believe we should make it possible that b10-auth can skip
forwarding completely when ddns isn't supposed to be used (and
b10-ddns is not running at all). That's actually the more common
operation, and trying to (and failing) forward update requests is
costly, perhaps too expensive and could even be a DoS vector because
it involves exception handling. I think we should do this with the
second point; b10-auth would first try to get the ddns
configuration, and setup the forwarder only after it gets the
config. If the forwarder isn't setup, b10-auth will immediately
return NOTIMP to any update requests. Also, ideally, when ddns
stops running b10-auth should destroy the forwarder and fall back to
the NOTIMP mode (but I guess this will require some of the msgq
enhancements).
--
Ticket URL: <http://bind10.isc.org/ticket/1539#comment:8>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list