互联网最顶上的连接叫做 peering。例如说电信有电信的网络用户,网通有网通的网络用户,这些用户不仅仅包括个人,也包括企业,例如百度这样的。一个电信的用户要访问一个网通的网站,就要经过电信和网通之间的一座桥,从电信去往网通,这就是 peering。
这个世界上存在很多的运营商和大企业之间的 peering,但它们如何知道整个互联网的拓扑结构呢?举个例子,假设百度同时连着电信和网通,它要去爬网易的页面,怎么知道该从电信还是网通走才能抵达网易呢?如果两条路最后兜兜转转都能抵达网易,哪条路可能更快呢?BGP 协议负责解决这个问题。
互联网由很多个 AS 组成,一个 AS 就是一个内部自治的网络,内部有完整的地图信息知道从任意 A 点到任意 B 点怎么走。但每一个 AS 都没有其它 AS 内部的地图,如果从一个 AS 内的 A 点要去到这个 AS 外的 B 点,就需要利用 BGP 提供的 AS 间信息来确定怎么走。从 A 点所在的 AS 出发,BGP 可以指引你经过一个或多个 AS 最后抵达 B 点所在的 AS。BGP 不需要知道最终如何抵达 B 点,因为 B 点所在的 AS 有自己内部的地图,所以只要到了正确的 AS 内部就一定能去到正确的地方。
要限制某个地区的网络访问,可以无差别的硬件切断跟那个地区所有电信运营商的 peering,可以软件切断 AS 之间连接,甚至可以等通信发生时再看看这连接着哪个 AS 以及需要对这个 AS 做什么针对性过滤。
办法太多了
1、最简单粗暴的方法,限IP。
IP能基本判断用户来源,可以通过IP直接限制某些区域的用户登陆。但很多用户会翻墙,限IP就不起作用。
2、大部分软件会有客户的区域画像。
比如,结合GPS定位,客户经常在哪里使用APP,如果是有线下支付功能的软件就更简单了,客户经常在哪里消费。
通过这些大数据画像,可以精准的分析出客户所在的区域,然后按照区域画像限制用户的ID。
3、一部分跨国公司采用分区运营的模式,让客户主动“自投罗网”。
比如苹果,注册的时候就让你选分区,确定是哪个分区的,就享受哪里的服务和优惠。