A network without walls?

144 views
Skip to first unread message

Bojie Li

unread,
Jul 22, 2013, 2:08:07 PM7/22/13
to ustc...@googlegroups.com
我们生活的环境里,有NAT,有防火墙(外面访问不进学校,学校没有网络通又出不去),有GFW……如果有一个“代理网络”,网络中的所有节点都是代理服务器,只要有一个节点能访问目标IP,其他节点就基本都能访问目标IP。

具体来说,可以在 10.0.0.0/24 上搭建这样一个网络,每个参与者运行一个守护进程并连接到中心 tracker,分配一个固定IP。首次连接任一个公网或局域网IP时,如果直接连接不成功,就通过 tracker 让参与者都去尝试,如果有的参与者能访问,就跟它UDP打洞(列表里讨论过UDP打洞的事)建立隧道,然后就跟 OpenVPN 的原理差不多了。

当然具体实现起来挺复杂的,请求洪泛的效率问题也要解决。不过我感觉挺实用的,例如我、LUG某服务器、国外VPS三个节点组成一个这种网络,不需要手动写路由规则就既能访问实验室的机器,又能翻墙,而且访问不用翻墙的网站不用绕到国外去。我是在读 Data Center Networking 的论文时产生的这个想法,不知道是否靠谱。

最重要的是,这样的网络是否已经实现了?

Zhang Cheng

unread,
Jul 22, 2013, 2:16:59 PM7/22/13
to USTC LUG
我对tor不了解,但是感觉tor跟这个很像。

从技术上说,我感觉对于一般的防火墙应该是可行的,但是对于GFW这种具有某种程度认知能力的防火墙,你的这个自动代理的方法可能就很难实现了。

GFW并非彻底截断通信两端的之间的联网,而是截断部分数据。截断方式有很多,timeout、reset、伪造目标返回等。截断的内容也没有规律可循,并非截断所有的tcp或者udp,而是根据内容进行截断。甚至有人发现,对于加密流量(如ssh代理),只要GFW认为这流量不是重要的(如在华海外企业、重要的商务应用流量等),就会当流量大到一定程度时进行截断。因此,你的方法中,你就难以判定国内的节点A和国外的节点B是否联通,是否需要代理C,甚至你也无法自动的选出能够稳定与B相连的代理C。


2013/7/23 Bojie Li <boj...@gmail.com>

--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
 
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Cheng,
Best Regards

Guo, Jiahua

unread,
Jul 22, 2013, 2:17:41 PM7/22/13
to ustc...@googlegroups.com

不手写路由规则,通过什么方式确定路线?两个网络都有192.168.0.1怎么处理?要么确定一个数据包走国内还是国外?

打洞毕竟麻烦,我觉得如果可以,虚拟出一个网络设备比打洞方便。现在linux不是支持vxnet么?

--

Guo, Jiahua

unread,
Jul 22, 2013, 2:18:57 PM7/22/13
to ustc...@googlegroups.com

说错了,不是vxnet,是vxlan。

Bojie Li

unread,
Jul 22, 2013, 9:51:46 PM7/22/13
to USTC_LUG
2013/7/23 Zhang Cheng <steph...@gmail.com>:
> 我对tor不了解,但是感觉tor跟这个很像。
>
我只用过几次 Tor,感觉很慢。Tor 主要是用来匿名吧,效率并不高。Tor 需要 node 之间可以直接连通(也就是不能在NAT后面)。

> 从技术上说,我感觉对于一般的防火墙应该是可行的,但是对于GFW这种具有某种程度认知能力的防火墙,你的这个自动代理的方法可能就很难实现了。
>
> GFW并非彻底截断通信两端的之间的联网,而是截断部分数据。截断方式有很多,timeout、reset、伪造目标返回等。截断的内容也没有规律可循,并非截断所有的tcp或者udp,而是根据内容进行截断。甚至有人发现,对于加密流量(如ssh代理),只要GFW认为这流量不是重要的(如在华海外企业、重要的商务应用流量等),就会当流量大到一定程度时进行截断。因此,你的方法中,你就难以判定国内的节点A和国外的节点B是否联通,是否需要代理C,甚至你也无法自动的选出能够稳定与B相连的代理C。
>
关于这个问题以及 Guo, Jiahua 说的两个网络都有 192.168.0.1
的问题,我设想网络的参与者可以在配置文件里指定一些“自己负责”的IP或子网,tracker 遇到这些目标IP就会“路由”给这个参与者。

