<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B0_DynDns_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B2%D0%BE%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F</id>
	<title>Альтернатива DynDns или своя реализация - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B0_DynDns_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B2%D0%BE%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B0_DynDns_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B2%D0%BE%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&amp;action=history"/>
	<updated>2026-04-03T22:13:53Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B0_DynDns_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B2%D0%BE%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=866&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: «Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем дл…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B0_DynDns_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B2%D0%BE%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=866&amp;oldid=prev"/>
		<updated>2013-09-09T19:44:39Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем дл…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем для этого являются сервисы по типу dyndns, описанные в недавнем топике Связываем домен и динамический IP. Иногда такой подход работает достаточно плохо.&lt;br /&gt;
&lt;br /&gt;
Напрмер в моей ситуации, провайдер иногда меняет мой публичный IP адрес. Это иногда случается обычно раз в несколько месяцев. Кроме того, мой домашний компьютер перезагружается крайне редко. За это время сервис dyndns, которым я пользовался ранее успевал пару раз прислать мне оповещения о неактивности с целью отключить «неиспользуемый» аккаунт. Перейти на вручную прописываемую DNS зону также не получается, потому что иногда адрес все же меняется. Причем обычно об этом узнаешь когда нужен доступ к домашнему компьютеру здесь и сейчас.&lt;br /&gt;
&lt;br /&gt;
Для реализации описываемого метода понадобится сервер в интернете с DNS сервером bind на нем. А так же доменная зона, субдомен которой мы будем выделять для нашего компьютера. Описывается вариант с подключением Linux-компьютера к Linux-серверу. Для использования других операционных систем понадобится почитать мануалы и модифицировать некоторые шаги.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Итак:&lt;br /&gt;
1. Имеем установленный сервер bind9 с доменом server.org&lt;br /&gt;
2. Создаем зону client.server.org.zone:&lt;br /&gt;
&lt;br /&gt;
 $ORIGIN .&lt;br /&gt;
 $TTL 10 ; 10 seconds&lt;br /&gt;
 client.server.net IN SOA ns1.server.net. hostmaster.server.net. (&lt;br /&gt;
 18 ; serial&lt;br /&gt;
 10800 ; refresh (3 hours)&lt;br /&gt;
 3600 ; retry (1 hour)&lt;br /&gt;
 604800 ; expire (1 week)&lt;br /&gt;
 10 ; minimum (10 seconds)&lt;br /&gt;
 )&lt;br /&gt;
 $TTL 3600 ; 1 hour&lt;br /&gt;
 NS ns1.server.net.&lt;br /&gt;
 NS ns2.server.net.&lt;br /&gt;
 MX 10 client.server.net.&lt;br /&gt;
&lt;br /&gt;
здесь сервера ns1.server.net и ns2.server.net — DNS сервера для нашей зоны, client.server.net — адрес нашего домашнего компьютера&lt;br /&gt;
&lt;br /&gt;
3. генерим ключи на клиенте:&lt;br /&gt;
 client# cd /etc/namedb/keys&lt;br /&gt;
 client# dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST client.server.net.&lt;br /&gt;
