CISCO – 主机头部转发可能吗?

是否有可能在思科ios中实现一种基于策略的路由,根据主机头信息(http地址)将外部IP上的80端口请求转发给内部主机。

因此,如果有人访问http://server1.com (外部IP),它将请求转发给internal_ip1,如果是http://server2.com,则将请求转发给internal_ip2

我很清楚,这涉及到分析HTTP数据(应用程序级别),并且可以使用ISA Server或Varnish代理来完成这种情况。

但是有可能在思科上做这样的伎俩吗?

所以如果有人访问http://server1.com (外部IP),它将请求转发给internal_ip1,如果是http://server2.com,则将请求转发给internal_ip2

我很清楚,这涉及到分析HTTP数据(应用程序级别),并且可以使用ISA Server或Varnish代理来完成这种情况。

但是有可能在思科上做这样的伎俩吗?

是的,但是你将不得不在有趣的HTTPstream量中重新标记DSCP位。 我下面的解决scheme使用NBAR(基于networking的应用程序识别)来对感兴趣的stream量上的DSCP比特进行标记,并且基于策略路由(PBR)基于上述标记进行路由。

要求:

  • 路由器必须支持nbar ; 通常这是基于CPU的路由器,例如Cisco 1800/1900系列。 Cisco ASR也支持NBAR
  • 路由器必须支持基于策略的路由
  • 您不能在networking的任何其他地方使用DSCP AF12或AF13。

configuration:

class-map match-all CLASSIFY_HTTP_01 match protocol http host *server1.com* class-map match-all CLASSIFY_HTTP_02 match protocol http host *server2.com* ! policy-map REMARK_HTTP class CLASSIFY_HTTP_01 set dscp af12 class CLASSIFY_HTTP_02 set dscp af13 ! ip access-list extended AF12 permit ip any any dscp af12 ! ip access-list extended AF13 permit ip any any dscp af13 ! route-map PBR permit 10 match ip address AF12 ! This is a next-hop leading to internal_ip1 set ip next-hop 192.0.2.129 match ip address AF13 ! This is a next-hop leading to internal_ip2 set ip next-hop 192.0.2.130 ! interface FastEthernet0/1 description [All HTTP ingress to this interface] ip address 192.0.2.2 255.255.255.252 ip policy route-map PBR service-policy input REMARK_HTTP 

所有这一切说,很多时候你使用一个真正的HTTP负载平衡器如F5这样的事情更好。 你可以强制路由器来做,但有点不自然。

解决scheme只能部分解决问题,因为我没有提到我们使用NAT。

因此,NBAR通过外部接口上的服务策略检查所有入站数据包,并为其分配DSCP位。

现在,问题是让这些数据包NAT翻译为内部ips。 示意图我需要这样的东西:

 nat inside source static tcp <internal_ip_1> 80 interface <outside_interface> 80 <if dscp bits = af13> nat inside source static tcp <internal_ip_2> 80 interface <outside_interface> 80 <if dscp bits = af12> 

除了原来的答案和克服NAT问题,您应该能够使用以下行代替服务策略到内部接口:

 interface FastEthernet0/1 description Inside Interface ip address 192.0.2.2 255.255.255.252 ip nat inside ip policy route-map PBR service-policy output REMARK_HTTP 

我目前还没有testing这个function,但是由于networking地址转换已经被处理了,我想这应该可以正常工作。

对不起挖掘一个旧的post,但我有兴趣做同样的原始海报,并认为我会增加这个为他人的利益。