рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рджрд╛рддрд╛ рдХрднреА-рдХрднреА рдореЗрд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХрднреА-рдХрднреА рдЖрдорддреМрд░ рдкрд░ рд╣рд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдШрд░ рдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдмрд╣реБрдд рд╣реА рдХрдо рд░реАрдмреВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА dyndns рд╕реЗрд╡рд╛ "рдЕрдкреНрд░рдпреБрдХреНрдд" рдЦрд╛рддреЗ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реАред рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП DNS рдЬрд╝реЛрди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдкрддрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдм рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдЬрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рддрдХ рдкрд╣реБрдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ DNS рдмрд╛рдЗрдВрдб рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рднреА рдбреЛрдореЗрди рдЬрд╝реЛрди, рдЙрдкрдбреЛрдореЗрди рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВрдЧреЗред рд▓рд┐рдирдХреНрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд░реНрдгрд┐рдд рд╣реИред рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдиреБрдЕрд▓ рдкрдврд╝рдиреЗ рдФрд░ рдХреБрдЫ рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рддреЛ:
1. рд╣рдордиреЗ bind9 рд╕рд░реНрд╡рд░ рдХреЛ server.org рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ
2. рдЬрд╝реЛрди рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдПрдБ .server.org.zone:
$ORIGIN .
$TTL 10 ; 10 seconds
client.server.net IN SOA ns1.server.net. hostmaster.server.net. (
18 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10 ; minimum (10 seconds)
)
$TTL 3600 ; 1 hour
NS ns1.server.net.
NS ns2.server.net.
MX 10 client.server.net.
рдпрд╣рд╛рдБ рд╕рд░реНрд╡рд░ ns1.server.net рдФрд░ ns2.server.net рд╣рдорд╛рд░реЗ рдЬрд╝реЛрди рдХреЗ рд▓рд┐рдП DNS рд╕рд░реНрд╡рд░ рд╣реИрдВ, client.server.net рд╣рдорд╛рд░реЗ рдШрд░ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдкрддрд╛ рд╣реИ
3. рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдЪрд╛рдмрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:
client# cd /etc/namedb/keys
client# dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST client.server.net.
4. рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
server# cd /var/named/chroot/etc
server# vim keys.conf :
key client.server.net. {
algorithm "HMAC-MD5";
secret "omr5O5so/tZB5XeGuBBf42rrRJRQZB8I9f+uIIxxei8qm7AVgNBprxtcU+FQMzBvU/Y+nyM2xbs/C8kF3eJQUA==";
};
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдордорд┐рдд рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ: рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рд╡рд╣ рдЖрдкрдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдПрдХ рдЕрд╕рдордорд┐рдд рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
server# chmod 640 keys.conf
server# chown root:named keys.conf
5. рд╣рдорд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ name.conf рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
include "/etc/keys.conf"
zone "client.server.net" {
type master;
file "zones/client.server.net";
allow-update{
key client.server.net;
};
};
рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╣рд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЬрд╝реЛрди рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдиреБрдЕрд▓ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдЬрд╝реЛрди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ 1, рдХреНрд▓рд╛рдЗрдВрдЯ 2, рдЖрджрд┐ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдЙрдк рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╝реЛрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ key1, key2 рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХреГрдд рд╣реЛрдЧрд╛ред
DNS рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
server# /etc/init.d/named reload
7. рдЬрд╝реЛрди рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ:
#!/bin/bash
IFACE="wlan0"
TTL=3600
SERVER=ns1.example.com
HOSTNAME=foo.example.com
ZONE=example.com
KEYFILE=/root/ddns-keys/Kfoo.example.com.+157+12345.private
new_ip_address=`ifconfig $IFACE | grep "inet addr:" | awk '{print $2}' | awk -F ":" '{print $2}'`
new_ip_address=${new_ip_address/ /}
nsupdate -v -k $KEYFILE << EOF
server $SERVER
zone $ZONE
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $new_ip_address
send
EOF
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд╕рд░реНрд╡рд░ рдФрд░ рдЬрд╝реЛрди рдирд╛рдо, рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдиред
8. рдбреАрдПрдирдПрд╕ рдмрджрд▓рддреЗ рд╕рдордп рдпрд╣ рдХреЗрд╡рд▓ рдСрдЯреЛрд░рди / рдкрддреЗ рдХреЗ рд╕реНрд╡рдд: рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред
рд╣рдо NetworkManager рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ:
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ /etc/NetworkManager/dispatcher.d/20-dyndns.sh:
#!/bin/sh
iface=$1
state=$2
if [ "x$state" == "xup" ] ; then
/etc/namedb/ddns-update
elif [ "x$state" == "xdown" ]; then
true
fi
рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рдЬрдбрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рдХрд░реЗрдВред
рд░рди-рдЪреЗрдХ-рдЙрдкрдпреЛрдЧред
рдЕрджреНрдпрддрди: рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ (рд╕реНрдерд╛рдкрд┐рдд) рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ client.server.org.zone рдирд┐рд╣рд┐рдд рд╣реИ
рдирд╛рдо рд╕реЗ рдПрдХ client.server.org.zone.jnl рдлрд╝рд╛рдЗрд▓ рдмрдиреЗрдЧреА
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
http://www.freebsdwiki.net/index.php/BIND,_dynamic_DNS
http://blog.jasonantman.com/2010/04/bind9-dynamic-dns/
http://www.oceanwave.com/technical-resources/unix-admin/nsupdate.html
рджреА рдЧрдИ рдЪрд╛рдмреА рд╡рд╣рд╛рдВ рд╕реЗ рд▓реЗ рд▓реА рдЬрд╛рддреА рд╣реИред