&lt;br /&gt;
4. Создаем фаил с ключем на сервере:&lt;br /&gt;
 server# cd /var/named/chroot/etc&lt;br /&gt;
 server# vim keys.conf :&lt;br /&gt;
 &lt;br /&gt;
 key client.server.net. {&lt;br /&gt;
 algorithm &amp;quot;HMAC-MD5&amp;quot;;&lt;br /&gt;
 secret &amp;quot;omr5O5so/tZB5XeGuBBf42rrRJRQZB8I9f+uIIxxei8qm7AVgNBprxtcU+FQMzBvU/Y+nyM2xbs/C8kF3eJQUA==&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
В данном случае использован симметричный ключ, что небезопасно: если кто-то имеет доступ к фаилу с ключами на вашем сервере, он может воспользоваться вашим ключем для изменения данных вашей зоны. В таком случае можно использовать несимметричный ключ.&lt;br /&gt;
&lt;br /&gt;
Выставляем права доступа к фаилу с ключами:&lt;br /&gt;
server# chmod 640 keys.conf&lt;br /&gt;
server# chown root:named keys.conf&lt;br /&gt;
&lt;br /&gt;
5. добавляем нашу зону в named.conf:&lt;br /&gt;
 include &amp;quot;/etc/keys.conf&amp;quot;&lt;br /&gt;
 zone &amp;quot;client.server.net&amp;quot; {&lt;br /&gt;
 type master;&lt;br /&gt;
 file &amp;quot;zones/client.server.net&amp;quot;;&lt;br /&gt;
 allow-update{&lt;br /&gt;
 key client.server.net;&lt;br /&gt;
 };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Здесь прописан параметр, который позволяет обновлять данные зоны. Вообще, почитав мануалы, можно найти опции этого параметра, позволяющие обновлять только одну запись в зоне для данного ключа. Т.е можно иметь зону с прописанными в ней поддоменами client1, client2, etc. которые будут авторизоваться с ключами key1, key2, etc.&lt;br /&gt;
&lt;br /&gt;
6. Перезапускаем DNS сервер:&lt;br /&gt;
 server# /etc/init.d/named reload&lt;br /&gt;
&lt;br /&gt;
7. Создаем на клиенте скрипт, который будет обновлять данные зоны:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 IFACE=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
 TTL=3600&lt;br /&gt;
 SERVER=ns1.example.com&lt;br /&gt;
 HOSTNAME=foo.example.com&lt;br /&gt;
 ZONE=example.com&lt;br /&gt;
 KEYFILE=/root/ddns-keys/Kfoo.example.com.+157+12345.private&lt;br /&gt;
 &lt;br /&gt;
 new_ip_address=`ifconfig $IFACE | grep &amp;quot;inet addr:&amp;quot; | awk '{print $2}' | awk -F &amp;quot;:&amp;quot; '{print $2}'`&lt;br /&gt;
 new_ip_address=${new_ip_address/ /}&lt;br /&gt;
 &lt;br /&gt;
 nsupdate -v -k $KEYFILE &amp;lt;&amp;lt; EOF&lt;br /&gt;
 server $SERVER&lt;br /&gt;
 zone $ZONE&lt;br /&gt;
 update delete $HOSTNAME A&lt;br /&gt;
 update add $HOSTNAME $TTL A $new_ip_address&lt;br /&gt;
 send&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
В начале скрипта описаны соответствующие параметры: интерфейс, имена сервера и зоны, местоположение фаила с ключем.&lt;br /&gt;
&lt;br /&gt;
8. Осталось только настроить автозапуск/автоматическую смену адреса при смене DNS.&lt;br /&gt;
Мы это сделаем при помощи скрипта для NetworkManager:&lt;br /&gt;
создадим фаил /etc/NetworkManager/dispatcher.d/20-dyndns.sh:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 iface=$1&lt;br /&gt;
 state=$2&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;x$state&amp;quot; == &amp;quot;xup&amp;quot; ] ; then&lt;br /&gt;
 /etc/namedb/ddns-update&lt;br /&gt;
 elif [ &amp;quot;x$state&amp;quot; == &amp;quot;xdown&amp;quot; ]; then&lt;br /&gt;
 true&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Сделаем его исполняемым и принадлежащим пользователю root.&lt;br /&gt;
&lt;br /&gt;
Запускаем-проверяем-пользуемся.&lt;br /&gt;
&lt;br /&gt;
Upd: Если не работает — проверяем (устанавливаем) на сервере права named на записть в папку в которой лежит фаил  client.server.org.zone&lt;br /&gt;
named будет создавать там фаил client.server.org.zone.jnl&lt;br /&gt;
&lt;br /&gt;
Использованы следующие материалы:&lt;br /&gt;
[http://www.freebsdwiki.net/index.php/BIND,_dynamic_DNS 1]&lt;br /&gt;
[http://blog.jasonantman.com/2010/04/bind9-dynamic-dns/ 2]&lt;br /&gt;
[http://www.oceanwave.com/technical-resources/unix-admin/nsupdate.html 3]&lt;br /&gt;
Приведенный ключ взят оттуда же.&lt;br /&gt;
&lt;br /&gt;
* [http://habrahabr.ru/post/101380/ автор-ссылка]&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>