Download presentation
Presentation is loading. Please wait.
Published byLiana Pranoto Modified 5年之前
1
张焕杰 james@ustc.edu.cn Tel: 3601897(O)
Linux作为校园网出口的优化 张焕杰 Tel: (O)
2
计算机网络安全基础 2019年2月23日 主要内容 功能要求 系统优化 计算机网络安全基础
3
功能要求 区分国内国外地址 策略路由 利用netfilter/iptables实现 校内IP分3种权限:校内、国内、国际
利用ip rule 实现 服务器要永远走教育网出去 用户的IP根据情况选择 科大有7种选择
4
Iptables的性能优化 校内IP的状态 避免针对每个IP增加iptables的条目,因为这样做iptables规则很多,性能非常低
可以考虑使用ippool或后续的ipset,他们的优点都是利用单独的数据结构存放一个IP的状态(属于一个pool或set,可以认为对应0和1) 使用ippool或ipset后,一条iptables规则就可以起到原来iptables几千条规则的作用,避免了iptables顺序查找的低效率,执行速度能快几百倍
5
建议的做法 建立类型为nethash的cernetfree ipset
建立类型为ipmap的cernetip ipset,并缺省绑定cernetfree Cernetfree中加入免费地址列表 如果为出校IP,增加到cernetip既可以 如果为出国IP,增加到cernetip,并解除与cernetfree的缺省绑定
6
科大的优化 科大用的是自己写的,每个IP在内存中有1个字节用来存放IP的权限(0-255)
有一个数据结构用来存放网络的权限(0-255),目前仅仅存放教育网免费地址列表,权限都是50 增加了一个iptables规则处理: 如果校内IP的权限>=对方网络的权限,允许转发数据包
7
科大的优化(2) /proc/iprightmap/netright
/proc/iprightmap/ _
8
Ip rule 系统优化 性能问题 路由时,顺序查找路由规则表
如果表的项目太多(现在有3000个用户在线,有3000条规则,平均一次要查1500项才会找到),效率不高 因此需要优化,用其他方式替换顺序查找
9
使用ipset的优化 建立若干个ipset,对应不同的路由方式 在mangle表中,对不同的ipset设置不同的fwmark
Ip rule 根据fwmark进行路由选择
10
科大的优化策略 由于决定使用哪个路由表的关键词是源地址,而校内的源地址有限(即使256个C也就是64KB个)
因此可以用一个或多个数组来存放这些信息 数组的大小为校内IP的个数,内容为该IP使用哪个路由表
11
数据结构 长度 256*32 100 101 102 …. 长度 256*16 100 101 102 …. 长度 256*16 100 101 102 …. 一个数组存放校内的IP段信息 每段有个数组存放该段的策略信息 修改路由时查找规则表的处理过程,利用以上结构来查
12
实际的控制 为了方便,kernel和应用程序采用/proc文件系统通信,文件/proc/iprule/control为控制文件
写 A 到control增加一段内部地址 增加地址后/proc/iprule下会增加2个文件 _ 和 B _ 读这两个文件可以得到某个IP的策略信息 前面一个是ASCII的 后面一个是binary的,偏移量0的字节就是 的策略
13
实际的控制 写 C XXX 202 38 64 1到control修改策略,xxx为路由表 如
echo “C ” > control 设定 使用路由表101
14
使用情况 P4 2.4G的CPU 进出通信达到850Mbps,每秒处理16万个数据包 CPU利用率接近100%
15
其他优化 更高性能可以通过以下途径获得 多台负载分担 结构调整 两台并行,可以提高一倍的性能
如用3角路由,从NAT设备进入校园网校园网的数据包直通(这部分不需要权限检查) 从校内发出到CERNET的数据包直接出去
16
网络通原理 教育网出口 电信出口NAT Switch 网通出口NAT 校内网络
17
优化后使用情况 2台 Xeon 2.4G的CPU 单台 进出通信达到450Mbps 每秒处理7万个数据包 CPU利用率接近70%
18
谢谢
Similar presentations