IPtables應(yīng)用之如何配置動態(tài)DNS服務(wù)器
更新時間:2007年09月19日 10:22:16 作者:
摘要
本文介紹了使用IPtables配置動態(tài)DNS服務(wù)器的配置過程。
1、核心思想
配置動態(tài)DNS服務(wù)器的核心思想是:在DNS服務(wù)器上運(yùn)行多個BIND,每個BIND為來自不同區(qū)域的用戶提供解析,因此每個BIND都應(yīng)具有不同的配置文件和域文件,并且分別監(jiān)聽在不同的端口。在接到客戶端DNS請求時,根據(jù)客戶的IP地址將請求重定向不同的BIND服務(wù)端口。
BIND響應(yīng)時,再改寫相應(yīng)包的服務(wù)端口為標(biāo)準(zhǔn)的53端口。這樣就可以根據(jù)客戶端的ip地址將不同的解析結(jié)果返回給客戶端。整個過程對于客戶端來說都是透明的。實(shí)現(xiàn)的關(guān)鍵在于運(yùn)行不同的BIND及運(yùn)用IPtables進(jìn)行IP地址及端口改寫操作。
2、配置過程
2.1.配置內(nèi)核
netfilter要求內(nèi)核版本不低于2.3.5,在編譯新內(nèi)核時,要求選擇和netfilter相關(guān)的項(xiàng)目。這些項(xiàng)目通常都是位于"Networking options"子項(xiàng)下。以2.4.0內(nèi)核為例,我們應(yīng)該選中的項(xiàng)目有:
然后,在"IP: Netfilter Configuration ---->"選中:
其中最后兩個項(xiàng)目可以不選,但是如果你比較懷念I(lǐng)Pchains或者IPfwadm,你也可以將其選中,以便在2.4內(nèi)核中使用IPchians或IPfwadm。但是需要注意的是,IPtables是和IPchians/IPfwadm相對立的,在使用IPtables的同時就不能同時使用IPchains/IPfwadm。編譯成功后,這些模塊文件都位于以下目錄中/lib/modules/2.4.0/kernel/net/ipv
4/netfilter
編譯2.4.0的新內(nèi)核時還應(yīng)該注意要在"Processor type and features"中選擇和你的CPU相對應(yīng)的正確的CPU選項(xiàng),否則新內(nèi)核可能無法正常工作。
2.2.配置BIND服務(wù)
缺省BIND服務(wù)監(jiān)聽在53端口,我們可以通過配置讓BIND運(yùn)行在不同的IP及端口上。實(shí)現(xiàn)這一點(diǎn)并不復(fù)雜,假設(shè)我們的DNS服務(wù)器的IP地址是211.163.76.1,并且我們想?yún)^(qū)分CERNET及非CERNET的客戶,這時我們必須運(yùn)行兩個BIND,使用不同的配置文件??梢栽谑褂梅菢?biāo)準(zhǔn)監(jiān)聽端口的BIND的配置文件中用listen-on指定BIND監(jiān)聽的端口,比如:
可以用named的-c 選項(xiàng)指定named讀入不同的配置文件,比如:
2.3.配置重定向規(guī)則
假設(shè)監(jiān)聽在標(biāo)準(zhǔn)端口的BIND服務(wù)器為非CERNET客戶提供DNS解析,監(jiān)聽在54端口的BIND服務(wù)器為CERNET服務(wù)器提供DNS解析,我們可以建立如下的規(guī)則腳本:
#加入來自CERNET的DNS請求轉(zhuǎn)發(fā)規(guī)則,將其轉(zhuǎn)發(fā)到本地54端口,
#CERNET地址列表可從www.nic.edu.cn/RS/ipstat/獲得
#將返回給CERNET DNS客戶數(shù)據(jù)包的源端口(54端口)偽裝成53端口
可以下載該腳本,將腳本中的DNS_IP及CNET_PORT參數(shù)改成你自己的DNS服務(wù)器地址及監(jiān)聽端口即可。
2.4.運(yùn)行動態(tài)DNS
配置完成后我們啟動DNS服務(wù)器,并且運(yùn)行相應(yīng)的規(guī)則腳本,我們的動態(tài)DNS服務(wù)器就可以正常工作了。
文章錄入:csh 責(zé)任編輯:csh
本文介紹了使用IPtables配置動態(tài)DNS服務(wù)器的配置過程。
1、核心思想
配置動態(tài)DNS服務(wù)器的核心思想是:在DNS服務(wù)器上運(yùn)行多個BIND,每個BIND為來自不同區(qū)域的用戶提供解析,因此每個BIND都應(yīng)具有不同的配置文件和域文件,并且分別監(jiān)聽在不同的端口。在接到客戶端DNS請求時,根據(jù)客戶的IP地址將請求重定向不同的BIND服務(wù)端口。
BIND響應(yīng)時,再改寫相應(yīng)包的服務(wù)端口為標(biāo)準(zhǔn)的53端口。這樣就可以根據(jù)客戶端的ip地址將不同的解析結(jié)果返回給客戶端。整個過程對于客戶端來說都是透明的。實(shí)現(xiàn)的關(guān)鍵在于運(yùn)行不同的BIND及運(yùn)用IPtables進(jìn)行IP地址及端口改寫操作。
2、配置過程
2.1.配置內(nèi)核
netfilter要求內(nèi)核版本不低于2.3.5,在編譯新內(nèi)核時,要求選擇和netfilter相關(guān)的項(xiàng)目。這些項(xiàng)目通常都是位于"Networking options"子項(xiàng)下。以2.4.0內(nèi)核為例,我們應(yīng)該選中的項(xiàng)目有:
[*] 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
其中最后兩個項(xiàng)目可以不選,但是如果你比較懷念I(lǐng)Pchains或者IPfwadm,你也可以將其選中,以便在2.4內(nèi)核中使用IPchians或IPfwadm。但是需要注意的是,IPtables是和IPchians/IPfwadm相對立的,在使用IPtables的同時就不能同時使用IPchains/IPfwadm。編譯成功后,這些模塊文件都位于以下目錄中/lib/modules/2.4.0/kernel/net/ipv
4/netfilter
編譯2.4.0的新內(nèi)核時還應(yīng)該注意要在"Processor type and features"中選擇和你的CPU相對應(yīng)的正確的CPU選項(xiàng),否則新內(nèi)核可能無法正常工作。
2.2.配置BIND服務(wù)
缺省BIND服務(wù)監(jiān)聽在53端口,我們可以通過配置讓BIND運(yùn)行在不同的IP及端口上。實(shí)現(xiàn)這一點(diǎn)并不復(fù)雜,假設(shè)我們的DNS服務(wù)器的IP地址是211.163.76.1,并且我們想?yún)^(qū)分CERNET及非CERNET的客戶,這時我們必須運(yùn)行兩個BIND,使用不同的配置文件??梢栽谑褂梅菢?biāo)準(zhǔn)監(jiān)聽端口的BIND的配置文件中用listen-on指定BIND監(jiān)聽的端口,比如:
options { listen-on port 54 {211.163.76.1;} directory "/var/named_cernet"; };
可以用named的-c 選項(xiàng)指定named讀入不同的配置文件,比如:
/usr/sbin/named -u named -c /etc/named_cernet.conf
2.3.配置重定向規(guī)則
假設(shè)監(jiān)聽在標(biāo)準(zhǔn)端口的BIND服務(wù)器為非CERNET客戶提供DNS解析,監(jiān)聽在54端口的BIND服務(wù)器為CERNET服務(wù)器提供DNS解析,我們可以建立如下的規(guī)則腳本:
#!/bin/bash#打開端口轉(zhuǎn)發(fā)echo 1 > /proc/sys/net/ipv4/ip_forward#加載相關(guān)的內(nèi)核模塊/sbin/modprobe iptable_filter/sbin/modprobe ip_tables/sbin/modprobe iptables_nat#刷新所有規(guī)則/sbin/iptables -t nat -F
#加入來自CERNET的DNS請求轉(zhuǎn)發(fā)規(guī)則,將其轉(zhuǎn)發(fā)到本地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客戶數(shù)據(jù)包的源端口(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參數(shù)改成你自己的DNS服務(wù)器地址及監(jiān)聽端口即可。
2.4.運(yùn)行動態(tài)DNS
配置完成后我們啟動DNS服務(wù)器,并且運(yùn)行相應(yīng)的規(guī)則腳本,我們的動態(tài)DNS服務(wù)器就可以正常工作了。
文章錄入:csh 責(zé)任編輯:csh
相關(guān)文章
三種新型技術(shù)在寬帶綜合城域網(wǎng)中的應(yīng)用
三種新型技術(shù)在寬帶綜合城域網(wǎng)中的應(yīng)用...2007-09-09多VLAN環(huán)境下DHCP服務(wù)的實(shí)現(xiàn)
多VLAN環(huán)境下DHCP服務(wù)的實(shí)現(xiàn)...2007-09-09Cisco Catalyst 6500為何一統(tǒng)思科
Cisco Catalyst 6500為何一統(tǒng)思科...2007-09-09Windows 2003中輕松實(shí)現(xiàn)紅外線通信支持正文分析錯誤
Windows 2003中輕松實(shí)現(xiàn)紅外線通信支持正文分析錯誤...2007-09-09