DDNS在生产环境中的应用

1、DDNS(DynamicDomain Name Server)动态域名服务介绍

1.1 介绍:

DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

1.2 实验环境说明:

系统:Centos 6.5

DDNS:DHCP + DNS(Bind9), DHCP和DNS服务器为同一台(IP:10.0.0.103)

域名: ilo-zhangdh.com

网络环境:某个IDC,多服务器(均有IPMI管理接口)连接到同一个核心交换机上,然后系统初始安装采用cobbler,基于PXE方式,然后这些服务器连接到DHCP服务器,会传回sn(DELL服务器编号)号(如:idrac-HYQ653X),DHCP会随机给该机器分配一个ip,然后DNS会更新本地的DNS记录。最后实现的是通过访问ILOCNG135T035.ILO-ZHANGDH.COM即可访问到对应的服务器。

2、       DDNS安装配置

2.1 安装DNS和DHCP

# yum -y install bind dhcp

2.2 生成DNS密钥,配置安全的DNS服务

# dnssec-keygen-a HMAC-MD5 -b 128 -n USER ilo  #以root身份运行,生成密钥

dnssec-keygen:用来生成更新密钥。

-aHMAC-MD5:采用HMAC-MD5加密算法。

-b 128:生成的密钥长度为128位。

-n USERilo:密钥的用户名为ilo。

这时当前目录下会生成Kilo.+xxx+xxxxx.key及.private两个文件

# cat Kilo.+xxx+xxxxx.key 会看到HqX9xaJ75tgQ1S8hHz9L7Q==,下面会用。

2.3 配置DNS的ilo-zhangdh.com域的正反向区域数据文件

# vim /etc/named.conf    #正向区域数据文件

key ilo {

algorithm hmac-md5;

secret HqX9xaJ75tgQ1S8hHz9L7Q==;

};

options {

directory      "/var/named";

dump-file      "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

#forwarders   { 8.8.8.8; };

allow-transfer { none; };

#listen-on port 53 { 127.0.0.1; 10.1.1.103; };

recursion yes;

};

logging {

channel default_debug {

file "data/named.run"size 30M;

severity debug 3;

print-time  yes;

};

};

zone "." IN {

type hint;

file "named.ca";

};

zone "ilo-zhangdh.com"  {

type master;

file "ilo-zhangdh.com.dns";

allow-update {  any; };

};

zone "202.1.in-addr.arpa" IN {

type master;

file "202.1.in-addr.ilo-zhangdh.com.rev";

allow-update { any; };

};

zone "201.1.in-addr.arpa" IN {

type master;

file "201.1.in-addr.ilo-zhangdh.com.rev";

allow-update { any; };

};

# vim /var/named/ilo-zhangdh.com.dns

$ORIGIN .

$TTL 86400      ; 1 day

ilo-zhangdh.com         IN SOA ilo-zhangdh.com. root.ilo-zhangdh.com. (

2014123597 ;serial

120        ; refresh (2 minutes)

14400      ; retry (4 hours)

3600000    ; expire (5 weeks 6 days 16 hours)

86400      ; minimum (1 day)

)

NS      dns.ilo-zhangdh.com.

A       10.1.1.103

$ORIGIN ilo-zhangdh.com.

dns                     A       10.1.1.103

# vim/var/named/201.10.in-addr.ilo-zhangdh.com.rev

$ORIGIN .

$TTL 86400      ; 1 day

201.10.in-addr.arpa     IN SOA ilo-zhangdh.com. root.ilo-zhangdh.com. (

2014114021 ;serial

120        ; refresh (2 minutes)

14400      ; retry (4 hours)

3600000    ; expire (5 weeks 6 days 16 hours)

86400      ; minimum (1 day)

)

NS      ilo-zhangdh.com.

$ORIGIN 201.1.in-addr.arpa.

103                    PTR     dns.ilo-zhangdh.com.

# vim/var/named/202.10.in-addr.ilo-zhangdh.com.rev

$ORIGIN .

$TTL 86400      ; 1 day

202.10.in-addr.arpa     IN SOA ilo-zhangdh.com. root.ilo-zhangdh.com. (

2014118989 ;serial

120        ; refresh (2 minutes)

14400      ; retry (4 hours)

3600000    ; expire (5 weeks 6 days 16 hours)

86400      ; minimum (1 day)

)

