anywhere任我行——新一代的互联网辅助连接框
网络空间安全学院
A new generation of Internet-assisted connection boxes
在目前日渐复杂的网络环境与ipv4资源马上枯竭的现状,快捷的组网与组织内无障碍直连功能实现起来越来越困难,通常会有各种原因使得两个主机间无法互相传输数据,比如说防火墙的错误配置,也比如说是路由器过滤严格而无法进行特定端口通信。
举个例子,在学习生活中我们经常会在自己的电脑上开启一个web服务器,远在别的学校的老师或近在同校不同宿舍的同学都无法访问,这就很令人困扰因为你几乎什么都做不了,只能自己孤独的测试。有些两个设备间通信的调试就必须相互连接端口,此时如果没有这套框架,或者说这套软件可能就只好去组服务器测试了。
因此,为了方便组网与简化网络环境,让工程师更方便的调试,让学生免受网络阻塞、排查网络问题的困扰,我们打算开发出一个network框架,运用内网穿透,upnp等技术,来让使用框架的设备进入到组织中,使得组织内的设备能够自由(当然也是自愿的)的相互连接。
并且,我们预想每个连入的设备,即每个节点都可以是数据的输入口,也都可以是数据的输出口,所有的节点虽然是树状或图状连接,但是所有的节点在网络层上都是平等的,平级的,这样方便后续组织的维护与管理。
这个组织中,所有的数据可以按跳传输,即进入到这个组织的设备可以生成相应的组织路由表,来引导数据流的传输。这样就可以混淆或加密每一跳的传输内容,即只有在组织内部的节点才可能知道这个信息流是什么,任何其他在节点与节点之间的“第三者”是无法看懂里面的信息的。
至于部署,因为该框架是基于网络层而不是传输层,没有对网络设备驱动的要求,这样就大大减少了linux主机上搭建组织的难度。并且,如果和传输层的子网搭建程序(比如说openvpn)相比,配置会更加简单易懂并有很高的组合性(这是我们选择的编程语言的特性)。Openvpn在连接的时候要么只会把全部数据转发到vpnserver,要么做桥接经常会出各种各样的问题,然而我们的框架就没有这么多的配置问题。
额外的,我们想要使这个框架变得可定制化,也就类似于插件系统。我们留出各个位置的接口(比如说信息流输入,处理信息流,路由器分路,数据包封装,信息流输出),让各位爱好diy的极客能够自己发挥创造力。因为只要在组织内的双方达成共识,那么这双方就可以自己定制信息的加解密方式或者其他形式,通信依旧正常进行,不会干扰到组织内的其他用户。