tangbinde 发表于 2018-5-11 12:29:37

redhat5.4实现ddns解释

  环境:服务器redhat5.4 ,服务版本:bind9.3X和dhcp3.0x,并且两个服务都必须先能正常提供服务的。

# nslookup long.com
  Server:         192.168.100.105
  Address:      192.168.100.105#53
  

  Name:   long.com
  Address: 192.168.100.105
  

  现在对dns方面进行修改:
  1、生成用于更改zoon空间的密钥:
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER ddns
  Kddns.+157+07304
# ls
  Kddns.+157+07304.key      localtime   named.conf.bak       named.root.hints
  Kddns.+157+07304.privatenamed.confnamed.rfc1912.zonesrndc.key
  可以用cat 来查看Kddns.+157+*里面的内容,发现里面都有一件的密钥。就把它复制出来,编辑named.conf文件,修改:
  

  #可修改zoon的key
  key key_ddns
  {
  algorithm hmac-md5;
  secret Jb4b7gFsjVBlagOfVNGKpw==;
  };
  

  view "test"
  {
  match-clients         {any; } ;
  match-destinations      {any; } ;
  recursion      no ;
  

  #zone setting
  // include "/etc/named.rfc1912.zones" ;
  include "/etc/named.rfc1912.zones";
  } ;
  

  由上面可知,其实在name.rfc1912.zones里存在着zoons的定义空间,所以编辑named.rfc1912.zones文件,最后的long.com的zones修改:
  //long.com
  zone "long.com" IN {
  type master ;
  file "long.zone" ;
  allow-update { key key_ddns; };    //注意定义了key_ddns为密钥的一方可以修改long.com里的主机记录。
  };
  重启服务,ok!!!
  

  2、修改dhcpd.conf 文件。使其分配的主机IP的同时也能进行dns的zoon更新:
  #dhcpd.conf
  ddns-update-style interim;    //指定分配的类型
  #ignore client-updates;
  ddns-updates on;             //开启ddns-updates的功能
  subnet 192.168.100.0 netmask 255.255.255.0 {
  

  # --- default gateway
  option routers                  192.168.100.1;
  option subnet-mask            255.255.255.0;
  option domain-name            "long.com";      //指定分配IP的主机所在域,这个域要和dns里面的key_ddns可修改的一致,不能就不能生成对应的纪录。
  option domain-name-servers      192.168.100.105;
  

  option time-offset            -18000; # Eastern Standard Time
  #       option ntp-servers            192.168.1.1;
  #       option netbios-name-servers   192.168.1.1;
  # --- Selects point-to-point node (default is hybrid). Don't change this unless
  # -- you understand Netbios very well
  #       option netbios-node-type 2;
  

  range dynamic-bootp 192.168.100.150 192.168.100.254;
  default-lease-time 21600;
  max-lease-time 43200;
  

  //下面这两个是指定ddns分配的使用密钥和域名称,注:key的密钥和与named.conf里面的key的一样,这样才是使用同一密钥的,才能动态更改域

  key key_ddns{
  algorithm hmac-md5;
  secret "Jb4b7gFsjVBlagOfVNGKpw==";
  }
  //指定分配的域的名称,注意格式:“long.com.”后面是有"."的.
  zone long.com.{
  primary 192.168.100.105;
  key key_ddns;
  }
  //这里没有添加反解释的zoon,当然也可以加上,类似于dns的反解的格式,当然前提是dns的反解也做了ddns更新配置。
  }
  

  重启服务,ok !!!!
  

  到些配置已基本完成。
  此时,可以查看日志文件,用动态的:tail -f /var/log/message
  在使用客户机测试时。能正常得到IP地址和能正常解释long.com以及之前服务端的主机,发现日志结果:
  Aug 21 20:48:16 redhat5 named: client 192.168.100.105#56606: view test: u
  pdating zone 'long.com/IN': adding an RR at 'lenovo-1b64a8ba.long.com' A
  Aug 21 20:48:16 redhat5 named: client 192.168.100.105#56606: view test: u
  pdating zone 'long.com/IN': adding an RR at 'lenovo-1b64a8ba.long.com' TXT
  Aug 21 20:48:16 redhat5 named: journal file long.zone.jnl does not exist,
   creating it
  Aug 21 20:48:16 redhat5 named: long.zone.jnl: create: permission denied
  Aug 21 20:48:16 redhat5 named: client 192.168.100.105#56606: view test: u
  pdating zone 'long.com/IN': error: journal open failed: unexpected error
  Aug 21 20:48:16 redhat5 dhcpd: Unable to add forward map from lenovo-1b64a8ba.lo
  ng.com to 192.168.100.253: timed out
  Aug 21 20:48:16 redhat5 dhcpd: DHCPREQUEST for 192.168.100.253 (192.168.100.105)
  from 00:0c:29:a9:2d:22 (lenovo-1b64a8ba) via eth0
  Aug 21 20:48:16 redhat5 dhcpd: DHCPACK on 192.168.100.253 to 00:0c:29:a9:2d:22 (
  lenovo-1b64a8ba) via eth0
  

  经观察,发现在红色字体那里出现了是named在写jnl文件时无写入的权限,所在在/var/named/chroot/var路径下:
  #chown -R named:named named
  #chomd g+w named
  添加了named目录以及里面的写权限,重启服务,ok!!!!
  

  如果还出现在问题的就可能果selinux的问题,建议把selinux关闭。
  还可用#updatedd 命令来刷新linux系统的数据库.
页: [1]
查看完整版本: redhat5.4实现ddns解释