1、生成最新国内IP列表chnroute.txt
curl 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > chnroute.txt
2、合并chnroute.txt(335888384 IPs),生成chnroute_merged.txt(335888384 IPs)
3、将所有/12及以上改成/11,并合并,生成11_143.txt(717225984 IPs)
4、生成不含保留IP的cn-no-route.txt(717160192 IPs)
剔除11_143.txt中保留IP:192.168.0.0/16、203.0.113.0/24
5、添加保留IP并合并,生成cn-no-route2.txt(1309869056 IPs)
1、ocserv需要修改src/vpn.h来支持超过96行(ocserv默认值)但不超过200行(Cisco AnyConnect最大值)的路由表:
- 0.10.8 及之前版本
#define MAX_CONFIG_ENTRIES 96
- 0.10.9 及之后版本
#define DEFAULT_CONFIG_ENTRIES 96
96改为200以上
2、根据Cisco官方文档,no-route和route不能同时使用。
You can specify either split-include or split-exclude, but you cannot specify both options.
为什么选择将所有/12及以上改成/11,而不是将所有/13及以上改成/12或将所有/11及以上改成/10?
- 若將所有/13及以上改成/12,則不含保留IP的路由表是261條(580911104 IPs),超過了客戶端限制的最高200條。
- 若將所有/12及以上改成/11,則不含保留IP的路由表是143條(713031680 IPs)。
- 若將所有/11及以上改成/10,則不含保留IP的路由表是69條(847249408 IPs),IP範圍進一步擴大,誤差進一步擴大。
保留IP (592708864 IPs)
- 0.0.0.0/8
- 10.0.0.0/8
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 192.168.0.0/16
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- 255.255.255.255/32