最初本来是设想一个大的、公开的网络(10.0.0.0/8),不过局域网IP冲突、查询洪泛问题并不容易解决,而且用户一般也不希望把自己的家庭或企业网络暴露在
Internet 上。因此改成了 10.0.0.0/24,也就是类似一个 private vlan。

Bojie Li

unread,
Jul 22, 2013, 10:24:52 PM7/22/13
to USTC_LUG
2013/7/23 Guo, Jiahua <gjh...@gmail.com>:
> 打洞毕竟麻烦,我觉得如果可以,虚拟出一个网络设备比打洞方便。现在linux不是支持vxnet么?
>
打洞是让两个本来不能直接互通的节点之间建立连接的方式啊。虚拟出一个网络设备,归根结底两个节点还是要通信啊。VXLAN 是把多个 VLAN 虚拟成一个 VLAN 的技术吧,它需要 VLAN 的边界设备 VTAP 之间有直接的连通性。

其实不用UDP打洞也能实现,所有参与者都 OpenVPN 到公网上的中心 tracker 上,这些参与者就到同一个VLAN里了。每个参与者都认为是一个 border gateway,运行OSPF协议。这是一个用 out-of-the-box 软件可以快速实现的方案。只是这样所有的流量都要从 tracker 走,tracker 会成为网络的瓶颈,也会增加不必要的延迟。

如果能够在一些参与者之间建立连接,不论是直接连接还是通过UDP打洞,就相当于网络拓扑图中增加了一些边,OSPF协议仍然能正常工作,网络效率当然就提高了。

Bojie Li

unread,
Jul 22, 2013, 10:31:05 PM7/22/13
to USTC_LUG
2013/7/23 Bojie Li <boj...@gmail.com>
其实不用UDP打洞也能实现,所有参与者都 OpenVPN 到公网上的中心 tracker 上,这些参与者就到同一个VLAN里了。每个参与者都认为是一个 border gateway,运行OSPF协议。这是一个用 out-of-the-box 软件可以快速实现的方案。只是这样所有的流量都要从 tracker 走,tracker 会成为网络的瓶颈,也会增加不必要的延迟。

如果能够在一些参与者之间建立连接,不论是直接连接还是通过UDP打洞,就相当于网络拓扑图中增加了一些边,OSPF协议仍然能正常工作,网络效率当然就提高了。

更正一下,如果以后希望在参与者间直接建立连接,OpenVPN 连过来的参与者们不应该在同一个VLAN里,每个参与者应该是只跟 tracker 连通,形成星形的网络拓扑。这样在参与者间增加直接连接后,OSPF才能正常工作。

Qijiang Fan

unread,
Jul 28, 2013, 12:25:03 PM7/28/13
to ustc...@googlegroups.com
tuna有similar的東西
一個p2p的vpn,connect到任意一個結點,就到整個網絡。
不過,還不會智能找到能夠連接的出口地址,需要手動選擇代理服務器(或者用規則)。
也不會自動打洞,connect的時候一般同時connect到幾個結點就好了(來減少不必要的中轉)
http://tinc-vpn.org/
> --
> -- 来自USTC LUG
> 请使用gmail订阅,不要灌水。
> 更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "USTC_LUG" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ustc_lug+u...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



--
Qijiang Fan
fqj...@gmail.com
Room 802, Ho Sin Hang Engineering Building
The Chinese University of Hong Kong
Shatin, N.T., Hong Kong
PGP KEY ID: 50E46156

Bojie Li

unread,
Jul 28, 2013, 8:50:40 PM7/28/13
to ustc...@googlegroups.com
tinc vpn 的官网上说支持 mesh routing?这是不是仅限于安装了 daemon 的节点,而不管所连到的其他网络?

Qijiang Fan

unread,
Aug 15, 2013, 4:20:26 AM8/15/13
to ustc...@googlegroups.com
>tinc vpn 的官网上说支持 mesh routing?
支持。自動full mesh(如果能打穿的話)


>而不管所连到的其他网络?
什麼意思?

Bojie Li

unread,
Aug 15, 2013, 4:24:46 AM8/15/13
to USTC_LUG
2013/8/15 Qijiang Fan <fqj...@gmail.com>
>tinc vpn 的官网上说支持 mesh routing?
支持。自動full mesh(如果能打穿的話)