NS      ilo-zhangdh.com.

$ORIGIN 202.1.in-addr.arpa.

103                     PTR     dns.ilo-zhangdh.com.

……

注:1. 反向区域数据文件的其他文件和以上配置一样,稍加修改即可。

2. 如果配置成功后,会在/var/named/下生成.jnl文件

如:ilo-zhangdh.com.dns.jnl、201.1.in-addr.ilo-zhangdh.com.rev.jnl

# chown -R named.named /var/named

2.4 配置DHCP的dhcpd.conf

# vim /etc/dhcp/dhcpd.conf

key ilo {

algorithm hmac-md5;

secret HqX9xaJ75tgQ1S8hHz9L7Q==;

}

ddns-domainname"ilo-zhangdh.com";

ddns-update-style interim;

ddns-updates on;

update-conflict-detection false;

#allow client-updates;

allow unknown-clients;

authoritative;

ignore client-updates;

zone ilo-zhangdh.com. {             #ilo-zhangdh.com. 最后的“.”必须有

primary 10.1.1.103;

key ilo;

}                                                                  #最后不能有”;”

zone 201.10.in-addr.arpa. {

primary 10.1.1.103;

key ilo;

}

zone 202.10.in-addr.arpa. {

primary 10.1.1.103;

key ilo;

}

subnet 10.0.0.0 netmask 255.255.0.0{  #表示未分配

}

subnet 10.201.0.0 netmask 255.255.0.0 {

option routers                 10.201.255.254;

option subnet-mask             255.255.0.0;

option time-offset             -18000; # Eastern Standard Time

option ntp-servers             10.0.0.60;

range dynamic-bootp 1.201.0.1 1.201.254.255;

#option broadcast-address 10.201.0.255;

default-lease-time 69120000;

max-lease-time 86400000;

option domain-name             "ilo-zhangdh.com";

option domain-name-servers     10.1.1.103;

}

subnet 10.202.0.0 netmask 255.255.0.0 {

option routers                 10.202.255.254;

option subnet-mask             255.255.0.0;

option domain-name             "ilo-zhangdh.com";

option domain-name-servers     10.1.1.103;

option time-offset             -18000; # Eastern Standard Time

option ntp-servers             10.0.0.60;

range dynamic-bootp 10.202.0.1 10.202.254.255;

default-lease-time 14400;

max-lease-time 86400;

}

# vim /etc/resolved.conf

nameserver 127.0.0.1

3、验证

# tail -f /var/log/messages

-- > 表示10.0.0.0/16网段没有被分配,在上面的配置中可查

Dec 7 03:20:43 10_0_0_103 dhcpd: DHCPDISCOVER from 78:2b:cb:2c:83:44 viaem1: network 10.0.0.0/16: no free leases

-- > 表示成功分配

Dec 7 03:20:48 10_0_0_103 named[7769]: client 10.10.110.240#53: updatingzone ‘ilo-zhangdh.com/IN‘: adding an RR at ‘ILOCNG135T040.ILO

-JIAYUAN.COM‘ A

Dec 7 03:20:58 10_0_0_103 named[7769]: client 10.10.110.240#53: updatingzone ‘110.10.10.in-addr.arpa/IN‘: adding an RR at ‘240.110.10

.10.IN-ADDR.ARPA‘ PTR

-- > 查看是否分配成功,然后访问ilocng135t040.ilo-zhangdh.com即可访问管理端口

# ping ILOCNG135T040.ILO-ZHANGDH.COM

PING ILOCNG135T040.ILO-ZHANGDH.COM(10.10.110.240) 56(84) bytes of data.

64 bytes from ILOCNG135T040.ILO-ZHANGDH.COM(10.10.110.240): icmp_seq=1 ttl=250 time=2.17 ms

64 bytes from ILOCNG135T040.ILO-ZHANGDH.COM(10.10.110.240): icmp_seq=2 ttl=250 time=0.871 ms

64 bytes from ILOCNG135T040.ILO-ZHANGDH.COM(10.10.110.240): icmp_seq=3 ttl=250 time=0.930 ms

