引言:数据库
自从中国电信拆分红北网通、南电信之后,开始了各自资源的垄断.成就了目前这种互联不互通的奇怪局面,连信产部都无能为力.为了解决南北互联互通的问题,开始出现了智能DNS,这须要准确的知道电信和网通及其它运营商的IP分段状况。网络
通常有以下两种办法能够获得各运营商的IP段:
1 经过导出各BGP路由器的路由表,获得各运营商的IP段.
2 经过whois查询APNIC数据库信息.APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!ide
下面就让咱们看看如何在Linux下得到一些电信、网通、等运营商的IP地址分配状况:
首先:确保Linux系统能够上Internet
[root@rhel6-client ~]# ping www.baidu.com
PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107: icmp_seq=1 ttl=55 time=8.36 ms
64 bytes from 180.97.33.107: icmp_seq=2 ttl=55 time=5.98 ms
64 bytes from 180.97.33.107: icmp_seq=3 ttl=55 time=6.33 ms
64 bytes from 180.97.33.107: icmp_seq=4 ttl=55 time=10.6 ms
64 bytes from 180.97.33.107: icmp_seq=5 ttl=55 time=8.84 ms
64 bytes from 180.97.33.107: icmp_seq=6 ttl=55 time=8.80 ms
^C
--- www.a.shifen.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5481ms
rtt min/avg/max/mdev = 5.980/8.155/10.608/1.586 ms
其次:下载whois客户端工具
[root@rhel6-client ~]# wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
而后解压、编译和安装
[root@rhel6-client ~]# tar -zxvf ripe-dbase-client-v3.tar.gz
[root@rhel6-client ~]#cd whois-3.1/
[root@rhel6-client ~]#./configure
[root@rhel6-client ~]#make && make install
最后:获取运营商IP段
[root@rhel6-client ~]#./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /root/cnc
[root@rhel6-client ~]#./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /root/chinanet
[root@rhel6-client ~]#./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /root/crtc
[root@rhel6-client ~]# ls -al
total 1640
dr-xr-x---. 6 root root 4096 May 28 06:08 .
dr-xr-xr-x. 22 root root 4096 May 27 20:21 ..
-rw-r--r-- 1 root root 420038 May 28 06:08 chinanet
-rw-r--r-- 1 root root 408469 May 28 06:05 cnc
-rw-r--r-- 1 root root 384472 May 28 06:10 crtc
-rw-r--r-- 1 root root 26342 Dec 10 2014 ripe-dbase-client-v3.tar.gz
drwxrwxrwx 2 512 5020 4096 May 28 06:03 whois-3.1
依次获取电信、网通、铁通IP地址段信息工具
若是想获得具体的服务商好比江苏省电信的IP池,就把mb的值改成MAINT-CHINANET-JS,或者是辽宁网通,那就改成MAINT-CNCGROUP-LN。能够先查看各运营商的网络IP地址,而后在官方网站上查看这个地址归属的运营商组名。
打开获取后的文件能够看到里面的信息很是详细,甚至能够看到各个分公司的负责人、电话、电子邮件等等信息。若是想获得一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就能够了。
获取中国CNC网通地址列表字段
./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"CNC\" '{'"}{print $1";"}END{print "'}';"}' > /var/named/cnc_acl.conf
获取中国电信CTC 地址列表字段
./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"CTC\" '{'"}{print $1";"}END{print "'}';"}' > /var/named/ctc_acl.conf
grep过程:
grep "inetnum" cnc-he > cnc-grep
最终结果出来前把inetnum字段去掉会更清楚一些:(sed过程)
sed 's/inetnum: //g' cnc-grep
sed 's/inetnum: //g' chinanetgrep
sed 's/inetnum: //g' crtcgrep
more cnc-he | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"cnc-he\" '{'"}{print $1";"}END{print "'}';"}' > /var/named/cnc.he 使用ripe-whois3得到电信,网通等运营商的ip地址网站