>而不管所连到的其他网络?
什麼意思?

就是 full mesh 是否只能连接到运行着 tinc vpn 的节点,而不能用来 proxy 到没有运行 tinc vpn 的主机? 

Qijiang Fan

unread,
Aug 15, 2013, 4:31:22 AM8/15/13
to ustc...@googlegroups.com
在 2013年8月15日下午4:24,Bojie Li <boj...@gmail.com> 写道:
> 就是 full mesh 是否只能连接到运行着 tinc vpn 的节点,而不能用来 proxy 到没有运行 tinc vpn 的主机?


應該不能吧。爲什麼會有這個奇怪的需求?

Bojie Li

unread,
Aug 15, 2013, 4:43:22 AM8/15/13
to USTC_LUG

在广域网中,两个主机之间有很多条线路可达,要选距离最短的路,或者服从某些policy,这就是OSPF之类协议要做的事。现在就想让装了vpn客户端的机器成为OSPF路由器,比如我直接访问google比较慢,我访问你和你访问google都很快,你就可以作为我的proxy啊。当然这只是个初步想法,OSPF要目标网络合作的,google显然不会跟我们两个合作,因此不能把OSPF之类的照搬过来。

Qijiang Fan

unread,
Aug 15, 2013, 5:38:48 AM8/15/13
to ustc...@googlegroups.com
tinc-vpn客戶端還是tincd的daemon啊。爲什麼會牽扯到沒裝daemon的機器?

Bojie Li

unread,
Aug 15, 2013, 5:46:27 AM8/15/13
to USTC_LUG

我只是提了个想法,用一些安装了vpn client(未必是tinc)的机器做网络加速。

Qijiang Fan

unread,
Aug 15, 2013, 8:09:55 AM8/15/13
to ustc...@googlegroups.com

在怎麼大家要用一樣的vpn啊。tinc已經自帶mesh了,下一步就是搞定分發路由表就好了。

Bojie Li

unread,
Aug 17, 2013, 3:28:52 AM8/17/13
to USTC_LUG

想做这种实验也找不到主机啊。经常看到网络测量的论文里动辄上百个分布在各大ISP的节点,那些大学上哪里找的?

Qijiang Fan

unread,
Aug 17, 2013, 11:04:26 PM8/17/13
to ustc...@googlegroups.com
沒做過實驗,只是把tinc拿來用。
不過要做實驗的話,資源見 planet-lab.org
ustc是肯定參與了的,不過不知道在哪裏搞帳號

Bojie Li

unread,
Aug 18, 2013, 2:10:34 AM8/18/13
to USTC_LUG

看起来不错啊,不过能运行任意脚本吗?

国内好多大学都参与了啊:北大 北航 清华 桂林电子科大 北京科大 浙大 西安交大 电子科大 中国科大

Qijiang Fan

unread,
Aug 18, 2013, 2:13:30 AM8/18/13
to ustc...@googlegroups.com
在 2013年8月18日下午2:10,Bojie Li <boj...@gmail.com> 写道:
> 看起来不错啊,不过能运行任意脚本吗?


似乎是可以的
但是帳號似乎要找自己學校管理員審覈

Bojie Li

unread,
Aug 18, 2013, 2:25:13 AM8/18/13
to USTC_LUG

你们学校的节点是归某实验室管,还是网络中心管?

Qijiang Fan

unread,
Aug 18, 2013, 2:54:49 AM8/18/13
to ustc...@googlegroups.com
不知道。

2013/8/18 Bojie Li <boj...@gmail.com>:

Bojie Li

unread,
Aug 18, 2013, 4:12:33 AM8/18/13
to USTC_LUG
刚申请了一个账号,我们学校是高性能中心的田野老师在管,正等他审核。

Qijiang Fan

unread,
Aug 18, 2013, 3:11:16 PM8/18/13
to ustc...@googlegroups.com

在哪裡查到管理員的?

Bojie Li

unread,
Aug 18, 2013, 3:13:25 PM8/18/13
to USTC_LUG

注册之后就收到 planet-lab 的邮件,CC给了 yetian at ustc.edu.cn,然后我就猜到了~

Qijiang Fan

unread,
Aug 19, 2013, 2:49:04 AM8/19/13
to ustc...@googlegroups.com
這。。就沒有網頁可以查麼。。。
Reply all
Reply to author
Forward
0 new messages