64 bytes from ILOCNG135T040.ILO-ZHANGDH.COM(10.10.110.240): icmp_seq=4 ttl=250 time=0.886 ms

时间: 2024-08-07 05:33:03

DDNS在生产环境中的应用的相关文章

生产环境中的PHP WEB 简单架构

使用三台虚拟机器, Ubuntu1(nginx) 192.168.226.128 Ubuntu2(php-fpm+memcached)192.168.226.132 CentOS(MySQL)192.169.226.130 PHP 框架使用CakePHP,这个是很常用的MVC 框架,基于事件的分发模型 当然需要注意的是框架代码要部署在php-fpm机器上,需要在nginx 中配置的配置如下 余下的内容: 1. CakePHP 框架代码 2. PHP 内核 3. Nginx内核 4. 数据库设计模

[virtualenv]生产环境中使用virtualenv

virtualenv 对于python开发和部署都是好工具,可以隔离多个python版本和第三方库的版本,这里作者总结了几个常用python服务怎么样结合virtual部署 原文链接 Python 中我最喜欢的东西之一就是可以使用 virtualenv 去创建隔离的环境.非常简单的就可以在不同的项目中部署不同的python类库. 有一个比较棘手的问题就是在生产环境中使用virtualenv 部署几个不同的服务有一些配置上的不同. 于是我就从我的项目中收集了几种不同的服务的不同配置方式. 可以肯定

生产环境中CentOS7部署NET Core应用程序

NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守护服务(Supervisor) 这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天

理解Docker(6):若干企业生产环境中的容器网络方案

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 Docker 在早期只有单机上的网络解决方案,在 1.19 版本引入了原生的 overlay 网络解决方案,但是它的性能损耗较大,可能无法适应一些生产环

生产环境中使用脚本实现tomcat start|status|stop|restart

一.在实际生产环境中tomcat启动是在bin目录下采用自带脚本startup.sh启动:使用shutdown.sh关闭.如下图: 再如果对于新手来讲在不知道路径情况下重启是一件头痛的事情(注意没有reload,所以重启只能shutdown.sh在startup.sh):而且这里还有一个坑等着: 什么坑呢?   如图: tomcat服务是启动成功了的.那么我想停止服务用shutdown.sh,会出现什么呢? 进程还在而且成为了僵尸进程,万恶啊?居然关不了,终极方法kill -9 进程号.试试?

生产环境中tomcat的配置

生产环境中要以daemon方式运行tomcat 通常在开发环境中,我们使用$CATALINA_HOME/bin/startup.sh来启动tomcat, 使用$CATALINA_HOME/bin/shutdown.sh来关闭tomcat. 而在生产环境中,我们要配置tomcat使其以daemon方式运行,这是因为: 以daemon运行不受终端影响,不会因为退出终端而停止运行 可以让tomcat以普通用户身份运行,可以让tomcat随linux启动而启动 如何将tomcat配置成守护进程 将tom

在生产环境中安全执行更新删除SQL脚本的技巧

今天在生产环境上解决问题,由于广发银行的管理制度是开发公司是不允许确生产环境的,所以我们只能把要更新的语句发给运营中心,由运营中心的投产人员执行,我们则在旁边看着:在他执行的时候发现了一个很有趣的技巧,现在分享出来. 我们知道每一次在生产环境中执行中执行更新删除语句的时候都要格外小心,要做好数据备份,但是即便这样对于一个做了分库分表设计,有十几个G的库来说更新一句SQL后发现忘记写WHERE语句或是语句写错了,恢复备份的成本都是相当高的. 我注意到运营中心的人在拿到我的SQL语句后,把它放到MS

.NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点

今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现在换成了ASP.NET Core,主要代码如下: var psi = new ProcessStartInfo(command, arguments) { RedirectStandardOutput = true, RedirectStandardInput = true, CreateNoWin

.NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上用V2015开发的,以self-contained应用部署方式发布到Linux服务器.Linux服务器用的是Ubuntu 14.04,站点通过supervisor以服务方式运行,部署在2台阿里云服务器上,用了1台阿里云内网负载均衡. 虽然是很简单的站点,虽然是很小的一步,但是进入生产环境就意味着对性