页面

2011年9月16日

我的Home Server(第二部分)

DHCP & DNS

这部分我是使用Dnsmasq来实现,如果你刷过DD-WRTTomato这些路由器固件的话应该对Dnsmasq不陌生。首先是安装Dnsmasq:

# aptitude install dnsmasq

为了日后维护方便,推荐在 /etc/dnsmasq.d/ 目录下新建一些配置文件,比如针对DNS部分的 dns.conf,针对DHCP的 dhcp.conf。(这些文件名只是举例而已,你可以取任何喜欢的文件名。)

首先是DNS的配置文件

# vi /etc/dnsmasq.d/dns.conf
## DNS缓存
resolv-file=/etc/resolv_dnsmasq.conf

## 对域名指定DNS服务器
server=/twitter.com/8.8.4.4
server=/facebook.com/8.8.4.4

## 域名泛解析
address=/google.com/10.0.0.130
address=/ggpht.com/10.0.0.130

解析一下 dns.conf 里的一些设置:

  • DNS缓存
    顾名思义就是将DNS查询的结果在本地做缓存,等下次再查询该域名时可以直接返回本地缓存的结果以加快解析速度(这里有一个例子说明)。要实现这个功能首先要新建 /etc/resolv_dnsmasq.conf 这个配置文件,然后在里面填上常用的DNS服务器,例如:
    # vi /etc/resolv_dnsmasq.conf
    nameserver 8.8.4.4
    nameserver 208.67.222.222
  • 对域名指定DNS服务器
    因为一些奇怪的问题,我是不会使用国内的DNS服务器的,而是使用国外的DNS服务器,这时一些国内的网站解析出来的IP地址可能是国外的地址,这样就造成了访问速度降低(我用国内的IP去访问这个网站的国外IP)。这种情况确实存在,例如国内某个渣雷看看。为了避免这种情况,可以在Dnsmasq里为特定的域名设置一个特定的DNS服务器来解析。配置的格式是:
    server=/网站域名/DNS服务器地址
  • 域名泛解析
    这个泛解析可以实现的功能可多了,例如例子里对 google.com 解析为 10.0.0.130,这时我无论是查询 www.google.com、还是 mail.google.com,都会返回10.0.0.130这个地址,在某些情况下可是很有用的。配置的格式是:
    address=/网站域名/指定的IP地址

下面是DHCP的配置文件

# vi /etc/dnsmasq.d/dhcp.conf
# 监听固定的网卡端口
interface=eth0
bind-interfaces

# IP分配
dhcp-range=10.0.0.100,10.0.0.120,24h # IP分配范围和租约时长
dhcp-option=3,10.0.0.1 # 分配的网关
dhcp-option=6,10.0.0.1 # 分配的DNS

# 固定主机
dhcp-host=00:11:22:33:44:55,10.0.0.10 # 为某MAC地址分配固定的IP地址
dhcp-host=00:66:77:88:99:aa,10.0.0.20

解析一下 dhcp.conf 里的一些设置:

  • 监听固定的网卡端口
    顾名思义,就是只回应 eth0 网卡接收到的 dhcp 和 dns 请求。
  • IP分配
    这里是配置分配的IP地址范围、网关、DNS和租约时长。配置的格式是:
    dhcp-range=起始IP地址,结束IP地址,租约时长
    dhcp-option=3,网关IP地址
    dhcp-option=6,DNS服务器IP地址
  • 固定主机
    为固定的MAC地址分配固定的IP地址,可以方便日后管理。配置的格式是:
    dhcp-host=MAC地址,IP地址

最后运行下面命令重启Dnsmasq服务即可生效。

# /etc/init.d/dnsmasq restart

第二部分完


相关文章

没有评论:

发表评论