iptables应用之动态DNS

2009-05-13 01:12:09来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

iptables应用之动态DNS
iptables应用之动态DNS
一、核心思想
    配置动态DNS服务器的核心思想是:在DNS服务器上运行多个BIND,每个BIND为来自不同区域的用户提供解析,因此每个BIND都应具有不同的配置文件和域文件,并且分别监听在不同的端口。在接到客户端DNS请求时,根据客户的ip地址将请求重定向不同的BIND服务端口。BIND响应时,再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将不同的解析结果返回给客户端。整个过程对于客户端来说都是透明的。实现的关键在于运行不同的BIND及运用iptables进行ip地址及端口改写操作。
     关于iptables更为详细的信息,请参考解决方案中作者的两篇文章——《用iptales实现包过虑型防火墙》及《用iptables实现NAT》。
二、配置过程
步骤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 ---->"选中:
    Connection tracking (required for masq/NAT)
    FTP protocol support
    IP tables support (required for filtering/masq/NAT)
    limit match support
    MAC address match support
    Netfilter MARK match support
    Multiple port match support
    TOS match support
    Connection state match support
    Packet filtering
       REJECT target support
    Full NAT
       MASQUERADE target support
       REDIRECT target support
    Packet mangling
          TOS target support
       MARK target support
    LOG target support
    ipchains (2.2-style) support
    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选项,否则新内核可能无法正常工作。
    步骤二、 配置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解析,我们可以建立如下的规则脚本:

    标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 上一篇:新一代网络配置工具iproute ——命令篇(上)

    下一篇:用Linux将局域网带入Internet