ROS 标记中的 mark-connection 和 mark-packet 区别

标签: none

关于使用mark-connection和mark-packet还有一些疑问,mark-connection和mark-packet有什么区别,为什么要用mark-connection?下面是个人的一些理解:

1.标记 mark-connectionmark-packet 主要区别:

mark-connection  应用到同一连接中的所有数据包,容易识别上传、下载数据包;
mark-packet  仅标记单一数据包,识别上传、下载需双向标记所有数据包。

2.标记 mark-connectionmark-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区别


扫描二维码,在手机上阅读!

添加新评论