ipt.ables应用之动态DNS.
摘要
本文介绍了使用ipta.b.les配置动态DNS服务器的配置过程。(2002-06-24 12:37:53)(广告)
-----------------------------------------------.---------------..------------------(广告)
By 处处
1.核心思想
配置动态DNS服务器的核心思想是:在DNS服务器上运行多个BIND,每个B.IND为来自不同区域的用户提供解析,因此每个BIND都应具有不同的配置文件和域文件,并且分别监听在不同的端口。在接到客户端DNS请求时,根据客户的.ip地址将请求重定向不同的BIND服务端口。BIND响应时,.再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将不同的解析结果返.回给客户端。整个过程对于客户端来说都是透明的.。实现的关键在于运行不同的B.IND及运用iptables进行ip地址及端口改写操作。 电子
关于iptables更为详细的.信息,请参考解决方.案中作者的两篇文章——《用iptales实现包过虑型防火墙》及《用iptables实现NAT》。(广告)
2.配置过程
2.1.配置内核
netfilter要求内核版本不低于2.3.5,在编译新内核时.,要求选择和netfilter相关的项目。这些项目通常都是位于"Networking options"子项下。以2.4.0内.核为例,我们.应该选中的项目有:健康
Kernel/Us.er netli.nk socket 汽车
[ ] Routing messa.ges 女人
<*>; Netlink device emul..ation 服务器
Network pac.ket f.iltering (replaces ipchains) .
.......
然后,在"IP: Netfilter. Configurat.ion ---->;"选中:域名
<M>; C.onnec.tion tracking (required for masq/NAT) ( 游戏 )
. <M>; FTP. protocol support.
<M>; .IP tables support (required .for filtering/masq/NAT)(广告)
<M>; limit .ma.tch support 女人
<M>; MA.C. address match support 女人
<M>; Netfilter MAR.K match .support --- 印刷
<M>; Mu.ltiple port match suppor.t .
<M>; TOS match suppor.t 教育
<M>; .Connection state match supp.ort (广告)
<M>; Packet. filtering.
.<M>; REJE.CT target support域名
<M>; F.ull NAT 鲜花
.<M>.; MASQUERADE target support .
<M>; REDIRECT ta.rget support. ( 游戏 )
<M>; Pa.cket mangling .
<M>; TOS. target su.pport 电影
<M>; .MARK target suppo.rt 婚庆
<M>; LOG target. support(广告)
<M>; ipchains .(2.2-style) .support电影
<M>; ipfwadm (2..0-style) suppor.t 电子
其中最后两个项目可以不选,但是如果你比较怀.念ipchains或者ipfwadm,你也可以将其选中,以便在2.4内核中使用ipchians或ipfwadm。但是需...要注意的是,iptables是和ipchians/ipfwadm相对立的,在使用iptables的同时就不能同时使用ipchains/i.pfwadm。编译成功后,这些模块文件都位于以下目录中 女人
/lib/modules/2..4.0/kern.el/net/ipv4/netfilter 女人
编译2.4.0的新内核时还应该注意要在"rocessor type and features"中选择和你的CPU相对应的正确的CPU选项,否则新内核可能无法正常工作。http://upload.bbs.csuboy.com/Mon_1004/126_6796_4f4b5a14d6d2379.gif[/img].
2.2.配置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;} 健康
dir.ectory "/var/named_c.ernet"; (广告)
};
可以用named的-c 选项指定named读入不同的配置.文件,.比如:.
/..usr/sbin/named -u named -c /etc/named_cernet.conf虚拟主机
2.3.配置重定向规则
假设监听在标准端口的BIND服务.器为非CERNET客户提供DNS解析,监听在54端口的BIND服务器为CERNET服务器提供DNS解析,我们.可以建立如.下的规则脚本:外贸
#!/bin/bash
#打开端口转发
echo 1 >; /pro.c/sys/net/ipv4/ip_forwa.rd学习
#加载相关的内核模块
./sbin/modprobe ipt.able_filter服务器
/sbin/modprobe. ip_tabl.es 汽车
/s.bin/modp.robe iptables_nat( 游戏 )
#刷新所有规则
/sbin./ipta.bles -t nat -F.
#.加入来自CE.RNET的DNS请求转发规则,将其转发到本地54端口,.
#CERNET地址列表可从
www.nic..edu.cn/RS/ip.stat/获得 外汇
/sbin/ipta.bles -t nat -A PREROUTING -p udp -s 163.105.0.0./16.
--dpor.t 53 -i eth0 -j REDIR.ECT 54 --------------彩票
/sbin/i.ptables -t nat -A PREROUTING -p tcp .-s 163.105.0.0/16教育
. --dport 53 -i eth0 -j RED.IRECT 54电影
/sbin/iptables -t nat -A PREROUTING -p udp -s. 166.111.0.0./16 美容
--dport 53 -i eth0 -.j RE.DIRECT 54 电脑
/s.bin/iptables -t nat -A PREROUTING -p tcp -s 166.111.0..0/16 建材
-.-dp.ort 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 健康
/s.bin/iptables -t nat -A PREROUTING -p tcp .-s 202.4.128.0/19.
--dport 53 -i eth0 -j REDIR.ECT .54.
/sbin/iptables -t nat -A PREROUTING -p udp -s 202.112..0.0/.15<性病>
--dport 53 -i .eth0 -j RE.DIRECT 54 投资
/sbin/iptabl.es -t nat -A PREROUTING -p tcp -s 202.11.2.0.0/15(广告)
--dport 53 -i eth0 -j. RE.DIRECT 54.
…
#.将返回给CERNET DN.S客户数据包的源端口(54端口)伪装成53端口 建材
/sbin/iptabl.e.s -t nat -A POSTROUTING -p udp.
--sport 54 -o eth0 -j SNAT --to 211.163.76..1:5.3<性病>
/sbi.n/iptables -t nat -A POST.ROUTING -p tcp.
--.sport 54 -o eth0 .-j SNAT --to 211.163.76.1:53电脑
教育网网的朋友可以从这里这里下.载该脚本,将脚本中的D.NS_IP及CNET_PORT参数改成你自己的DNS服务器地址及监听端口即可。 电子
2.4.运行动态DNS
配置完成后我们启动DNS服务器,并且运行相应的规则脚本,我们的动态DNS服务.器就可以正常.工作了。虚拟主机