环境:Virtual Box虚拟机组建网络。

安装CentOS7 x86_64,作为对外的网关,DHCP服务器,DNS服务器为内网提供服务。

内网DNS自定义域:dakki.daze

内网DHCP分配范围:100.64.1.100-100.64.1.200

内网网络参数:掩码255.255.255.0,网关100.64.1.1

Serv的两块网卡设置如下:

enp0s3:对外,采用桥接方式,在路由器处采用DHCP获取IP为100.64.0.103.

enp0s8:对内,采用内网连接方式,指定IP为100.64.1.1

Cli1为Windows XP系统,作为客户机。

一、服务端的准备工作

安装完CentOS7,进入系统,首先开始配置两块网卡。

进入目录/etc/sysconfig/network-scripts,首先查看系统对两块网卡的配置是否正确。

[root@serv network-scripts]# vi ifcfg-enp0s3
主要关注这几条:
BOOTPROTO=dhcp   //采用DHCP方式获取IP
ONBOOT=yes        //开机自动配置网卡
[root@serv network-scripts]# vi ifcfg-enp0s8
DEVICE=“enp0s8”’
HWADDR=”08:00:27:88:18:57”    //设备名和MAC地址
BOOTPROTO=static            //静态IP
IPADDR=100.64.1.1             //内网网卡指定IP
NETMASK=255.255.255.0        //内网的子网掩码
ONBOOT=yes                 //开机自动配置

保存退出后,重启下网络以便新配置生效。

[root@serv network-scripts]# systemctl restart network

然后运行ifconfig,检查网卡的配置是否有错

[root@serv network-scripts]# ifconfig | more

确定没有问题后,开始dhcp的部署。

二、DHCP服务器的部署

首先安装dhcp,这是一个轻量化的dhcp服务器软件。

[root@serv network-scripts]# yum install dhcp

它的配置文件位于/etc/dhcp/dhcpd.conf,默认安装的时候生成的dhcpd.conf是没有配置内容的,可以到/usr中的相关目录(详细地址在生成的dhcpd.conf中)去寻找示例配置文件,也可以自己编写,此处采用手动编写方式。

[root@serv dhcp]# vi dhcpd.conf
option domain-name “dakki.daze”; //所谓的Connection-Specific DNS suffix,填写域即可
option domain-name-servers 100.64.1.1, 223.5.5.5;  //推送给客户端的DNS服务器,这里因为要建立DNS服务器的原因写入了100.64.1.1
option routers 100.64.1.1; //推送给客户端的默认网关
default-lease-time 3600; //默认租约时间,单位为秒
max-lease-time 7200; //最大租约时间,单位为秒
subnet 100.64.1.0 netmask 255.255.255.0 {
range 100.64.1.100 100.64.1.200;
} //设置子网的参数

然后保存该文件,启动dhcp服务器。

[root@serv dhcp]# service dhcpd restart

然后启动客户机的Windows XP,等待连上网络后打开命令提示符,输入ipconfig,查看结果。

三、网关的部署

这里采取最简单的方法:iptables

首先开启内核转发,

[root@serv ~]# vi /etc/sysctl.conf

在其中寻找net.ipv4.ip_forward=0,并将0改为1。

如果没有这一句,请手动添加net.ipv4.ip_forward=1。

保存退出,执行systcl -p以使更改生效。

[root@serv ~]# systcl -p

然后在iptables上开启转发

[root@serv ~]# iptables -t nat -A POSTROUTING -s 100.64.1.0/24 -o enp0s3 -j MASQUERADE

然后到客户机上,执行ping命令测试外网,网络是通的。

四、DNS服务器的搭建

这是本文最难,也是坑最多的地方,希望各位在实践时多注意,多动手操作。

另外这里只介绍正解的配置,反解暂不介绍。

首先安装DNS服务器软件,这里使用BIND。

[root@serv ~]# yum install bind

它的配置文件位于/etc下,而DNS的区域文件则位于/var/named下。

先来编辑配置文件,

[root@serv etc]# vi named.conf

需要更改的参数如下:

listen-on port 53 { any; };   //监听整个网络
allow-query { any; };  //向整个网络开放查询权

然后在配置文件最后加入自定义DNS区域文件的配置:

zone “dakki.daze” IN {
	type master;
	file “named.dakki.daze”;
};

保存配置文件,然后到/var/named/下,新建区域文件named.dakki.daze,

[root@serv named]# vi named.dakki.daze

区域文件示例:

$TTL 600  //指定Time to live值,600即可
@           IN SOA @ soa.dakki.daze. ( 0 1D 1H 1W 3H ) //括号内数字分别为serial refresh retry expire minimum
@           IN NS     100.64.1.1.  //NS服务器
soa IN A 100.64.1.1
dns IN A 100.64.1.1
www IN A 100.64.1.1
…….(添加你需要的)

然后保存退出

接下来是很多地方都会忽略的一条:更改区域文件的归属

[root@serv named]# chown named named.dakki.daze
[root@serv named]# chgrp named named.dakki.daze

好了,现在启动named服务

[root@serv named]# service named restart

使用dig命令来查看区域文件的自定义域是否生效

[root@serv named]# dig @127.0.0.1 www.dakki.daze

如果在输出中有;; ANSWER SECTION,而且里面的返回结果与区域文件的设置一致,那么恭喜你,配置成功!

参考资料:http://www.centoscn.com/CentosServer/dns/2015/0109/4460.html

《鸟哥的Linux私房菜——服务器架设篇》(第三版)