- 论坛徽章:
- 0
|
现在有一个场景:
=========================
windows client A需要连接目标服务器D,但是现在A和D之间有时候很慢(国内的网络环境),掉包也比较高。
所以,现在打算选几个好的点,双线机房,架设服务器S1,S2,S3,S4,S5,原先的路由:
A------》D
路由转为:
A-----》S1(或S2,S3...)----》D 只一台服务器中转
或 A -----》S1-----》S2...Sx...---》D 有很多服务器参与中转
即相当于建一个专门的包转发网络。
交互过程
=========================
现在设想A-和服务器S1交互过程是:
1 A发起和S1的TCP连接,连接后第一个TCP包包含认证信息和真实的目的地址信息D(host:port)
1.1 如果认证通过,转2
1.2 认证失败,断开连接
2 认证通过
2.1 在服务器S1上查自定义的路由表。看到达目的地D是应该直接转发包到D呢,还是应该通过其它服务器节点继续转发
2.1.1 直接转发。则服务器S1和D建立TCP连接
A随后发到S1的所有包直接通过S1转发到D
2.1.2 需要中转。则服务器S1使用同样的认证信息和目的地址信息连接中转服务器S2
S2的处理过程类式S1
要求:
=========================
包转发的速度尽量快,所以想把包转发层次尽量降低,不到应用层
问题:
=========================
因为对内核不熟悉,所以咨询一下:
1,上面的场景用netfilter模块做合适不?
2,有什么特别需要注意的地方
谢谢。 |
|