1.关于Iptables链PREROUTING和POSTROUTING:
#https://www.haiyun.me
PREROUTING在包进入防火墙之后,DNAT之前
POSTROUTING是在DNAT后,SNAT之前
2.在哪里标记,怎么标记上传和下载。
PREROUTING可以根据进入端口为内网或外网标记上传和下载,或根据源地址为本地、非本地标记上传、下载;
POSTROUTING可以根据发出端口、源地址标记上传;
FORWARD可以根据进入端口为内网或外网标记上传和下载,或根据源地址、目标地址都可以。
3.在哪里进行流量整形:
3.1.使用lan和wan:
lan可根据目标地址进行下载限制,正常识别。
wan根据源地址进行上传限制,在SNAT后,源地址已改变,不能正常限制流量。
3.2.使用虚拟接口,ROS使用global in和global-out,Iptables使用IMQ。
global-in在PREROUTING、DNAT后,可按目标地址限制下载
global-out在POSTROUTING后,SNAT前,可按源地址限制上传。
4.使用TC限制特定IP下载、上传的问题:
4.1.限制上传使用MARK标记:
iptables -t mangle -I POSTROUTING -s 192.168.1.16 -j MARK --set-mark 27
4.2.限制下载使用U32标记:
tc filter add dev imq1 parent 1:0 protocol ip prio 4 u32 match ip dst 192.168.1.16 flowid 1:24
5.标记mark-connection和mark-packet区别?
关于Iptables/ROS进行流控的一些理解,如有误请更正。