linux 服务 ddns,Linux 环境下搭建DDNS
什么是ddns:
DDNS是將用戶的動態IP地址映射到一個固定的域名解析服務上,用戶每次連接網絡的時候客戶端程序就會通過信息傳遞把該主機的動態IP地址傳送給位于服務商主機上的服務器程序,服務器程序負責提供DNS服務并實現動態域名解析。
2.實驗環境:
CentOS 6.7;
DNS、DHCP 部署在同一臺服務器上;
Server 端:
3.dhcp的安裝與配置:
3.1 綁定服務器靜態IP[root@DNS?~]#vim?/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.10.100
PREFIX=24
3.2 yum 安裝dhcp[root@DNS?~]#yum?install?-y?dhcp
3.2.生成一個key 在dns和dhcp都會用到,用來更新dns庫[root@DNS?~]#dnssec-keygen?-a?HMAC-MD5?-b?128?-n?USER?ddnsuser
//以ddnsuser生成一個md5加密的128位密碼,生成兩個文件。
[root@DNS?~]#?ls
anaconda-ks.cfg??install.log.syslog????????Kddnsuser.+157+56925.private
install.log??????Kddnsuser.+157+56925.key
[root@DNS?~]#?cat?Kddnsuser.+157+56925.key
ddnsuser.?IN?KEY?0?3?157?oxRjfO3rB1b0pzY1WNpbNg==???//后半段為密文,需要用到
3.3 dhcp的配置如下:[root@DNS?~]#grep?-v?"^#"?/etc/dhcp/dhcpd.conf
ddns-update-style?interim;
#ddns-updates?on;
log-facility?local7;
key?ddnsuser?{
algorithm?hmac-md5;
secret?oxRjfO3rB1b0pzY1WNpbNg==;???????//指定ddnsuser的key
}
zone?ddns.com.?{
primary?192.168.10.100;
key?ddnsuser;????????????????????????//允許dhcp更新dns記錄
}
zone?10.168.192.in-addr.arpa.?{
primary?192.168.10.100;
key?ddnsuser;
}
subnet?192.168.10.0?netmask?255.255.255.0?{
range?192.168.10.30?192.168.10.31;
option?routers?192.168.10.1;
option?domain-name?"ddns.com";
option?domain-name-servers?192.168.10.100;
default-lease-time?600;
max-lease-time?7200;
}
3.4 啟動dhcp[root@DNS?~]#?service?dhcpd?start
4.安裝并配置bind(DNS):
4.1 yum 安裝bind[root@DNS?~]#?yum?install?-y?bind?bind-chroot?bind-libs?bind-utils
4.2 dns的配置如下:[root@DNS?named]#?cat?/etc/named.conf
zone?"."?IN?{
type?hint;
file?"named.ca";
};
key?ddnsuser?{
algorithm?hmac-md5;
secret?oxRjfO3rB1b0pzY1WNpbNg==;?????//指定ddnsuser的key
};
zone?"ddns.com"?IN?{
type?master;
file?"/var/named/ddns.zone";
allow-update?{key?ddnsuser;};????????//允許通過驗證的key升級dns庫
};
zone?"10.168.192.in-addr.arpa"?IN?{
type?master;
file?"/var/named/ddns.zone.db";
allow-update?{key?ddnsuser;};
};
include?"/etc/named.rfc1912.zones";
include?"/etc/named.root.key";
4.3 配置正反向解析文件:[root@DNS?~]#?cp?-p?/var/named/named.loopback?/var/named/ddns.zone
[root@DNS?~]#?cp?-p?/var/named/named.loopback?/var/named/ddns.zone.db
4.3.1 正向解析文件:
[root@DNS ~]# vim /var/named/ddns.zone$ORIGIN?.
$TTL?86400??????;?1?day
ddns.com????????????????IN?SOA??dns.ddns.com.?rname.invalid.?(
3??????????;?serial
86400??????;?refresh
3600???????;?retry
604800?????;?expire
10800??????;?minimum
)
NS??????dns.ddns.com.
$ORIGIN?ddns.com.
dns?????????????????????A???????192.168.10.100
www?????????????????????A???????192.168.10.15
4.3.2 反向解析文件:[root@DNS?~]#?vim?/var/named/ddns.zone.db
$ORIGIN?.
$TTL?86400??????;?1?day
10.168.192.in-addr.arpa?IN?SOA??dns.ddns.com.10.168.192.in-addr.arpa.?rname.invalid.?(
2??????????;?serial
86400??????;?refresh
3600???????;?retry
604800?????;?expire
10800??????;?minimum
)
NS??????dns.ddns.com.
$ORIG??IN??10.168.192.in-addr.arpa.
15??????????????????????PTR?????www.ddns.com
19??????????????????????PTR?????dns.ddns.com
4.4 權限設置:[root@DNS?~]#?chmod?g+w?/var/named/????//為了讓dhcp可寫
[root@DNS?~]#?chown?-R?named.named?/var/named/chroot/var/named/
//在centos6中,上述的目錄默認是root.named?,導致最后的.jnl文件不能生成,注意修改權限。
4.5 啟動dns服務:[root@DNS?~]#?service?named?start
Client 端(Linux PC):在/etc/dhcp目錄下新建dhclient.conf文件[root@ntp?~]#?vim?/etc/dhcp/dhclient.conf
send?fqdn.fqdn?"ntp";???//ntp是客戶端的hostname
send?fqdn.encoded?on;
send?fqdn.server-update?off;
測試:
1. 將網卡設置成dhcp獲取ip:BOOTPROTO=dhcp
[root@ntp?~]#?dhclient?-r
[root@ntp?~]#?dhclient?eth0
2.進行正反向的dns解析:
正解:[root@ntp?~]#?nslookup?ntp.ddns.com
Server:????????192.168.100.100
Address:????192.168.100.100#53
Name:????ntp.ddns.com
Address:?192.168.100.30
反解:[root@ntp?~]#?host?192.168.100.30
30.100.168.192.in-addr.arpa?domain?name?pointer?ntp.ddns.com.
可以看到,named中并沒有定義這個域名,但是被解析到了。
另外,在/var/named/chroot/var/named/下將出現jnl的二進制文件,記錄這我們解析的操作。
[root@DNS ~]# ll /var/named/chroot/var/named/
總用量 52************
-rw-r--r--?1?named?named??432?1月??18?15:28?ddns.zone
-rw-r--r--?1?named?named??421?1月??18?15:27?ddns.zone.db
-rw-r--r--?1?named?named?1683?1月??18?15:15?ddns.zone.db.jnl
-rw-r--r--?1?named?named?1682?1月??18?15:15?ddns.zone.jnl
************
3.監控Server端的ddns.zone$ORIGIN?.
$TTL?86400??????;?1?day
ddns.com????????????????IN?SOA??dns.ddns.com.?rname.invalid.?(
4??????????;?serial
86400??????;
3600???????;
604800?????;
10800??????;
)
NS??????dns.ddns.com.
$ORIGIN?ddns.com.
dns?????????????????????A???????192.168.10.100
$TTL?300????????;?5?minutes
ntp?????????????????????A???????192.168.10.30
TXT?????"001c92d13d95f00b8d62503da8db6bfa35"
$TTL?86400??????;?1?day
www?????????????????????A???????192.168.10.15
~
4.監控ddns.zone.db$ORIGIN?.
$TTL?86400??????;?1?day
10.168.192.in-addr.arpa?IN?SOA??dns.ddns.com.10.168.192.in-addr.arpa.?rname.invalid.?(
3??????????;?serial
86400??????;
3600???????;
604800?????;
10800??????;
)
NS??????dns.ddns.com.
$ORIGIN?10.168.192.in-addr.arpa.
15??????????????????????PTR?????www.ddns.com
19??????????????????????PTR?????dns.ddns.com
$TTL?300????????;?5?minutes
30??????????????????????PTR?????ntp.ddns.com.
可以看到,系統自動寫入剛才解析的語句,只是換成了bind自己的語法。
附:值得注意的是,只能在此dhcp中獲取的ip才會被解析到;
另外,上述過程有延時,大約10min;
要是開啟圖形化的話,一定要把NetworkManger關掉,它會影響服務解析。
總結
以上是生活随笔為你收集整理的linux 服务 ddns,Linux 环境下搭建DDNS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现摄像头状态巡检
- 下一篇: CAD中如何将默认保存格式为dxf格式?