Print

SR88 nat不生效

刚刚 发表

组网及说明


物理接口配置nat outbound无法生效

问题描述

测试终端255.100访问服务器20.18.1.1,在路由器接口1/2/1/12进行nat outbound转换访问不通

过程分析

1、首先确认流量是否上到路由器,在路由器上看nat会话均没有生成,确认nat是否下发生效,在源接口做镜像抓包看,报文是到达路由器的

<H3C>display nat all

NAT outbound information:

  Totally 1 NAT outbound rules.

  Interface: GigabitEthernet1/2/1/12

    ACL: 3000         Address group: ---    Port-preserved: N

    NO-PAT: N         Reversible: N

    Service card : chassis 1 slot 2

    Config status: Active  //nat状态激活


<H3C>display nat session  //设备上未生成nat会话表项

Slot 0 in chassis 1:

Total sessions found: 0

 

Slot 1 in chassis 1:

Total sessions found: 0

 

Slot 2 in chassis 1:

Total sessions found: 0

 

Slot 3 in chassis 1:

Total sessions found: 0

但是抓包看流量也上到路由器



2、检查设备配置是否有误,是否有到对应网段的路由

interface GigabitEthernet1/2/1/12

 port link-mode route

 description CONNECT_TO_JiangSuSheng_WJW

 ip address 30.96.104.2 255.255.255.252

 nat outbound 3000

 nat service chassis 1 slot 2  //设备配置正常,ACL包含对应网段,并且指定了nat流量业务处理板卡

[H3C-GigabitEthernet1/2/1/12]display acl all

Advanced IPv4 ACL 3000, 4 rules,

ShengZhuanWang

ACL's step is 5

 rule 10 permit ip source 172.18.13.71 0 destination 20.18.1.1 0

 rule 20 permit ip source 172.18.13.71 0 destination 20.18.2.4 0

 rule 30 permit ip source 172.18.255.100 0 destination 20.18.1.1 0 (6 times matched)  //acl流量能够匹配上

 rule 40 permit ip source 172.18.255.100 0 destination 20.18.2.4 0


有到对应网段的路由,下一跳出接口也没问题

[H3C]display ip routing-table 20.18.1.1

Summary count : 2

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/0          Static  60  0           172.25.226.9    Vlan3

20.0.0.0/8         Static  60  0           30.96.104.1     GE1/2/1/12


3、收集debug,看报文转发过程,直接在设备上测试对应网段不通,debug也没有转换过程

<H3C>debugging nat packet acl 3000

<H3C>ping 20.18.1.1

Ping 20.18.1.1 (20.18.1.1): 56 data bytes, press CTRL+C to break

Request time out

Request time out

Request time out

Request time out

Request time out


怀疑对端服务器禁ping,改用互联地址进行测试能通,但是是走直连路由通的,并没有进行nat转换

<H3C>ping 30.96.104.1

Ping 30.96.104.1 (30.96.104.1): 56 data bytes, press CTRL+C to break

56 bytes from 30.96.104.1: icmp_seq=0 ttl=255 time=2.070 ms

56 bytes from 30.96.104.1: icmp_seq=1 ttl=255 time=2.775 ms

56 bytes from 30.96.104.1: icmp_seq=2 ttl=255 time=2.491 ms

56 bytes from 30.96.104.1: icmp_seq=3 ttl=255 time=2.768 ms

56 bytes from 30.96.104.1: icmp_seq=4 ttl=255 time=2.886 ms


开启H3C>debugging ip packet acl 3000 查看详细转换过,发现回包的流量上到了其他nat业务板卡

<H3C>ping 20.18.1.1

Ping 20.18.1.1 (20.18.1.1): 56 data bytes, press CTRL+C to break

*Dec 10 10:38:29:310 2021 H3C IPFW/7/IPFW_PACKET: -MDC=1;

Transferring, interface = GigabitEthernet1/2/1/12, version = 4, headlen = 20, tos = 0,

pktlen = 84, pktid = 12399, offset = 0, ttl = 255, protocol = 1,

checksum = 41120, s = 30.96.104.2, d = 20.18.1.1

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Sending to chassis 1 slot 2  //可以看到流量从对应的板卡接口发送出去了

 

*Dec 10 10:38:28:653 2021 H3C IPFW/7/IPFW_PACKET: -MDC=1-Chassis=1-Slot=2;

Transferring, interface = GigabitEthernet1/2/1/12, version = 4, headlen = 20, tos = 0,

pktlen = 84, pktid = 12399, offset = 0, ttl = 255, protocol = 1,

checksum = 41120, s = 30.96.104.2, d = 20.18.1.1

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: IP TR: Receive packet from another node.  //回包的流量确是从另一个板卡收到,来回流量不在同一个nat业务板卡进行处理,无法匹配nat会话,导致不通

 

*Dec 10 10:38:28:653 2021 H3C IPFW/7/IPFW_PACKET: -MDC=1-Chassis=1-Slot=2;

Sending, interface = GigabitEthernet1/2/1/12, version = 4, headlen = 20, tos = 0,

pktlen = 84, pktid = 12399, offset = 0, ttl = 255, protocol = 1,

checksum = 61380, s = 30.96.104.2, d = 20.18.1.1

channelID = 0, vpn-InstanceIn = 0, vpn-InstanceOut = 0.

prompt: Sending the packet from local at GigabitEthernet1/2/1/12.


SR88没有缺省引流和openflow引流,需要手动配置MQC引流,使nat的业务来回流量上到同一板卡进行处理


配置全局MQC引流

traffic classifier mqc

if-match acl 3000


traffic behavior mqc

redirect chassis 1 slot 2


qos policy mqc

