目錄

簡介

必要條件

需求

採用元件

背景資訊

FTD封包轉送機制

要點

資料平面(LINA)路由行為

要點

FTD營運順序

設定

案例1 — 基於連線查詢的轉發

浮動超時

連線抑制超時

案例2 — 基於NAT查詢的轉發

案例3 — 根據原則型路由(PBR)轉送

案例4 — 基於全域性路由查詢的轉發

Null0介面

等價多重路徑(ECMP)

FTD管理平面

FTD LINA診斷介面路由

簡介

本檔案將說明Firepower威脅防禦(FTD)如何轉送封包和實施各種路由概念。

必要條件

需求

- 基本的路由知識

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco Firepower 41xx威脅防禦版本7.1.x

- Firepower管理中心(FMC)版本7.1.x

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

FTD封包轉送機制

FTD 是一個整合的軟體映像，其中包括 2 個主引擎：

- 資料路徑引擎(LINA)

- Snort 引擎

資料路徑和Snort引擎是FTD資料平面的主要部分。

FTD資料平面轉送機制取決於介面模式。下一張圖總結了各種介面模式以及FTD部署模式：

下表總結FTD如何根據介面模式在資料平面中轉送封包。轉送機制按優先順序排列：

*在某些情況下，處於透明模式的FTD會執行路由查詢：

檢視FMC指南以瞭解更多詳細資訊。

自6.2.x版本起，FTD支援整合路由和橋接(IRB):

BVI驗證命令：

要點

對於路由介面或BVI(IRB)，資料包轉發基於以下順序：

- 連線查詢

- NAT查詢（目標NAT，也稱為UN-NAT）

- 原則型路由(PBR)

- 全域性路由表查詢

源NAT呢？

在全域性路由查詢之後檢查源NAT。

本文檔的其餘部分將重點介紹路由介面模式。

資料平面(LINA)路由行為

在路由介面模式下，FTD LINA分兩個階段轉送封包：

第1階段 — 輸出介面確定

第2階段 — 下一跳選擇

請考慮使用此拓樸：

此路由設計：

FTD路由組態：

firepower# show run router

router ospf 1

network 192.168.0.0 255.255.255.0 area 0

log-adj-changes

!

router bgp 65000

bgp log-neighbor-changes

bgp router-id vrf auto-assign

address-family ipv4 unicast

neighbor 203.0.113.99 remote-as 65001

neighbor 203.0.113.99 ebgp-multihop 255

neighbor 203.0.113.99 transport path-mtu-discovery disable

neighbor 203.0.113.99 activate

no auto-summary

no synchronization

exit-address-family

!

router eigrp 1

no default-information in

no default-information out

no eigrp log-neighbor-warnings

no eigrp log-neighbor-changes

network 192.0.2.0 255.255.255.0

!

firepower# show run route

route OUTSIDE2 198.51.100.0 255.255.255.248 192.0.2.99 1

FTD路由資訊庫(RIB) — 控制平面：

firepower# show route | begin Gate

Gateway of last resort is not set

C 192.0.2.0 255.255.255.0 is directly connected, OUTSIDE2

L 192.0.2.1 255.255.255.255 is directly connected, OUTSIDE2

C 192.168.0.0 255.255.255.0 is directly connected, INSIDE

L 192.168.0.1 255.255.255.255 is directly connected, INSIDE

O 192.168.1.1 255.255.255.255

[110/11] via 192.168.0.99, 01:11:25, INSIDE

O 192.168.2.1 255.255.255.255

[110/11] via 192.168.0.99, 01:11:15, INSIDE

S 198.51.100.0 255.255.255.248 [1/0] via 192.0.2.99, OUTSIDE2

D 198.51.100.8 255.255.255.248

[90/130816] via 192.0.2.99, 01:08:11, OUTSIDE2

D 198.51.100.16 255.255.255.248

[90/130816] via 192.0.2.99, 01:08:04, OUTSIDE2

B 198.51.100.24 255.255.255.248 [20/0] via 203.0.113.99, 00:28:29

B 198.51.100.32 255.255.255.248 [20/0] via 203.0.113.99, 00:28:16

C 203.0.113.0 255.255.255.0 is directly connected, OUTSIDE1

L 203.0.113.1 255.255.255.255 is directly connected, OUTSIDE1

對應的FTD加速安全路徑(ASP)路由表 — 資料平面：

firepower# show asp table routing

route table timestamp: 91

in 169.254.1.1 255.255.255.255 identity

in 192.168.0.1 255.255.255.255 identity

in 192.0.2.1 255.255.255.255 identity

in 192.168.1.1 255.255.255.255 via 192.168.0.99, INSIDE

in 192.168.2.1 255.255.255.255 via 192.168.0.99, INSIDE

in 203.0.113.1 255.255.255.255 identity

in 169.254.1.0 255.255.255.248 nlp_int_tap

in 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

in 198.51.100.8 255.255.255.248 via 192.0.2.99, OUTSIDE2

in 198.51.100.16 255.255.255.248 via 192.0.2.99, OUTSIDE2

in 198.51.100.24 255.255.255.248 via 203.0.113.99 (unresolved, timestamp: 89)

in 198.51.100.32 255.255.255.248 via 203.0.113.99 (unresolved, timestamp: 90)

in 192.168.0.0 255.255.255.0 INSIDE

in 192.0.2.0 255.255.255.0 OUTSIDE2

in 203.0.113.0 255.255.255.0 OUTSIDE1

in ff02::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in ff02::1:ff01:3 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in ff02::1:ff00:1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in fe80::200:ff:fe01:3 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in fd00:0:0:1::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in fd00:0:0:1:: ffff:ffff:ffff:ffff:: nlp_int_tap

out 255.255.255.255 255.255.255.255 OUTSIDE1

out 203.0.113.1 255.255.255.255 OUTSIDE1

out 203.0.113.0 255.255.255.0 OUTSIDE1

out 224.0.0.0 240.0.0.0 OUTSIDE1

out 255.255.255.255 255.255.255.255 OUTSIDE2

out 192.0.2.1 255.255.255.255 OUTSIDE2

out 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 198.51.100.8 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 198.51.100.16 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 192.0.2.0 255.255.255.0 OUTSIDE2

out 224.0.0.0 240.0.0.0 OUTSIDE2

out 255.255.255.255 255.255.255.255 INSIDE

out 192.168.0.1 255.255.255.255 INSIDE

out 192.168.1.1 255.255.255.255 via 192.168.0.99, INSIDE

out 192.168.2.1 255.255.255.255 via 192.168.0.99, INSIDE

out 192.168.0.0 255.255.255.0 INSIDE

out 224.0.0.0 240.0.0.0 INSIDE

out 255.255.255.255 255.255.255.255 cmi_mgmt_int_tap

out 224.0.0.0 240.0.0.0 cmi_mgmt_int_tap

out 255.255.255.255 255.255.255.255 ha_ctl_nlp_int_tap

out 224.0.0.0 240.0.0.0 ha_ctl_nlp_int_tap

out 255.255.255.255 255.255.255.255 ccl_ha_nlp_int_tap

out 224.0.0.0 240.0.0.0 ccl_ha_nlp_int_tap

out 255.255.255.255 255.255.255.255 nlp_int_tap

out 169.254.1.1 255.255.255.255 nlp_int_tap

out 169.254.1.0 255.255.255.248 nlp_int_tap

out 224.0.0.0 240.0.0.0 nlp_int_tap

out fd00:0:0:1::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff nlp_int_tap

out fd00:0:0:1:: ffff:ffff:ffff:ffff:: nlp_int_tap

out fe80:: ffc0:: nlp_int_tap

out ff00:: ff00:: nlp_int_tap

