CISCO-主机头转发可以吗?

CISCO-主机头转发可以吗?

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

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

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

但在思科上能做到这样的技巧吗?

答案1

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

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

但在思科上能做到这样的技巧吗?

是的,但您必须在感兴趣的 HTTP 流量中重新标记 DSCP 位。下面我的解决方案使用 NBAR(基于网络的应用程序识别)在感兴趣的流量上重新标记 DSCP 位,并使用 PBR(基于策略的路由)根据上述标记进行路由。

要求:

  • 路由器必须支持恩巴;通常这是基于 CPU 的路由器,例如 Cisco 1800/1900 系列。Cisco ASR 还支持 NBAR
  • 路由器必须支持基于策略的路由
  • 你不能使用数据保护协议AF12,或网络中任何其他地方的 AF13。

配置:

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)来处理这种情况会更好。您可以强制路由器执行此操作,但这有点不自然。

答案2

该解决方案仅部分解决了问题,因为我没有提到我们使用 NAT。

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

现在,问题是让这些数据包通过 NAT 转换为内部 IP。从原理上讲,我需要类似这样的内容:

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>

答案3

除了原始答案之外,为了解决 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

我目前还无法测试这一点,但由于网络地址转换已经处理完毕,我想这应该可以正常工作。

抱歉挖出了旧帖子,但我有兴趣做与原始发帖人相同的事情,并想添加此内容以造福其他人。

相关内容