classifier mqc behavior mqc


qos apply policy mqc global inbound 

配置完成后nat业务正常,对应流量经过同一nat板卡进行处理,debug能看到详细的转换过程

*Dec 10 11:06:25:794 2021 H3C NAT/7/COMMON: -MDC=1-Chassis=1-Slot=2;

 PACKET: (GigabitEthernet1/2/1/12-out) Protocol: ICMP

  172.18.255.100:    0 -     30.96.104.1:    0(VPN:    0) ------>  //流量发起方,转换源地址为30.96.104.2的global地址去访问目的地址

     30.96.104.2:    0 -     30.96.104.1:    0(VPN:    0)


*Dec 10 11:06:25:799 2021 H3C NAT/7/COMMON: -MDC=1-Chassis=1-Slot=2;

 PACKET: (GigabitEthernet1/2/1/12-in) Protocol: ICMP

     30.96.104.1:    0 -     30.96.104.2:    0(VPN:    0) ------> //回程流量,匹配会话转发

     30.96.104.1:    0 -  172.18.255.100:    0(VPN:    0)


解决方法

配置全局MQC引流

traffic classifier mqc

if-match acl 3000


traffic behavior mqc

redirect chassis 1 slot 2


qos policy mqc

classifier mqc behavior mqc


qos apply policy mqc global inbound 


为何指定了nat业务处理板卡还需要配置qos的mqc引流

 nat service chassis 1 slot 2 //实现将nat的业务采样指定的板卡进行处理,如果涉及到回程的流量在其他板卡,则无法匹配会话导致nat失效,此时需要mqc引流将流量都重定向到和nat指定的板卡进行处理


 nat service

nat service命令用来指定处理NAT业务的slot。

undo nat service命令用来恢复缺省情况。

【命令】

独立运行模式:

nat service slot slot-number

undo nat service slot

IRF模式:

nat service chassis chassis-number slot slot-number

undo nat service chassis

【缺省情况】

未指定处理NAT业务的slot。

【视图】

接口视图

【缺省用户角色】

network-admin

【参数】

slot slot-number:指定单板所在的槽位号。slot-number表示单板所在的槽位号。(独立运行模式)

chassis chassis-number slot slot-number:指定成员设备上指定单板的槽位号。chassis-number表示设备在IRF中的成员编号,slot-number表示单板所在的槽位号。(IRF模式)

【使用指导】

如果需要使用具有NAT能力的业务板进行NAT处理,必须在配置了NAT业务的接口上指定提供NAT处理的slot。否则接口的NAT功能不生效。

一个接口上的NAT业务只能由一个slot处理,该slot可以是设备上的任意可提供NAT处理的slot。通常,如果接口所在的slot具有NAT处理能力,那么建议将接口所在slot指定为处理NAT业务的slot。

多个接口引用了同一个地址组或外网地址时,这些接口必须指定同一个slot进行NAT处理。否则,可能会出现配置成功但实际不生效的情况,并且在配置恢复(由设备重启、软件升级等原因导致)时可能会造成配置丢失。

在接口上,不能通过重复执行本命令来修改接口上指定处理NAT业务的slot。如需修改,请先通过undo nat service命令取消指定的slot,再执行nat service命令。

接口上配置本命令后,该接口的动态地址转换(包括出方向动态地址转换、Easy IP方式的动态地址转换和NAT端口块动态映射)和NAT端口块静态映射中,不能将地址组/端口块组与备份组绑定。

在接口视图下配置本命令后,将无法在系统视图下配置nat instance命令。反之,如果在系统视图下配置了nat instance命令,将无法在接口视图下配置本命令。

【举例】

# 指定slot 3作为提供NAT业务处理的slot。

<Sysname> system-view

[Sysname] interface gigabitethernet 3/1/1

[Sysname-GigabitEthernet3/1/1] nat service slot 3


 配置处理NAT的业务板

1. 功能简介

如果需要使用具有NAT能力的业务板进行NAT处理,则必须在配置了NAT业务的接口上指定该业务板,才能使通过该接口进行NAT转换的报文重定向到业务板上进行处理。在NAT业务板上进行业务处理,可以提高了NAT业务处理的性能。

2. 配置限制和指导

目前除SPC-CP2LA和SPC-CP2LB单板外,其他业务板都可以提供NAT处理。

指定处理NAT业务的slot后,将无法配置nat instance命令,反之亦然。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     指定处理NAT的业务板。

(独立运行模式)

nat service slot slot-number

(IRF模式)

nat service chassis chassis-number slot slot-number

缺省情况下,未指定处理NAT的业务板。

(4)     配置QoS策略

a.     创建QoS策略,定义匹配NAT业务流的类,以及重定向到处理NAT的业务板。

b.     将类和流行为绑定。

c.     在设备的入接口上应用QoS策略。

附qos、portal、pbr优先级比较:

1PortalQoS谁先生效?\\Portal免认证规则优先生效

Portal认证场景中,若匹配Portal免认证规则的流量与全局或接口应用的MQC方式QoS策略(例如重定向到NAT)匹配到的流量相同,则优先按照Portal免认证规则执行转发动作

2portal free-rule优先级比端口PBR要高,匹配free-rule后按照路由转发,不再匹配PBR

Portal认证场景中,若匹配Portal免认证规则的流量与接口下配置的策略路由匹配到的流量相同,则优先按照Portal免认证规则执行转发动作。

3、接口同时配置PBRQoS \\应该PBR先生效

在接口或全局配置的MQC方式的QoS策略与接口下配置的策略路由匹配到相同流量,例如两者引用ACL规则相同时,如果转发行为冲突,则策略路由优先生效。