anyconnect路由表制作

全局Anyconnect使用起来往往不是很方便,国内的网站会慢,一些要求验证本地IP的数据库也会用不了。因此,通过添加route或no-route表来实现特定IP范围走本地还是走Anyconnect(即分流),以此满足不同网站的访问需求。

Proxy VS Anyconnect

Proxy配合gfwlist可以实现较为精确的分流模式,而且按需配置需要代理的程序。Anyconnect只能通过在服务器段添加route或no-route表实现分流,同时只支持IP段建立分流表,分流表200条以内,只能扩大目标IP段来压缩至200行。不过anyconnect一直是政府、企业和学校采购的方案,从技术上稳定性较好,安全性也高,只要服务器能撑得住。

思路

收集别人的结果

优点:效率高;

缺点:质量无法保证,对于成熟的项目,一般较为精确(比如goagent带动的Google IP段),对于一些小站,很少人会做。

收集ASN记录

优点:效率较高,因为是网站注册提供的数据,可信度较高;

缺点:数据不完整,因为很多网站节点多或是用上了CDN,ASN的记录总是不完全的。同时收集需要一定的采集技术。

通过收集DNS和域名,解析网站IP段

原理:因为访问网站的流程为本地请求域名<–>DNS服务器将域名转换为IP地址<–>最近服务器IP。尽可能采集网站有很多子域名和附属域名,因为不同子域名或附属域名调用的服务器可能不同。网站的节点分布较多,因此要收集各个地区的DNS,这样能尽可能的将挖出分布各地的节点。如果要做的是no-route表,国内能访问即可,也就是只要收集国内的DNS即可。如果做的是route表,则可以选择临近国家的DNS,如港澳台、日本、韩国、新加坡、美国等。

优点:适用性较广,尽可能的囊括IP段,同样可以处理小型网站

缺点:为了尽可能囊括IP段,同时确保不超出200行数据,势必要扩大IP段,形成不少的噪声。同时采集域名和DNS需要一定技术手段、解析耗时也较长。

实现

anyconnect打算分成四个表:

  • All:内网IP段走本地,其他走anyconnect。
  • Scholar:数据库和内网IP段走本地,其他走anyconnect。
  • NoRoute:国内主要IP段走本地,其他走anyconnect。
  • Route:国外被墙网站走anyconnect,其他走本地。

Scholar表

由于数据库网站较多,没有别人的成果,AS查起来不方柏霓,因此选择通过域名和DNS解析的方法获得IP段。

数据库比较全的国内学校:上海交通大学、浙江大学、清华大学、中国科学院大学。

这里选用上海交通大学的数据库列表:http://www.lib.sjtu.edu.cn/index.php?m=content&c=index&a=lists&catid=223

DNS采集自:http://www.ip.cn/dns.html

采集的数据,按行排列,最后留多一个空行,分别保存成domain.txt和dns.txt。将下列代码复制保存为getip.sh。

bash getip.sh运行脚本,解析IP,最后的结果以result.txt文件输出。由于企业、学校的IP段一般较多,将得到的IP,用正则,转换为*.*.0.0的IP段,再根据情况,合并成*.0.0.0。no-route和route不能同时使用!同时要确定数据在200行以内!anyconnect支持的IP范围格式(IP地址/子网掩码)如下:

no-route = *.0.0.0/255.0.0.0
route = *.*.0.0/255.255.0.0

再加上常见的内网IP段,这样就制作好了一个分流表。

NoRoute表

别人有整理过,直接搬来用也差不多。

https://github.com/wongsyrone/ocserv-cn-no-route-1/blob/master/tmp/cn-no-route2.txt

Route表

有人发过不全的一个CIDR格式的IP段,可以利用网站https://www.ipconvertertools.com/cidr2ipranges将其转换为IP地址/子网掩码的格式。

https://github.com/SteamedFish/gfwiplist/blob/master/gfwiplist.txt

Tips:
Scholar表存在问题:
time.com和一个数据库(scopus)使用AWS的节点,同一IP端,不好划分。

5 Replies to “anyconnect路由表制作”

  1. hello,你好啊,博主,我也是一个小站的博主,以后多多交流啊。

    我的直接放在linode,没有备案,好像https稍微有点问题。
    我用的是这个https://certbot.eff.org/#ubuntutzesty-apache
    直接生成的

    1. Google字体库最好也替换一下,可以看我汇总的wordpress插件。在VPS上建博客优化的地方还是比较多的😄

Leave a Reply

Your email address will not be published. Required fields are marked *