首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> 服务器技术-> iptables应用之动态DNS
iptables应用之动态DNS

1.核心思想

  配置动态DNS服务器的核心思想是:在DNS服务器上运行多个BIND,每个BIND为来自不同区域的用户提供解析,因此每个BIND都应具有不同的配置文件和域文件,并且分别监听在不同的端口。在接到客户端DNS请求时,根据客户的ip地址将请求重定向不同的BIND服务端口。BIND响应时,再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行不同的BIND及运用iptables进行ip地址及端口改写操作。

  关于iptables更为详细的信息,请参考解决方案中作者的两篇文章——《用iptales实现包过虑型防火墙》及《用iptables实现NAT》。

2.配置过程

2.1.配置内核

  netfilter要求内核版本不低于2.3.5,在编译新内核时,要求选择和netfilter相关的项目。这些项目通常都是位于"Networking options"子项下。以2.4.0内核为例,我们应该选中的项目有:

  [*] Kernel/User netlink socket 
  [ ] Routing messages 
  <*> Netlink device emulation 
  [*] Network packet filtering (replaces ipchains) 
  .......

  然后,在"IP: Netfilter Configuration ---->"选中:

  <M> Connection tracking (required for masq/NAT) 
  <M> FTP protocol support
  <M> IP tables support (required for filtering/masq/NAT)
  <M> limit match support 
  <M> MAC address match support 
  <M> Netfilter MARK match support 
  <M> Multiple port match support 
  <M> TOS match support 
  <M> Connection state match support 
  <M> Packet filtering
  <M> REJECT target support
  <M> Full NAT 
  <M> MASQUERADE target support 
  <M> REDIRECT target support 
  <M> Packet mangling 
  <M> TOS target support 
  <M> MARK target support 
  <M> LOG target support
  <M> ipchains (2.2-style) support
  <M> ipfwadm (2.0-style) support

  其中最后两个项目可以不选,但是如果你比较怀念ipchains或者ipfwadm,你也可以将其选中,以便在2.4内核中使用ipchians或ipfwadm。但是需要注意的是,iptables是和ipchians/ipfwadm相对立的,在使用iptables的同时就不能同时使用ipchains/ipfwadm。编译成功后,这些模块文件都位于以下目录中
/lib/modules/2.4.0/kernel/net/ipv4/netfilter

  编译2.4.0的新内核时还应该注意要在"Processor type and features"中选择和你的CPU相对应的正确的CPU选项,否则新内核可能无法正常工作。

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;}
  directory "/var/named_cernet"; 
  };

  可以用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 > /proc/sys/net/ipv4/ip_forward

  #加载相关的内核模块
  /sbin/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 nat -A POSTROUTING -p tcp
    --sport 54 -o eth0 -j SNAT --to 211.163.76.1:53

  教育网网的朋友可以从这里这里下载该脚本,将脚本中的DNS_IP及CNET_PORT参数改成你自己的DNS服务器地址及监听端口即可。

2.4.运行动态DNS

  配置完成后我们启动DNS服务器,并且运行相应的规则脚本,我们的动态DNS服务器就可以正常工作了。



在百度中查找更多iptables应用之动态DNS的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ iptables应用之动态DNS”来源于网络,版权归作者所有!勿用于商业用途。

服务器技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·DNS服务器配置
·ICMP详解
·用MDaemon搭建邮件服务器
·跟我学用Foxmail收Hotmail邮件
·域名和邮件服务器FAQ
·Windows2003技巧
·邮件-域名-DNS相关知识
·发送邮件常见出错代码
·在unix linux下安装配置DHCP服务
·怎么样才能够做好一个网站

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言