关于使用mark-connection和mark-packet还有一些疑问,mark-connection和mark-packet有什么区别,为什么要用mark-connection?下面是个人的一些理解:
1.标记 mark-connection 和 mark-packet 主要区别:
mark-connection 应用到同一连接中的所有数据包,容易识别上传、下载数据包; mark-packet 仅标记单一数据包,识别上传、下载需双向标记所有数据包。
2.标记 mark-connection 和 mark-packet 性能分析,数据包标记 mark-packet 示例:
/ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=HTTP protocol=tcp dst-port=80 in-interface=bridge-local add chain=prerouting action=mark-packet new-packet-mark=HTTP protocol=tcp dst-port=80 in-interface=pppoe-out1 #这样 Mangle 对经过的每个数据包都要进行 mark-packet,数据包是否TCP协议?目标端口是否80?进入网络端口是?
连接标记 mark-connection 示例:
add chain=prerouting action=mark-connection new-connection-mark=HTTP protocol=tcp dst-port=80 in-interface=bridge-local add chain=prerouting action=mark-packet new-packet-mark=HTTP in-interface=bridge-local connection-mark=HTTP #这样在 Mangle 链只需进行以下判断,是否新连接?是否有连接标记?
3.在QOS中使用 mark-connection 还是 mark-packet ?
使用队列限速要时上传、下载要分开,所以只能识别 mark-packet; 标记单向数据包使用 mark-packet,如小数据包、TCP标志(SYN)优先之类的; 标记双向数据包 mark-packet 和 mark-connection 都可实现,通过上面例子使用 mark-connection 更优。
4.在多线带宽叠加和策略路由时要先标记数据再标记路由,这个时候就要用 mark-connection 了,因为同一连接不同数据包最好从同一出口发出。
ip firewall mangle add chain=prerouting action=mark-connection new-connection-mark=pppoe_out1_conn protocol=tcp dst-port=80 connection-state=new ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=to_pppoe_out1 connection-mark=pppoe_out1_conn #实际使用 ip firewall mangle add chain=prerouting action=mark-connection in-interface=WAN-1000M-CU-vrrp4-pppoe new-connection-mark=WAN-1000M-CU-vrrp4-pppoe_conn passthrough=yes comment=WAN-1000M-CU-vrrp4-pppoe ip firewall mangle add chain=prerouting action=mark-routing in-interface=LAN1 new-routing-mark=to_WAN-1000M-CU-vrrp4-pppoe connection-mark=WAN-1000M-CU-vrrp4-pppoe_conn passthrough=yes
ROS标记中的mark-connection和mark-packet区别