资源描述
PCC原理pcc从一定范围内分析选择ip数据包头,通过哈西散列算法的帮助下,将选定的区域转换为32bit值。这个值除以指定Denominator分母),余数将比较一个指定的余数(Remainder),如果相等这时数据包将会被捕获,你可以选择src-address,dst-address,src-port,dst-port等使用此操作。per-connection-classifier=perconnectionclassifier:=!ValuesToHash:Denominator/RemainderRemainder:=0.4294967295(integernumber)Denominator:=1.4294967295(integernumber)ValuesToHash:=src-address|dst-address|src-port|dst-port,ValuesToHash*per-connection-classifier分类器,通过判断源地址、目标地址、源端口和目标端口,对数据进行分类,如事例:这个配置将所有连接基于源地址和端口分类的3个组:/ipfirewallmangleaddchain=preroutingaction=mark-connectionnew-connection-mark=1st_connper-connection-classifier=both-addresses:3/0/ipfirewallmangleaddchain=preroutingaction=mark-connectionnew-connection-mark=2nd_connper-connection-classifier=both-addresses:3/1/ipfirewallmangleaddchain=preroutingaction=mark-connectionnew-connection-mark=3rd_connper-connection-classifier=both-addresses:3/2per-connection-classifier=both-addresses:3/0,这条规则的含义为我们对原地址的端口进行分类,3/0为一共有3条出口,定义第一条,3/1则是第二条,以此类推。VN-注意:PCC从RouterOSv3.24开始支持,这个功能解决了多网关的负载均衡问题。PCC的负载均衡事例一、双向地址负载均衡通分组源地址和源端口实现负载平衡,这里我们建立2个WAN出口分别是wanl和wan2,网络环境如下: ISP1地址10.200.15.99/24,网关:10.200.15.1; ISP2地址10.200.100.99/24,网关:10.200.100.2; 内网IP地址192.168.100.1/24; 启用DNS缓存功能,用192.168.100.1作内网DNS解析基本配置首先进入ipaddress配置IP地址:在ipdnssetting中配置好DNS缓存,DNS为:61.139.2.69弦IOK45ElDNSFindElDNSSettingsSecondaryDNS:0.0.0.0AllowRemoteRequestsApply51ZCache2048KiBCacheUsed:1.139.2:69PrimaryDNSMangle标记配置接下来我们进入ipfirewallmangle标记连接和路由,我们使用per-connection-classifier双向地址进行分类做连接分类标记。然后选择dst-address-type=!local,即除了目标地址是本地以前的地址:MangleRuleAdv:=LTLCedE盟tzActi皿Statisti匚GerLer:=l1ConnectionLimitfLimit*Dst.LimitNth下面命令是提取走第一条线路的连接标记取名位1st_conn,并从连接里提取路由标记名位*Src.AddressTypeAdiiressTypeAdilfessTypsloc:lHotEpot一IFFraErrierLt注:2条线的分类代码定义是第一条线为2/0,第二条为2/13MangleRule=:Gener:=ilAi1t:=lTli2edExtraActiunStatistice同样选择一下地址类型:MangleRuleAdv:=LTLCedE盟tzActi皿Statisti匚(SreneralConnectionLimitfLimit*Dst.LimitNthspotIP1st_route,设置:per-connection-classifier=both-addresses:2/0,设置in-interface=lan/ipfirewallmangleaddaction=mark-connectionchain=preroutingcomment=disabled=noin-interface=lannew-connection-mark=1st_connpassthrough=yesper-connection-classifier=both-addresses:2/0addaction=mark-routingchain=preroutingcomment=connection-mark=1st_conndisabled=noin-interface=lannew-routing-mark=1st_routepassthrough=yes提取走第二条线路的连接标记取名位2nd_conn,并从连接里提取路由标记名位2nd_route,设置:per-connection-classifier=both-addresses:2/l,设置in-interface=lan:/ipfirewallmangleaddaction=mark-connectionchain=preroutingcomment=disabled=noin-interface=lannew-connection-mark=2nd_connpassthrough=yesper-connection-classifier=both-addresses:2/laddaction=mark-routingchain=preroutingcomment=connection-mark=2nd_conndisabled=noin-interface=lannew-routing-mark=2nd_routepassthrough=yes在winbox在mangle中设置完成后如下:回程路由设置我们需要将从那个口进入就从相应的口回去,即保证每个外网口的数据能得到正确的路由/ipfirewallmangleaddchain=inputin-interface=wanlaction=mark-connectionnew-connection-mark=lst_connaddchain=inputin-interface=wan2action=mark-connectionnew-connection-mark=2nd_connwinbox设置IBFirewall-Filt&rRij1eeBATMangle!Sei_viceForteCuiurLectiunsAdiiresELieLayer?ProtocolE曲0叵7:二Ci:HJTl00ReEetAllCoiJXLinput蒔ActionChain:In.erfaceConiLe匚tionM:fkNewCoriTLection.MarkNewE.outingMs=4.x?m:=Lt_kcurLTLectioninputW:=lTl11st_cijrLTL孑m:=Lt_kcurLnectioninpiitW:=lIl22nd_c:iriTL标记完进入接口的链接后,将这些链接指定到相应的路由标记上:addchain=outputconnection-mark=lst_connaction=mark-routingnew-routing-mark=lst_routeaddchain=outputconnection-mark=2nd_connaction=mark-routingnew-routing-mark=2nd_routewinbox设置路由配置配置完标记后路由后,我们进入iproute配置路由,首先设置负载均衡的标记路由,首先设置第一条线路的路由标记,设置routing-mark=1st_route:EiRoute.reneralAttributesdieabladactivestati设置第二条线路的路由标记,设置routing-mark=2nd_route:配置默认网关和备份网关,默认网关的distance设置为1,并设置check-gateway=ping,通过ping监测网关状态:可1RouteGetlelalAttributesDestinztion:Gzteway:10.200.15.1GatewayInterface:Interface:W:=lIl1Che:kGzteway:;pingsType:iiXLicast+Dist:=ltlce:1Scope:Targe:tScope:10RoutingM:fk:Fref.Soiifce:|dieabledactiveEtzti备份网关的distance设置为2,并设置check-gateway=ping,通过ping监测网关状态:*JIRouteGerLHr:=Ll吐tritutesDesti:n:ELtion:0.0.0.0/0Gateway:10:-200.100.2Gateway工nterface::工nterface:W:=lTl2CheckGate,i*i,ay:ping+Type:1JTL1C:=l5t+DiEt:=LTLce:2-Scope:30T:=LfgetScope:ioRuiitingM:=Lfk:-Fref.Som_ce:-dieabled|activEstati配置完成后的路由标如下图:配置nat最后配置nat转换规则,进入ipfirewallnat中配置action=masquerade,分别对2条线路做伪装:/ipfirewallnataddaction=masqueradechain=srcnatout-interface=wan1addaction=masqueradechain=srcnatout-interface=wan2oIn.0Src.FortDs.3FirewallFilterRulesMangleServiceFortsConnectionzAdiiressLitLayer?Frotucole脚I|m|7392.3KiB6413.0KiE:5srcnat;二ResetCoijtl00ResetAllCoiJXLtere
展开阅读全文