out 0.0.0.0 0.0.0.0 via 0.0.0.0, identity

out :: :: via 0.0.0.0, identity

要點

FTD（在某種意義上類似於調適型安全裝置 — ASA）首先確定封包的出口（輸出）介面（為此，它會檢視ASP路由表的「in」專案）。然後，對於確定的介面，它會嘗試查詢下一個躍點（為此，它會檢視ASP路由表中的「out」條目）。舉例來說：

firepower# show asp table routing | include in.*198.51.100.0

in 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

firepower#

firepower# show asp table routing | include out.*OUTSIDE2

out 255.255.255.255 255.255.255.255 OUTSIDE2

out 192.0.2.1 255.255.255.255 OUTSIDE2

out 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 198.51.100.8 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 198.51.100.16 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 192.0.2.0 255.255.255.0 OUTSIDE2

out 224.0.0.0 240.0.0.0 OUTSIDE2

最後，對於已解析的下一跳，LINA會檢查ARP快取中的有效鄰接關係。

FTD Packet Tracer工具可確認此程式：

firepower# packet-tracer input INSIDE icmp 192.168.1.1 8 0 198.51.100.1

Phase: 1

Type: ACCESS-LIST

Subtype:

Result: ALLOW

Elapsed time: 7582 ns

Config:

Implicit Rule

Additional Information:

MAC Access list

Phase: 2

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Elapsed time: 8474 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 3

Type: ACCESS-LIST

Subtype: log

Result: ALLOW

Elapsed time: 5017 ns

Config:

access-group CSM_FW_ACL_ global

access-list CSM_FW_ACL_ advanced permit ip any any rule-id 268434433

access-list CSM_FW_ACL_ remark rule-id 268434433: ACCESS POLICY: mzafeiro_empty - Default

access-list CSM_FW_ACL_ remark rule-id 268434433: L4 RULE: DEFAULT ACTION RULE

Additional Information:

This packet will be sent to snort for additional processing where a verdict will be reached

Phase: 4

Type: CONN-SETTINGS

Subtype:

Result: ALLOW

Elapsed time: 5017 ns

Config:

class-map class-default

match any

policy-map global_policy

class class-default

set connection advanced-options UM_STATIC_TCP_MAP

service-policy global_policy global

Additional Information:

Phase: 5

Type: NAT

Subtype: per-session

Result: ALLOW

Elapsed time: 5017 ns

Config:

Additional Information:

Phase: 6

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Elapsed time: 5017 ns

Config:

Additional Information:

Phase: 7

Type: INSPECT

Subtype: np-inspect

Result: ALLOW

Elapsed time: 57534 ns

Config:

class-map inspection_default

match default-inspection-traffic

policy-map global_policy

class inspection_default

inspect icmp

service-policy global_policy global

Additional Information:

Phase: 8

Type: INSPECT

Subtype: np-inspect

Result: ALLOW

Elapsed time: 3122 ns

Config:

Additional Information:

Phase: 9

Type: NAT

Subtype: per-session

Result: ALLOW

Elapsed time: 29882 ns

Config:

Additional Information:

Phase: 10

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Elapsed time: 446 ns

Config:

Additional Information:

Phase: 11

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Elapsed time: 20962 ns

Config:

Additional Information:

New flow created with id 178, packet dispatched to next module

Phase: 12

Type: EXTERNAL-INSPECT

Subtype:

Result: ALLOW

Elapsed time: 20070 ns

Config:

Additional Information:

Application: 'SNORT Inspect'

Phase: 13

Type: SNORT

Subtype:

Result: ALLOW

Elapsed time: 870592 ns

Config:

Additional Information:

Snort Trace:

Packet: ICMP

Session: new snort session

Snort id 1, NAP id 1, IPS id 0, Verdict PASS

Snort Verdict: (pass-packet) allow this packet

