首页 > 分享 > ATS旁路透明正向代理(策略路由形式)教程-基础向

ATS旁路透明正向代理(策略路由形式)教程-基础向

2013年11月23日     浏览数:8,050 发表评论 阅读评论

简介:
使用ATS搭配tproxy建立双向透明的正向代理服务器。起到加速园区网内部上网的作用。

对旁路不清楚的请看

Tafficserver旁路接入方案综述

相比其他工作模式的优势:

NAT:虽然对用户来说透明,但是所有外网数据会通过ATS的IP出去。会让园区网的一些基于IP地址段做的策略(主要是应用限制和限速)无法生效。

普通正向代理:除去NAT方式的劣势,还需要用户手动配置代理。

WCCP:非思科设备无法使用

相比其他工作模式的劣势:

镜像:没有镜像配置简单。为了满足高可靠,需要用LVS和ATS Cluster配合。成本颇高

WCCP:没有WCCP简单,WCCP自带健康检查

工作流程和本例中的拓扑图请参考图片。

拓扑图
策略路由流程图

准备工作:

1、3层核心交换机。华为、H3C、思科、锐捷、神州数码均可。只需支持策略路由(华为交换机上叫流策略向traffic-policy)

2、ATS强烈建议直连核心(或该交换机下没有上网用户)

3、ATS服务器上至少配备单口网卡一块。为保证性能,建议配备Broadcom或Intel的网卡

步骤:

和透明代理无关的配置,请参考其他文档。我这里只贴一下有关的。

1、ATS的records.config

CONFIG proxy.config.reverse_proxy.enabled INT 0 
CONFIG proxy.config.url_remap.remap_required INT 0
CONFIG proxy.config.http.server_ports STRING 80:ipv4:tr-full, 8080

80端口工作在透明模式,8080工作在普通正向代理模式(需要浏览器设置)可以用来测试代理是否工作正常。

2、建立ATS机器内策略路由和转发策略

 ip rule add fwmark 1/1 table 1
 ip route add local 0.0.0.0/0 dev lo table 1

 iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j TPROXY --on-ip 0.0.0.0 --on-port 8080 --tproxy-mark 1/1

 iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --sport 80 -j MARK --set-mark 1/1

3、核心交换机上建立策略路由

我以华为9700交换机做例子。这个机器上的策略路由叫做流重定向。和思科/锐捷有相当大的不同。

建立ACL3001,匹配源地址为用户,目的端口为80的ACL

acl number 3001

rule 5 permit tcp source 192.168.36.0 0.0.3.255 destination-port eq www

traffic classifier user-to-internet operator or precedence 20

if-match acl 3001

建立traffic behavior(流行为)to_ats

traffic behavior to_ats
permit
redirect ip-nexthop 192.168.0.165

建立traffic policy(流策略)user-to-ats,引用流分类和流行为

traffic policy user-to-ats
classifier  user-to-internet behavior to_ats01

在交换机1口引用策略

traffic-policy user-to-ats inbound

至此用户-〉外网方向的策略已经配置完毕

接下来配置外网-〉用户方向

建立traffic classifier(流分类)user-to-internet

traffic classifier internet-to-user operator or precedence 25

if-match acl 3011

建立traffic policy(流策略)user-to-ats,引用流分类和流行为

traffic policy internet-to-ats
classifier  internet-to-user behavior to_ats01

在交换机3口引用策略

traffic-policy internet-to-ats inbound

到此,全部配置完成。大家可以试一下,用浏览器打开ip138.com。应该是会看到你内网的IP。因为ATS默认会加上X-Forwarder-For

给大家提醒几个有地雷的地方:

1、看top,如果CPU0占用率很高,其他很空。你可能遭遇网卡中断问题了。检查自己网卡的多队列是否开启

通过smp_affinity将每个队列分配到不同的核心上,分摊占用率

2、sysctl.conf里关于tcp的参数要做优化。可以参照nginx,httpd之类web服务器的。

3、目前我用的版本,ATS4.0.2。对非http数据建立透传通道似乎有Bug,开启以后会崩溃。

勇士可以这么设
 CONFIG proxy.config.http.server_ports STRING 80:ipv4:tr-full:tr-pass, 8080

 proxy.config.http.use_client_target_addr设0

4、建议在ATS服务器上自己搭建DNS缓存服务器。named默认有每客户最大访问限制。

目前我实际用下来,整天平均带宽命中率在30%。

繁忙时间为上午7点半至下午5点半,其余时间流量小于10Mbps。

平均在线1000人,峰值2000人。

关于206:我不让ATS白天自己拖206,副作用太大。我写了脚本每天晚上10点去分析当天的日志,用curl去下载206的链接。

特别感谢群里各位给我的帮助,尤其是@纸鸢

欢迎大家回帖讨论

分类: 分享 标签:
  1. 范可由
    2013年11月23日22:03 | #1

    这么高端大气上档次,我还是直接在路由里边设置转发

  2. Cheer
    2014年3月6日09:29 | #2

    请问下H3C的服务器核心交换机上如何建立策略路由

  3. young
    2015年2月5日21:30 | #3

    您好,请教下您的代理,lvs和ats cluster是怎么配合使用的?

  4. echowing
    2016年8月18日16:59 | #4

    请问Cisco 三层交换机如何配置呢?

  1. 本文目前尚无任何 trackbacks 和 pingbacks.