扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
步骤二、 配置BIND服务
缺省地,BIND服务监听在53端口,我们可以通过配置让BIND运行在不同的ip及端口上。
实现这一点并不复杂,假设我们的DNS服务器的ip地址是211.163.76.1,并且我们想区分
CERNET及非CERNET的客户,这时我们必须运行两个BIND,使用不同的配置文件。可以在
使用非标准监听端口的BIND的配置文件中用listen-on指定BIND监听的端口,比如:
options {
listen-on port 54 {211.163.76.1;}
directory "/var/named_cernet";
};
可以用named的-c 选项指定named读入不同的配置文件,比如:
/usr/sbin/named -u named -c /etc/named_cernet.conf
步骤三、配置重定向规则
假设监听在标准端口的BIND服务器为非CERNET客户提供DNS解析,监听在54端口的BIND服务器
为CERNET服务器提供DNS解析,我们可以建立如下的规则脚本:
#!/bin/bash
#打开端口转发
echo 1 >&nb! sp;/proc/sys/net/ipv4/ip_forward
#加载相关的内核模块
/sbi n/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptables_nat
#刷新所有规则
/sbin/iptables -t nat -F
#加入来自CERNET的DNS请求转发规则,将其转发到本地54端口,CERNET地址列表可从www.nic.edu.cn/RS/ipstat/获得
/sbin/iptables -t nat -A PREROUTING -p udp -s 163.105.0.0/16 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p tcp -s 163.105.0.0/16 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p udp -s 166.111.0.0/16 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p tcp -s 166.111.0.0/16 --dport 53 -i eth0 -j REDIRECT 54!
/sbin/iptables -t nat -A PREROUTING -p udp -s 202.4.128.0/19 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.4.128.0/19 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p udp -s 202.112.0.0/15 --dport 53 -i eth0 -j REDIRECT 54
/sbin/iptables -t nat -A PREROUTING -p tcp -s 202.112.0.0/15 --dport 53 -i eth0 -j REDIRECT 54
…
#将返回给CERNET DNS客户数据包的源端口(54端口)伪装成53端口
/sbin/iptables -t nat -A POSTROUTING -p udp --sport 54 -o eth0 -j SNAT --to 211.163.76.1:53
/sbin/iptables -t&n! bsp;nat -A POSTROUTING -p tcp --sport&n bsp;54 -o eth0 -j SNAT --to 211.163.76.1:53
教育网网的朋友可以从这里这里下载该脚本,将脚本中的DNS_IP及CNET_PORT参数改成你自
己的DNS服务器地址及监听端口即可。
步骤四、 运行动态DNS
配置完成后我们启动DNS服务器,并且运行相应的规则脚本,我们的动态DNS服务器就可以正常工作了。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。