Phase: 14

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 6244 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 15

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 1784 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 192.0.2.99 on interface OUTSIDE2

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 5 reference 1

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE2(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 1046760 ns

FTD ARP表（如控制平面所示）：

firepower# show arp

OUTSIDE1 203.0.113.99 4c4e.35fc.fcd8 3051

OUTSIDE2 192.0.2.99 4c4e.35fc.fcd8 5171

要強制ARP解析，請執行以下操作：

firepower# ping 192.168.0.99

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.0.99, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

firepower# show arp

INSIDE 192.168.0.99 4c4e.35fc.fcd8 45

OUTSIDE1 203.0.113.99 4c4e.35fc.fcd8 32

OUTSIDE2 192.0.2.99 4c4e.35fc.fcd8 1

資料平面中看到的FTD ARP表：

firepower# show asp table arp

Context: single_vf, Interface: OUTSIDE1

203.0.113.99 Active 4c4e.35fc.fcd8 hits 2 reference 1

Context: single_vf, Interface: OUTSIDE2

192.0.2.99 Active 4c4e.35fc.fcd8 hits 5 reference 0

Context: single_vf, Interface: INSIDE

192.168.0.99 Active 4c4e.35fc.fcd8 hits 5 reference 0

Context: single_vf, Interface: identity

:: Active 0000.0000.0000 hits 0 reference 0

0.0.0.0 Active 0000.0000.0000 hits 848 reference 0

Last clearing of hits counters: Never

FTD營運順序

該圖顯示了操作的順序以及執行輸入和輸出ASP Routing檢查的位置：

設定

案例1 — 基於連線查詢的轉發

如前所述，FTD LINA引擎的主要元件是資料路徑程式（多個例項，基於裝置核心數量）。此外，資料路徑（也稱為加速安全路徑 — ASP）由2個路徑組成：

1. 慢速路徑=負責建立新連線（它填充快速路徑）。

2. 快速路徑=處理屬於已建立連線的資料包。

- show route和show arp等命令會顯示控制平面的內容。

- 另一方面，show asp table routing和show asp table arp等命令會顯示實際應用的ASP(Datapath)的內容。

在FTD INSIDE介面上啟用含有追蹤軌跡的擷取：

firepower# capture CAPI trace detail interface INSIDE match ip host 192.168.1.1 host 198.51.100.1

透過FTD開啟Telnet作業階段：

Router1# telnet 198.51.100.1 /vrf VRF-101 /source-interface lo1

Trying 198.51.100.1 ... Open

FTD擷取顯示連線開始時的封包（擷取TCP三次握手）：

firepower# show capture CAPI

26 packets captured

1: 10:50:38.407190 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: S 1306692135:1306692135(0) win 4128 <mss 536>

2: 10:50:38.408929 802.1Q vlan#101 P0 198.51.100.1.23 > 192.168.1.1.57734: S 1412677784:1412677784(0) ack 1306692136 win 4128 <mss 536>

3: 10:50:38.409265 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: . ack 1412677785 win 4128

4: 10:50:38.409433 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: P 1306692136:1306692154(18) ack 1412677785 win 4128

5: 10:50:38.409845 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: . ack 1412677785 win 4128

6: 10:50:38.410135 802.1Q vlan#101 P0 198.51.100.1.23 > 192.168.1.1.57734: . ack 1306692154 win 4110

7: 10:50:38.411355 802.1Q vlan#101 P0 198.51.100.1.23 > 192.168.1.1.57734: P 1412677785:1412677797(12) ack 1306692154 win 4110

8: 10:50:38.413049 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: P 1306692154:1306692157(3) ack 1412677797 win 4116

9: 10:50:38.413140 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: P 1306692157:1306692166(9) ack 1412677797 win 4116

10: 10:50:38.414071 802.1Q vlan#101 P0 198.51.100.1.23 > 192.168.1.1.57734: . 1412677797:1412678322(525) ack 1306692154 win 4110

...

追蹤第一個封包(TCP SYN)。此封包會通過FTD LINA慢速路徑，並在此案例中執行全域路由查詢：

firepower# show capture CAPI packet-number 1 trace

26 packets captured

1: 10:50:38.407190 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: S 1306692135:1306692135(0) win 4128 <mss 536>

Phase: 1

Type: CAPTURE

Subtype:

Result: ALLOW

Elapsed time: 4683 ns

Config:

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1505f1d17940, priority=13, domain=capture, deny=false

hits=1783, user_data=0x1505f2096910, cs_id=0x0, l3_type=0x0

src mac=0000.0000.0000, mask=0000.0000.0000

dst mac=0000.0000.0000, mask=0000.0000.0000

input_ifc=INSIDE, output_ifc=any

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: ALLOW

Elapsed time: 4683 ns

Config:

Implicit Rule

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1502a7ba4d40, priority=1, domain=permit, deny=false

hits=28, user_data=0x0, cs_id=0x0, l3_type=0x8

src mac=0000.0000.0000, mask=0000.0000.0000

dst mac=0000.0000.0000, mask=0100.0000.0000

input_ifc=INSIDE, output_ifc=any

Phase: 3

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Elapsed time: 5798 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 4

Type: ACCESS-LIST

Subtype: log

Result: ALLOW

Elapsed time: 3010 ns

Config:

access-group CSM_FW_ACL_ global

access-list CSM_FW_ACL_ advanced permit ip any any rule-id 268434433

access-list CSM_FW_ACL_ remark rule-id 268434433: ACCESS POLICY: mzafeiro_empty - Default

access-list CSM_FW_ACL_ remark rule-id 268434433: L4 RULE: DEFAULT ACTION RULE

Additional Information:

This packet will be sent to snort for additional processing where a verdict will be reached

Forward Flow based lookup yields rule:

in id=0x1505f1e2e980, priority=12, domain=permit, deny=false

hits=4, user_data=0x15024a56b940, cs_id=0x0, use_real_addr, flags=0x0, protocol=0

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, ifc=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, ifc=any,, dscp=0x0, nsg_id=none

input_ifc=any, output_ifc=any

Phase: 5

Type: CONN-SETTINGS

Subtype:

Result: ALLOW

Elapsed time: 3010 ns

Config:

class-map class-default

match any

policy-map global_policy

class class-default

set connection advanced-options UM_STATIC_TCP_MAP

service-policy global_policy global

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1505f1f18bc0, priority=7, domain=conn-set, deny=false

hits=4, user_data=0x1505f1f13f70, cs_id=0x0, use_real_addr, flags=0x0, protocol=0

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=INSIDE(vrfid:0), output_ifc=any

Phase: 6

Type: NAT

Subtype: per-session

Result: ALLOW

Elapsed time: 3010 ns

Config:

Additional Information:

Forward Flow based lookup yields rule:

in id=0x15052e96b150, priority=0, domain=nat-per-session, deny=false

hits=125, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=6

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=any, output_ifc=any

Phase: 7

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Elapsed time: 3010 ns

Config:

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1502a7bacde0, priority=0, domain=inspect-ip-options, deny=true

hits=19, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=INSIDE(vrfid:0), output_ifc=any

Phase: 8

Type: NAT

Subtype: per-session

Result: ALLOW

Elapsed time: 52182 ns

Config:

Additional Information:

Reverse Flow based lookup yields rule:

in id=0x15052e96b150, priority=0, domain=nat-per-session, deny=false

hits=127, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=6

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=any, output_ifc=any

Phase: 9

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Elapsed time: 892 ns

Config:

Additional Information:

Reverse Flow based lookup yields rule:

in id=0x1502a7f9b460, priority=0, domain=inspect-ip-options, deny=true

hits=38, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0

src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any

dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=OUTSIDE2(vrfid:0), output_ifc=any

Phase: 10

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Elapsed time: 25422 ns

Config:

Additional Information:

New flow created with id 244, packet dispatched to next module

Module information for forward flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_tcp_proxy

snp_fp_snort

snp_fp_tcp_proxy

snp_fp_translate

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Module information for reverse flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_translate

snp_fp_tcp_proxy

snp_fp_snort

snp_fp_tcp_proxy

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Phase: 11

Type: EXTERNAL-INSPECT

Subtype:

Result: ALLOW

Elapsed time: 36126 ns

Config:

Additional Information:

Application: 'SNORT Inspect'

Phase: 12

Type: SNORT

Subtype:

Result: ALLOW

Elapsed time: 564636 ns

Config:

Additional Information:

Snort Trace:

Packet: TCP, SYN, seq 182318660

Session: new snort session

AppID: service unknown (0), application unknown (0)

Snort id 28, NAP id 1, IPS id 0, Verdict PASS

Snort Verdict: (pass-packet) allow this packet

Phase: 13

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 7136 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 14

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 2230 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 192.0.2.99 on interface OUTSIDE2

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 10 reference 1

Phase: 15

Type: CAPTURE

Subtype:

Result: ALLOW

Elapsed time: 5352 ns

Config:

Additional Information:

Forward Flow based lookup yields rule:

out id=0x150521389870, priority=13, domain=capture, deny=false

hits=1788, user_data=0x1505f1d2b630, cs_id=0x0, l3_type=0x0

src mac=0000.0000.0000, mask=0000.0000.0000

dst mac=0000.0000.0000, mask=0000.0000.0000

input_ifc=OUTSIDE2, output_ifc=any

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE2(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 721180 ns

1 packet shown

firepower#

跟蹤來自同一流的另一個入口資料包。與活動連線匹配的資料包：

firepower# show capture CAPI packet-number 3 trace

33 packets captured

3: 10:50:38.409265 802.1Q vlan#101 P0 192.168.1.1.57734 > 198.51.100.1.23: . ack 1412677785 win 4128

Phase: 1

Type: CAPTURE

Subtype:

Result: ALLOW

Elapsed time: 2676 ns

Config:

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1505f1d17940, priority=13, domain=capture, deny=false

hits=105083, user_data=0x1505f2096910, cs_id=0x0, l3_type=0x0

src mac=0000.0000.0000, mask=0000.0000.0000

dst mac=0000.0000.0000, mask=0000.0000.0000

input_ifc=INSIDE, output_ifc=any

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: ALLOW

Elapsed time: 2676 ns

Config:

Implicit Rule

Additional Information:

Forward Flow based lookup yields rule:

in id=0x1502a7ba4d40, priority=1, domain=permit, deny=false

hits=45, user_data=0x0, cs_id=0x0, l3_type=0x8

src mac=0000.0000.0000, mask=0000.0000.0000

dst mac=0000.0000.0000, mask=0100.0000.0000

input_ifc=INSIDE, output_ifc=any

Phase: 3

Type: FLOW-LOOKUP

Subtype:

Result: ALLOW

Elapsed time: 1338 ns

Config:

Additional Information:

Found flow with id 2552, using existing flow

Module information for forward flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_snort

snp_fp_translate

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Module information for reverse flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_translate

snp_fp_snort

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Phase: 4

Type: EXTERNAL-INSPECT

Subtype:

Result: ALLOW

Elapsed time: 16502 ns

Config:

Additional Information:

Application: 'SNORT Inspect'

Phase: 5

Type: SNORT

Subtype:

Result: ALLOW

Elapsed time: 12934 ns

Config:

Additional Information:

Snort Trace:

Packet: TCP, ACK, seq 1306692136, ack 1412677785

AppID: service unknown (0), application unknown (0)

Snort id 19, NAP id 1, IPS id 0, Verdict PASS

Snort Verdict: (pass-packet) allow this packet

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

Action: allow

Time Taken: 36126 ns

1 packet shown

firepower#

浮動超時

問題

臨時路由不穩定性可能會導致通過FTD建立的長壽命（大象）UDP連線通過不同於預期的FTD介面建立。

解決方案

要修復此問題，請將timeout floating-conn設定為與預設值不同的值（已禁用）：

在Command Reference（命令參考）中：

有關詳細資訊，請參閱案例研究：從CiscoLive BRKSEC-3020會話重新載入後UDP連線失敗：

連線抑制超時

問題

路由關閉（被刪除），但流量匹配已建立的連線。

解決方案

ASA 9.6.2上新增了超時連線抑制功能。預設情況下會啟用該功能，但目前(7.1.x)FMC UI或FlexConfig不支援。相關增強：增強版：超時連線抑制不可用於FMC中的配置

在ASA CLI指南中：

firepower# show run all timeout

timeout xlate 3:00:00

timeout pat-xlate 0:00:30

timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 sctp 0:02:00 icmp 0:00:02

timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00

timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00

timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute

timeout tcp-proxy-reassembly 0:00:30

timeout floating-conn 0:00:00

timeout conn-holddown 0:00:15

timeout igp stale-route 0:01:10

案例2 — 基於NAT查詢的轉發

需求

配置此NAT規則：

- 型別：靜態

- 源介面：INSIDE

- 目標介面：OUTSIDE1

- 原始來源：192.168.1.1

- 原始目標：198.51.100.1

- 轉換後來源：192.168.1.1

- 轉換後的目標：198.51.100.1

解決方案

FTD CLI上已部署的NAT規則：

firepower# show run nat

nat (INSIDE,OUTSIDE1) source static host_192.168.1.1 host_192.168.1.1 destination static host_198.51.100.1 host_198.51.100.1

firepower# show nat

Manual NAT Policies (Section 1)

1 (INSIDE) to (OUTSIDE1) source static host_192.168.1.1 host_192.168.1.1 destination static host_198.51.100.1 host_198.51.100.1

translate_hits = 0, untranslate_hits = 0

配置3個捕獲：

firepower# capture CAPI trace detail interface INSIDE match ip host 192.168.1.1 host 198.51.100.1

firepower# capture CAPO1 interface OUTSIDE1 match ip host 192.168.1.1 any

firepower# capture CAPO2 interface OUTSIDE2 match ip host 192.168.1.1 any

firepower# show capture

capture CAPI type raw-data trace detail interface INSIDE [Capturing - 0 bytes]

match ip host 192.168.1.1 host 198.51.100.1

capture CAPO1 type raw-data interface OUTSIDE1 [Capturing - 0 bytes]

match ip host 192.168.1.1 any

capture CAPO2 type raw-data interface OUTSIDE2 [Capturing - 0 bytes]

match ip host 192.168.1.1 any

起始從192.168.1.1到198.51.100.1的telnet會話：

Router1# telnet 198.51.100.1 /vrf VRF-101 /source-interface lo1

Trying 198.51.100.1 ...

% Connection timed out; remote host not responding

封包到達FTD，但沒有封包離開OUTSIDE1和OUTSIDE2介面：

firepower# show capture

capture CAPI type raw-data trace detail interface INSIDE [Capturing - 156 bytes]

match ip host 192.168.1.1 host 198.51.100.1

capture CAPO1 type raw-data interface OUTSIDE1 [Capturing - 0 bytes]

match ip host 192.168.1.1 any

capture CAPO2 type raw-data interface OUTSIDE2 [Capturing - 0 bytes]

match ip host 192.168.1.1 any

追蹤TCP SYN封包。第3階段(UN-NAT)顯示NAT（特定於UN-NAT）將資料包轉移到OUTSIDE1介面以進行下一跳查詢：

firepower# show capture CAPI

2 packets captured

1: 11:22:59.179678 802.1Q vlan#101 P0 192.168.1.1.38790 > 198.51.100.1.23: S 1174675193:1174675193(0) win 4128 <mss 536>

2: 11:23:01.179632 802.1Q vlan#101 P0 192.168.1.1.38790 > 198.51.100.1.23: S 1174675193:1174675193(0) win 4128 <mss 536>

2 packets shown

firepower#

firepower# show capture CAPI packet-number 1 trace detail

2 packets captured

1: 11:22:59.179678 4c4e.35fc.fcd8 00be.75f6.1dae 0x8100 Length: 62

802.1Q vlan#101 P0 192.168.1.1.38790 > 198.51.100.1.23: S [tcp sum ok] 1174675193:1174675193(0) win 4128 <mss 536> [tos 0xc0] (ttl 255, id 60126)

...

Phase: 3

Type: UN-NAT

Subtype: static

Result: ALLOW

Elapsed time: 6244 ns

Config:

nat (INSIDE,OUTSIDE1) source static host_192.168.1.1 host_192.168.1.1 destination static host_198.51.100.1 host_198.51.100.1

Additional Information:

NAT divert to egress interface OUTSIDE1(vrfid:0)

Untranslate 198.51.100.1/23 to 198.51.100.1/23

...

Phase: 12

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Elapsed time: 25422 ns

Config:

Additional Information:

New flow created with id 2614, packet dispatched to next module

Module information for forward flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_tcp_proxy

snp_fp_snort

snp_fp_tcp_proxy

snp_fp_translate

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Phase: 15

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 8028 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 16

Type: SUBOPTIMAL-LOOKUP

Subtype: suboptimal next-hop

Result: ALLOW

Elapsed time: 446 ns

Config:

Additional Information:

Input route lookup returned ifc OUTSIDE2 is not same as existing ifc OUTSIDE1

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE1(vrfid:0)

output-status: up

output-line-status: up

Action: drop

Time Taken: 777375 ns

Drop-reason: (no-adjacency) No valid adjacency, Drop-location: frame 0x00005577204a7287 flow (NA)/NA

1 packet shown

在這種情況下，SUBOPTIMAL-LOOKUP意味著NAT進程(OUTSIDE1)確定的出口介面與ASP輸入表中指定的出口介面不同：

firepower# show asp table routing | include 198.51.100.0

in 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

out 198.51.100.0 255.255.255.248 via 192.0.2.99, OUTSIDE2

一種可能的解決方法是在OUTSIDE1介面上新增浮動靜態路由：

firepower# show run route

route OUTSIDE2 198.51.100.0 255.255.255.248 192.0.2.99 1

route OUTSIDE1 198.51.100.0 255.255.255.248 203.0.113.99 200

注意：如果嘗試新增的靜態路由度量與已存在的靜態路由度量相同，則出現以下錯誤：

注意：路由表中未安裝距離度量為255的浮動路由。

嘗試Telnet以確認有封包是透過FTD傳送的：

Router1# telnet 198.51.100.1 /vrf VRF-101 /source-interface lo1

Trying 198.51.100.1 ...

% Connection timed out; remote host not responding

firepower# show capture

capture CAPI type raw-data trace detail interface INSIDE [Capturing - 156 bytes]

match ip host 192.168.1.1 host 198.51.100.1

capture CAPO1 type raw-data interface OUTSIDE1 [Capturing - 312 bytes]

match ip host 192.168.1.1 any

capture CAPO2 type raw-data interface OUTSIDE2 [Capturing - 386 bytes]

match ip host 192.168.1.1 any

資料包跟蹤顯示，由於NAT查詢，資料包被轉發到ISP1(OUTSIDE1)介面，而不是ISP2:

firepower# show capture CAPI packet-number 1 trace

2 packets captured

1: 09:03:02.773962 802.1Q vlan#101 P0 192.168.1.1.16774 > 198.51.100.1.23: S 2910053251:2910053251(0) win 4128 <mss 536>

...

Phase: 3

Type: UN-NAT

Subtype: static

Result: ALLOW

Elapsed time: 4460 ns

Config:

nat (INSIDE,OUTSIDE1) source static host_192.168.1.1 host_192.168.1.1 destination static host_198.51.100.1 host_198.51.100.1

Additional Information:

NAT divert to egress interface OUTSIDE1(vrfid:0)

Untranslate 198.51.100.1/23 to 198.51.100.1/23

...

Phase: 12

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Elapsed time: 29436 ns

Config:

Additional Information:

New flow created with id 2658, packet dispatched to next module

Module information for forward flow ...

snp_fp_inspect_ip_options

snp_fp_tcp_normalizer

snp_fp_snort

snp_fp_translate

snp_fp_tcp_normalizer

snp_fp_adjacency

snp_fp_fragment

snp_ifc_stat

Phase: 15

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 5798 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 16

Type: SUBOPTIMAL-LOOKUP

Subtype: suboptimal next-hop

Result: ALLOW

Elapsed time: 446 ns

Config:

Additional Information:

Input route lookup returned ifc OUTSIDE2 is not same as existing ifc OUTSIDE1

Phase: 17

Type: NEXTHOP-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Lookup Nexthop on interface

Result: ALLOW

Elapsed time: 1784 ns

Config:

Additional Information:

Found next-hop 203.0.113.99 using egress ifc OUTSIDE1(vrfid:0)

Phase: 18

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 1338 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 203.0.113.99 on interface OUTSIDE1

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 106 reference 2

...

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE1(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 723409 ns

1 packet shown

firepower#

有趣的是，在這種情況下，INSIDE和兩個輸出介面上均顯示資料包：

firepower# show capture CAPI

2 packets captured

1: 09:03:02.773962 802.1Q vlan#101 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3031010184:3031010184(0) win 4128 <mss 536>

2: 09:03:05.176565 802.1Q vlan#101 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3031010184:3031010184(0) win 4128 <mss 536>

2 packets shown

firepower# show capture CAPO1

4 packets captured

1: 09:03:02.774358 802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3249840142:3249840142(0) win 4128 <mss 536>

2: 09:03:02.774557 802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3249840142:3249840142(0) win 4128 <mss 536>

3: 09:03:05.176702 802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3249840142:3249840142(0) win 4128 <mss 536>

4: 09:03:05.176870 802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3249840142:3249840142(0) win 4128 <mss 536>

4 packets shown

firepower# show capture CAPO2

5 packets captured

1: 09:03:02.774679 802.1Q vlan#202 P0 192.168.1.1.32134 > 198.51.100.1.23: S 194652172:194652172(0) win 4128 <mss 536>

2: 09:03:02.775457 802.1Q vlan#202 P0 198.51.100.1.23 > 192.168.1.1.32134: S 4075003210:4075003210(0) ack 194652173 win 4128 <mss 536>

3: 09:03:05.176931 802.1Q vlan#202 P0 192.168.1.1.32134 > 198.51.100.1.23: S 194652172:194652172(0) win 4128 <mss 536>

4: 09:03:05.177282 802.1Q vlan#202 P0 198.51.100.1.23 > 192.168.1.1.32134: . ack 194652173 win 4128

5: 09:03:05.180517 802.1Q vlan#202 P0 198.51.100.1.23 > 192.168.1.1.32134: S 4075003210:4075003210(0) ack 194652173 win 4128 <mss 536>

封包詳細資訊包括MAC位址資訊，而OUTSIDE1和OUTSIDE2介面上的封包追蹤軌跡顯示封包的路徑：

firepower# show capture CAPO1 detail

4 packets captured

1: 09:03:02.774358 00be.75f6.1dae 4c4e.35fc.fcd8 0x8100 Length: 62

802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S [tcp sum ok] 3249840142:3249840142(0) win 4128 <mss 536> [tos 0xc0] (ttl 255, id 14509)

2: 09:03:02.774557 4c4e.35fc.fcd8 00be.75f6.1dae 0x8100 Length: 62

802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S [tcp sum ok] 3249840142:3249840142(0) win 4128 <mss 536> [tos 0xc0] (ttl 254, id 14509)

3: 09:03:05.176702 00be.75f6.1dae 4c4e.35fc.fcd8 0x8100 Length: 62

802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S [tcp sum ok] 3249840142:3249840142(0) win 4128 <mss 536> [tos 0xc0] (ttl 255, id 14509)

4: 09:03:05.176870 4c4e.35fc.fcd8 00be.75f6.1dae 0x8100 Length: 62

802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S [tcp sum ok] 3249840142:3249840142(0) win 4128 <mss 536> [tos 0xc0] (ttl 254, id 14509)

4 packets shown

返回的資料包跟蹤顯示由於全域性路由表查詢而重定向到OUTSIDE2介面：

firepower# show capture CAPO1 packet-number 2 trace

4 packets captured

2: 09:03:02.774557 802.1Q vlan#203 P0 192.168.1.1.32134 > 198.51.100.1.23: S 3249840142:3249840142(0) win 4128 <mss 536>

...

Phase: 3

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Elapsed time: 7136 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

...

Phase: 10

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Elapsed time: 12488 ns

Config:

Additional Information:

New flow created with id 13156, packet dispatched to next module

...

Phase: 13

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 3568 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 14

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 1338 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 192.0.2.99 on interface OUTSIDE2

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 0 reference 1

...

Result:

input-interface: OUTSIDE1(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE2(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 111946 ns

1 packet shown

firepower#

ISP2路由器傳送應答(SYN/ACK)，但此資料包被重定向到ISP1，因為它與建立的連線匹配。由於ASP輸出表中沒有第2層鄰接關係，FTD捨棄該封包：

firepower# show capture CAPO2 packet-number 2 trace

5 packets captured

2: 09:03:02.775457 802.1Q vlan#202 P0 198.51.100.1.23 > 192.168.1.1.32134: S 4075003210:4075003210(0) ack 194652173 win 4128 <mss 536>

...

Phase: 3

Type: FLOW-LOOKUP

Subtype:

Result: ALLOW

Elapsed time: 2230 ns

Config:

Additional Information:

Found flow with id 13156, using existing flow

...

Phase: 7

Type: SUBOPTIMAL-LOOKUP

Subtype: suboptimal next-hop

Result: ALLOW

Elapsed time: 0 ns

Config:

Additional Information:

Input route lookup returned ifc INSIDE is not same as existing ifc OUTSIDE1

Result:

input-interface: OUTSIDE2(vrfid:0)

input-status: up

input-line-status: up

output-interface: INSIDE(vrfid:0)

output-status: up

output-line-status: up

Action: drop

Time Taken: 52628 ns

Drop-reason: (no-adjacency) No valid adjacency, Drop-location: frame 0x00005577204a7287 flow (NA)/NA

案例3 — 根據原則型路由(PBR)轉送

在連線流查詢和目標NAT查詢之後，PBR是可能影響輸出介面確定的下一項。PBR記錄在： Policy Based Routing(基於策略的路由)

對於FMC上的PBR配置，務必注意以下准則：

FlexConfig用於在FMC中為低於7.1的FTD版本設定PBR。您仍然可以使用FlexConfig在所有版本中配置PBR。但是，對於入口介面，不能同時使用FlexConfig和FMC的Policy Based Routing頁面配置PBR。

在本案例研究中，FTD具有指向198.51.100.0/24的路由，該路由指向ISP2:

firepower# show route | begin Gate

Gateway of last resort is not set

C 192.0.2.0 255.255.255.0 is directly connected, OUTSIDE2

L 192.0.2.1 255.255.255.255 is directly connected, OUTSIDE2

C 192.168.0.0 255.255.255.0 is directly connected, INSIDE

L 192.168.0.1 255.255.255.255 is directly connected, INSIDE

O 192.168.1.1 255.255.255.255 [110/11] via 192.168.0.99, 5d01h, INSIDE

O 192.168.2.1 255.255.255.255 [110/11] via 192.168.0.99, 5d01h, INSIDE

S 198.51.100.0 255.255.255.248 [1/0] via 192.0.2.99, OUTSIDE2

D 198.51.100.8 255.255.255.248

[90/130816] via 192.0.2.99, 5d01h, OUTSIDE2

D 198.51.100.16 255.255.255.248

[90/130816] via 192.0.2.99, 5d01h, OUTSIDE2

B 198.51.100.24 255.255.255.248 [20/0] via 203.0.113.99, 5d00h

B 198.51.100.32 255.255.255.248 [20/0] via 203.0.113.99, 5d00h

C 203.0.113.0 255.255.255.0 is directly connected, OUTSIDE1

L 203.0.113.1 255.255.255.255 is directly connected, OUTSIDE1

需求

使用以下特徵配置PBR策略：

- 從IP 192.168.2.0/24發往198.51.100.5的流量必須傳送到ISP1（下一跳203.0.113.99），而其它源必須使用OUTSIDE2介面。

解決方案

在7.1之前的版本中，要配置PBR:

1.建立與感興趣的流量（例如PBR_ACL）匹配的擴展ACL。

2.建立與步驟1中建立的ACL匹配的路由對映，然後設定所需的下一跳。

3.使用步驟2中建立的路由對映建立一個FlexConfig對象，以在入口介面上啟用PBR。

在7.1以前的版本中，可以使用7.1以前版本的方法配置PBR，也可以使用Device > Routing部分下的新的基於策略的路由選項：

1.建立與感興趣的流量（例如PBR_ACL）匹配的擴展ACL。

2.新增PBR策略並指定：

a.匹配的流量

b.輸入介面

c.下一跳

配置PBR（新方式）

第1步 — 為匹配流量定義訪問清單。

第2步 — 新增PBR策略

導覽至Devices > Device Management，然後編輯FTD裝置。選擇Routing > Policy Based Routing，然後在Policy Based Routing頁面上選擇Add。

指定輸入介面：

指定轉發操作：

儲存和部署

注意：如果要配置多個輸出介面，必須在「傳送到」欄位中設定「輸出介面」選項（從7.0+版可用）。有關更多詳細資訊，請檢查：基於策略的路由的配置示例

配置PBR（傳統方式）

第1步 — 為匹配流量定義訪問清單。

第2步 — 定義與ACL匹配的路由對映並設定下一跳。

首先，定義Match子句：

定義Set子句：

新增並儲存。

第3步 — 配置FlexConfig PBR對象。

首先，複製（複製）現有的PBR對象：

指定對象名稱並刪除預定義的路由對映對象：

指定新的路由對映：

這就是最終結果：

第4步 — 將PBR對象新增到FTD FlexConfig策略。

儲存並選擇預覽配置：

最後，部署策略。

注意：不能使用FlexConfig和FMC UI為同一入口介面配置PBR。

有關PBR SLA配置，請查閱以下文檔：為FMC管理的FTD上的雙ISP配置PBR（使用IP SLA配置）

PBR驗證

輸入介面驗證：

firepower# show run interface Po1.101

!

interface Port-channel1.101

vlan 101

nameif INSIDE

cts manual

propagate sgt preserve-untag

policy static sgt disabled trusted

security-level 0

ip address 192.168.0.1 255.255.255.0

policy-route route-map FMC_GENERATED_PBR_1649228271478

ospf authentication null

路由對映驗證：

firepower# show run route-map

!

route-map FMC_GENERATED_PBR_1649228271478 permit 5

match ip address ACL_PBR

set ip next-hop 203.0.113.99

firepower# show route-map

route-map FMC_GENERATED_PBR_1649228271478, permit, sequence 5

Match clauses:

ip address (access-lists): ACL_PBR

Set clauses:

adaptive-interface cost OUTSIDE1 (0)

策略路由驗證：

firepower# show policy-route

Interface Route map

Port-channel1.101 FMC_GENERATED_PBR_1649228271478

更改前後Packet Tracer:

不使用PBR

使用PBR

firepower# packet-tracer input INSIDE tcp 192.168.2.100 1111 198.51.100.5 23

....

Phase: 3

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Elapsed time: 11596 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

...

Phase: 13

Type: INPUT-ROUTE-LOOKUP-FROM-OUTPUT-ROUTE-LOOKUP

Subtype: Resolve Preferred Egress interface

Result: ALLOW

Elapsed time: 6244 ns

Config:

Additional Information:

Found next-hop 192.0.2.99 using egress ifc OUTSIDE2(vrfid:0)

Phase: 14

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 2230 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 192.0.2.99 on interface OUTSIDE2

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 0 reference 1

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE2(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 272058 ns

firepower# packet-tracer input INSIDE tcp 192.168.2.100 1111 198.51.100.5 23

...

Phase: 3

Type: SUBOPTIMAL-LOOKUP

Subtype: suboptimal next-hop

Result: ALLOW

Elapsed time: 39694 ns

Config:

Additional Information:

Input route lookup returned ifc OUTSIDE2 is not same as existing ifc OUTSIDE1

Phase: 4

Type: ECMP load balancing

Subtype:

Result: ALLOW

Elapsed time: 2230 ns

Config:

Additional Information:

ECMP load balancing

Found next-hop 203.0.113.99 using egress ifc OUTSIDE1(vrfid:0)

Phase: 5

Type: PBR-LOOKUP

Subtype: policy-route

Result: ALLOW

Elapsed time: 446 ns

Config:

route-map FMC_GENERATED_PBR_1649228271478 permit 5

match ip address ACL_PBR

set adaptive-interface cost OUTSIDE1

Additional Information:

Matched route-map FMC_GENERATED_PBR_1649228271478, sequence 5, permit

Found next-hop 203.0.113.99 using egress ifc OUTSIDE1

...

Phase: 15

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 5352 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 203.0.113.99 on interface OUTSIDE1

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 284 reference 2

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE1(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 825100 ns

使用實際流量進行測試

使用跟蹤配置資料包捕獲：

firepower# capture CAPI trace interface INSIDE match ip host 192.168.2.1 host 198.51.100.5

firepower# capture CAPO1 trace interface OUTSIDE1 match ip host 192.168.2.1 host 198.51.100.5

firepower# capture CAPO2 trace interface OUTSIDE2 match ip host 192.168.2.1 host 198.51.100.5

Router1# telnet 198.51.100.5 /vrf VRF-101 /source-interface lo2

Trying 198.51.100.5 ... Open

捕獲顯示：

firepower# show capture

capture CAPI type raw-data trace interface INSIDE [Capturing - 4389 bytes]

match ip host 192.168.2.1 host 198.51.100.5

capture CAPO1 type raw-data trace interface OUTSIDE1 [Capturing - 4389 bytes]

match ip host 192.168.2.1 host 198.51.100.5

capture CAPO2 type raw-data trace interface OUTSIDE2 [Capturing - 0 bytes]

match ip host 192.168.2.1 host 198.51.100.5

TCP SYN封包的追蹤軌跡：

firepower# show capture CAPI packet-number 1 trace

44 packets captured

1: 13:26:38.485585 802.1Q vlan#101 P0 192.168.2.1.49032 > 198.51.100.5.23: S 571152066:571152066(0) win 4128 <mss 536>

...

Phase: 3

Type: SUBOPTIMAL-LOOKUP

Subtype: suboptimal next-hop

Result: ALLOW

Elapsed time: 13826 ns

Config:

Additional Information:

Input route lookup returned ifc OUTSIDE2 is not same as existing ifc OUTSIDE1

Phase: 4

Type: ECMP load balancing

Subtype:

Result: ALLOW

Elapsed time: 1784 ns

Config:

Additional Information:

ECMP load balancing

Found next-hop 203.0.113.99 using egress ifc OUTSIDE1(vrfid:0)

Phase: 5

Type: PBR-LOOKUP

Subtype: policy-route

Result: ALLOW

Elapsed time: 446 ns

Config:

route-map FMC_GENERATED_PBR_1649228271478 permit 5

match ip address ACL_PBR

set adaptive-interface cost OUTSIDE1

Additional Information:

Matched route-map FMC_GENERATED_PBR_1649228271478, sequence 5, permit

Found next-hop 203.0.113.99 using egress ifc OUTSIDE1

...

Phase: 15

Type: ADJACENCY-LOOKUP

Subtype: Resolve Nexthop IP address to MAC

Result: ALLOW

Elapsed time: 4906 ns

Config:

Additional Information:

Found adjacency entry for Next-hop 203.0.113.99 on interface OUTSIDE1

Adjacency :Active

MAC address 4c4e.35fc.fcd8 hits 348 reference 2

...

Result:

input-interface: INSIDE(vrfid:0)

input-status: up

input-line-status: up

output-interface: OUTSIDE1(vrfid:0)

output-status: up

output-line-status: up

Action: allow

Time Taken: 222106 ns

ASP PBR表顯示策略命中計數：

firepower# show asp table classify domain pbr

Input Table

in id=0x1505f26d3420, priority=2147483642, domain=pbr, deny=false

hits=7, user_data=0x1505f26e7590, cs_id=0x0, use_real_addr, flags=0x0, protocol=0

src ip/id=192.168.2.0, mask=255.255.255.0, port=0, tag=any

dst ip/id=198.51.100.5, mask=255.255.255.255, port=0, tag=any, dscp=0x0, nsg_id=none

input_ifc=INSIDE(vrfid:0), output_ifc=any

Output Table:

L2 - Output Table:

L2 - Input Table:

Last clearing of hits counters: Never

注意：Packet Tracer還會增加命中計數器。

PBR偵錯

警告：在生產環境中，調試可以生成大量消息。

啟用此調試：

firepower# debug policy-route

debug policy-route enabled at level 1

傳送實際流量：

Router1# telnet 198.51.100.5 /vrf VRF-101 /source-interface lo2

Trying 198.51.100.5 ... Open

偵錯顯示：

firepower#

pbr: policy based route lookup called for 192.168.2.1/37256 to 198.51.100.5/23 proto 6 sub_proto 0 received on interface INSIDE, NSGs, nsg_id=none

pbr: First matching rule from ACL(2)

pbr: route map FMC_GENERATED_PBR_1649228271478, sequence 5, permit; proceed with policy routing

pbr: policy based routing applied; egress_ifc = OUTSIDE1 : next_hop = 203.0.113.99

注意：Packet Tracer還會生成調試輸出。

此流程圖可用於對PBR進行故障排除：

PBR命令摘要

要驗證配置：

show run route-map

show run interface

如果SLA監控器也與PBR一起使用：

show run sla monitor

show run track

要驗證操作：

show route-map

packet-tracer

capture w/trace (for example, capture CAPI interface INSIDE trace match ip host 192.168.0.1 host 203.0.113.50)

ASP drop capture (for example, capture ASP type asp-drop all)

show asp table classify domain pbr

show log

show arp

如果SLA監控器也與PBR一起使用：

show sla monitor operational-state

show sla monitor configuration

show track

調試PBR:

debug policy-route

show asp drop

案例4 — 基於全域性路由查詢的轉發

在連線查詢、NAT查詢和PBR之後，最後檢查以確定輸出介面的專案是全域性路由表。

路由表驗證

現在來檢查FTD路由表輸出：

路由過程的主要目標是找到下一跳。路由選擇順序如下：

1. 最長的匹配獲勝

2. 最小AD（在不同的路由協定源之間）

3. 最低度量（如果路由是從同一源獲知的 — 路由協定）

路由表的填充方式：

- IGP(R、D、EX、O、IA、N1、N2、E1、E2、i、su、L1、L2、ia、o)

- BGP(B)

- BGP InterVRF(BI)

— 靜態

— 靜態InterVRF(SI)

— 已連線(C)

— 本地IP(L)

- VPN(V)

— 重新分發

— 預設

要檢視路由表摘要，請使用以下命令：

firepower# show route summary

IP routing table maximum-paths is 8

Route Source   Networks Subnets Replicates Overhead Memory (bytes)

connected      0        8       0          704      2368

static         0        1       0          88       296

ospf 1         0        2       0          176      600

Intra-area: 2 Inter-area: 0 External-1: 0 External-2: 0

NSSA External-1: 0 NSSA External-2: 0

bgp 65000      0        2       0          176      592

External: 2 Internal: 0 Local: 0

eigrp 1        0        2       0          216      592

internal       7                                    3112

Total          7        15      0          1360     7560

您可以使用以下命令跟蹤路由表更新：

firepower# debug ip routing

IP routing debugging is on

例如，從全域性路由表中刪除OSPF路由192.168.1.0/24時，調試會顯示以下內容：

firepower#

RT: ip_route_delete 192.168.1.0 255.255.255.0 via 192.0.2.99, INSIDE

ha_cluster_synced 0 routetype 0

RT: del 192.168.1.0 via 192.0.2.99, ospf metric [110/11]NP-route: Delete-Output 192.168.1.0/24 hop_count:1 , via 0.0.0.0, INSIDE

RT: delete network route to 192.168.1.0 255.255.255.0NP-route: Delete-Output 192.168.1.0/24 hop_count:1 , via 0.0.0.0, INSIDE

NP-route: Delete-Input 192.168.1.0/24 hop_count:1 Distance:110 Flags:0X0 , via 0.0.0.0, INSIDE

新增回時：

firepower#

RT: NP-route: Add-Output 192.168.1.0/24 hop_count:1 , via 192.0.2.99, INSIDE

NP-route: Add-Input 192.168.1.0/24 hop_count:1 Distance:110 Flags:0X0 , via 192.0.2.99, INSIDE

Null0介面

Null0介面可用於丟棄不需要的流量。此捨棄比使用存取控制原則(ACL)規則的流量捨棄對效能的影響較小。

需求

為198.51.100.4/32主機配置Null0路由。

解決方案

儲存並部署。

驗證：

firepower# show run route

route OUTSIDE2 198.51.100.0 255.255.255.248 192.0.2.99 1

route OUTSIDE1 198.51.100.0 255.255.255.248 203.0.113.99 200

route Null0 198.51.100.4 255.255.255.255 1

firepower# show route | include 198.51.100.4

S 198.51.100.4 255.255.255.255 [1/0] is directly connected, Null0

嘗試訪問遠端主機：

Router1# ping vrf VRF-101 198.51.100.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 198.51.100.4, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

FTD 記錄顯示：

firepower# show log | include 198.51.100.4

Apr 12 2022 12:35:28: %FTD-6-110002: Failed to locate egress interface for ICMP from INSIDE:192.168.0.99/0 to 198.51.100.4/0

ASP丟棄顯示：

firepower# show asp drop

Frame drop:

No route to host (no-route)                1920

等價多重路徑(ECMP)

流量區域

- ECMP流量區域允許使用者將介面組合在一起（稱為ECMP區域）。

- 這允許ECMP路由以及跨多個介面的流量負載均衡。

- 當介面與ECMP Traffic Zone關聯時，使用者能夠在介面上建立等價靜態路由。等價靜態路由是到具有相同度量值的同一目標網路的路由。

在7.1版本之前，Firepower威脅防禦支持通過FlexConfig策略的ECMP路由。從7.1版本起，您可以將介面分組到流量區域，並在Firepower管理中心中配置ECMP路由。

EMCP記錄在：ECMP

在本範例中，發生非對稱路由，且傳回流量遭捨棄：

firepower# show log

Apr 13 2022 07:20:48: %FTD-6-302013: Built inbound TCP connection 4046 for INSIDE:192.168.1.1/23943 (192.168.1.1/23943) to OUTSIDE1:198.51.100.100/23 (198.51.100.100/23)

Apr 13 2022 07:20:48: %FTD-6-106015: Deny TCP (no connection) from 198.51.100.100/23 to 192.168.1.1/23943 flags SYN ACK on interface OUTSIDE2

從FMC UI配置ECMP:

在ECMP組中新增2個介面：

結果是：

儲存並部署。

ECMP區域驗證：

firepower# show run zone

zone ECMP_OUTSIDE ecmp

firepower# show zone

Zone: ECMP_OUTSIDE ecmp

Security-level: 0

Zone member(s): 2

OUTSIDE1 Port-channel1.203

OUTSIDE2 Port-channel1.202

介面驗證：

firepower# show run int po1.202

!

interface Port-channel1.202

vlan 202

nameif OUTSIDE2

cts manual

propagate sgt preserve-untag

policy static sgt disabled trusted

security-level 0

zone-member ECMP_OUTSIDE

ip address 192.0.2.1 255.255.255.0

firepower# show run int po1.203

!

interface Port-channel1.203

vlan 203

nameif OUTSIDE1

cts manual

propagate sgt preserve-untag

policy static sgt disabled trusted

security-level 0

zone-member ECMP_OUTSIDE

ip address 203.0.113.1 255.255.255.0

現在，允許傳回流量，且連線為UP:

Router1# telnet 198.51.100.100 /vrf VRF-101 /source-interface lo1

Trying 198.51.100.100 ... Open

Capture on ISP1 interface（ISP1介面上的捕獲）顯示輸出流量：

firepower# show capture CAP1

5 packets captured

1: 10:03:52.620115 802.1Q vlan#203 P0 192.168.1.1.56199 > 198.51.100.100.23: S 1782458734:1782458734(0) win 4128 <mss 536>

2: 10:03:52.621992 802.1Q vlan#203 P0 192.168.1.1.56199 > 198.51.100.100.23: . ack 2000807246 win 4128

3: 10:03:52.622114 802.1Q vlan#203 P0 192.168.1.1.56199 > 198.51.100.100.23: . ack 2000807246 win 4128

4: 10:03:52.622465 802.1Q vlan#203 P0 192.168.1.1.56199 > 198.51.100.100.23: P 1782458735:1782458753(18) ack 2000807246 win 4128

5: 10:03:52.622556 802.1Q vlan#203 P0 192.168.1.1.56199 > 198.51.100.100.23: . ack 2000807246 win 4128

ISP2介面上的捕獲顯示返回流量：

firepower# show capture CAP2

6 packets captured

1: 10:03:52.621305 802.1Q vlan#202 P0 198.51.100.100.23 > 192.168.1.1.56199: S 2000807245:2000807245(0) ack 1782458735 win 64240 <mss 1460>

3: 10:03:52.623808 802.1Q vlan#202 P0 198.51.100.100.23 > 192.168.1.1.56199: . ack 1782458753 win 64222

FTD管理平面

FTD有2個管理平面：

- Management0介面 — 提供對Firepower子系統的訪問

- LINA診斷介面 — 提供對FTD LINA子系統的存取許可權

要配置和驗證Management0介面，請分別使用configure network和show network命令。

另一方面，LINA介面提供對LINA本身的存取。FTD RIB中的FTD介面專案可以視為本機路由：

firepower# show route | include L

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

L 192.0.2.1 255.255.255.255 is directly connected, OUTSIDE2

L 192.168.0.1 255.255.255.255 is directly connected, INSIDE

L 203.0.113.1 255.255.255.255 is directly connected, OUTSIDE1

同樣，它們也可以被視為ASP路由表中的身份條目：

firepower# show asp table routing | include identity

in 169.254.1.1 255.255.255.255 identity

in 192.0.2.1 255.255.255.255 identity

in 203.0.113.1 255.255.255.255 identity

in 192.168.0.1 255.255.255.255 identity

in ff02::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in ff02::1:ff01:3 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in ff02::1:ff00:1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in fe80::200:ff:fe01:3 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

in fd00:0:0:1::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff identity

out 0.0.0.0 0.0.0.0 via 0.0.0.0, identity

out :: :: via 0.0.0.0, identity

要點

當封包到達FTD時，且目的地IP與其中一種身分IP相符時，FTD知道必須使用該封包。

FTD LINA診斷介面路由

FTD（與執行9.5後代碼的ASA類似）為配置為僅管理的任何介面維護類似VRF的路由表。診斷介面就是一個此類介面的示例。

雖然FMC不允許您（不帶ECMP）使用相同的度量在2個不同介面上配置2條預設路由，但是您可以在FTD資料介面上配置1條預設路由，並在診斷介面上配置另一條預設路由：

資料平面流量使用全域性表預設網關，而管理平面流量使用診斷預設GW:

firepower# show route management-only

Routing Table: mgmt-only

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, V - VPN

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, + - replicated route

SI - Static InterVRF, BI - BGP InterVRF

Gateway of last resort is 10.62.148.1 to network 0.0.0.0

S* 0.0.0.0 0.0.0.0 [1/0] via 10.62.148.1, diagnostic

全域性路由表網關：

firepower# show route | include S\*|Gateway

Gateway of last resort is 203.0.113.99 to network 0.0.0.0

S* 0.0.0.0 0.0.0.0 [1/0] via 203.0.113.99, OUTSIDE1

當您從FTD傳送流量（框內流量）時，會根據以下條件選擇輸出介面：

1. 全域性路由表

2. 僅管理路由表

如果手動指定輸出介面，可以覆寫輸出介面選項。

嘗試ping診斷介面網關。如果不指定來源介面，ping就會失敗，因為FTD首先使用全域路由表，此全域路由表包含預設路由。如果全域性表中沒有路由，FTD會在僅管理路由表上執行路由查詢：

firepower# ping 10.62.148.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.62.148.1, timeout is 2 seconds:

?????

Success rate is 0 percent (0/5)

firepower# show capture CAP1 | include 10.62.148.1

1: 10:31:22.970607 802.1Q vlan#203 P0 203.0.113.1 > 10.62.148.1 icmp: echo request

2: 10:31:22.971431 802.1Q vlan#203 P0 10.1.1.2 > 203.0.113.1 icmp: host 10.62.148.1 unreachable

firepower# ping diagnostic 10.62.148.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.62.148.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

這同樣適用於嘗試使用copy指令從LINA CLI複製檔案的情況。

雙向轉送偵測(BFD)

在傳統ASA 9.6版上新增了BFD支援，並且僅對BGP協定：雙向轉發檢測路由

在FTD上：

- 支援BGP IPv4和BGP IPv6協定（軟體6.4）。

- 不支援OSPFv2、OSPFv3和EIGRP協定。

- 不支援靜態路由的BFD。

虛擬路由器(VRF)

6.6版本中新增了VRF支援。有關詳細資訊，請檢視以下文檔：虛擬路由器的配置示例

相關資訊

- FTD靜態路由和預設路由