소개
이 문서에서는 Nexus 9300(EX-FX-GX) 모델에서 QoS over tunnel GRE를 구성하고 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- 하드웨어: N9K-C9336C-FX2
- 버전: 9.3(8)
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
GRE(Generic Routing Encapsulation)를 다양한 승객 프로토콜에 대한 캐리어 프로토콜로 사용할 수 있습니다.
그림에서 GRE 터널의 IP 터널 구성 요소를 확인할 수 있습니다. 원래 승객 프로토콜 패킷이 GRE 페이로드가 되고 디바이스는 패킷에 GRE 헤더를 추가합니다.
그런 다음 디바이스는 전송 프로토콜 헤더를 패킷에 추가하여 전송합니다.
트래픽은 분류 방법과 트래픽 클래스에 생성 및 적용하는 정책에 따라 처리됩니다.
QoS 기능을 구성하려면 다음 단계를 수행합니다.
-
IP 주소 또는 QoS 필드와 같은 기준과 일치하는 Nexus로 인그레스 패킷을 분류하는 클래스가 생성됩니다.
-
감시, 표시 또는 패킷 삭제와 같이 트래픽 클래스에 대해 수행할 작업을 지정하는 정책을 생성합니다.
-
포트, 포트 채널, VLAN 또는 하위 인터페이스에 정책을 적용합니다.
일반적으로 사용되는 DSCP 값
네트워크 다이어그램
구성
QoS over tunnel GRE의 컨피그레이션 목표는 특정 VLAN의 트래픽이 N9K-EX1과 N9K-EX2 사이의 GRE 터널을 통과하도록 DSCP를 설정하는 것입니다.
Nexus는 트래픽을 캡슐화하고 DSCP 값에 대해 VLAN에서 수행했던 것처럼 QoS 마킹을 손실하지 않고 터널 GRE에서 전송합니다. 이 경우 VLAN 9에는 DSCP AF-11 값이 사용됩니다.
호스트 A
interface Ethernet1/3
switchport
switchport access vlan 9
no shutdown
interface Vlan9
no shutdown
ip address 192.168.9.9/24
호스트 B
interface Ethernet1/3
switchport
switchport access vlan 18
no shutdown
interface Vlan18
no shutdown
ip address 192.168.18.18/24
N9K-EX1 인터페이스 컨피그레이션
interface Ethernet1/1
ip address 10.10.10.1/30
no shutdown
interface Ethernet1/3
switchport
switchport access vlan 9
no shutdown
interface Tunnel1
ip address 172.16.1.1/30
tunnel source Ethernet1/1
tunnel destination 10.10.10.2
no shutdown
interface Vlan9
no shutdown
ip address 192.168.9.1/24
N9K-EX1 라우팅 컨피그레이션
ip route 0.0.0.0/0 Tunnel
N9K-EX1 QoS 컨피그레이션
NXOS의 GRE 터널 인터페이스에서는 QoS가 지원되지 않으므로 VLAN 컨피그레이션에서 서비스 정책을 구성하고 적용해야 합니다. 보시다시피, 먼저 소스 및 대상과 일치하도록 ACL을 생성한 다음 원하는 DSCP로 QoS 컨피그레이션을 설정하고, 마지막으로 서비스 정책 및 VLAN 컨피그레이션을 사용합니다.
ip access-list TAC-QoS-GRE
10 permit ip any 192.168.18.0/24
class-map type qos match-all CM-TAC-QoS-GRE
match access-group name TAC-QoS-GRE
policy-map type qos PM-TAC-QoS-GRE
class CM-TAC-QoS-GRE
set dscp 10
vlan configuration 9
service-policy type qos input PM-TAC-QoS-GRE
N9K-EX2 인터페이스 컨피그레이션
interface Ethernet1/1
ip address 10.10.10.2/30
no shutdown
interface Ethernet1/3
switchport
switchport access vlan 18
no shutdown
interface Tunnel1
ip address 172.16.1.2/30
tunnel source Ethernet1/1
tunnel destination 10.10.10.1
no shutdown
interface Vlan18
no shutdown
ip address 192.168.18.1/24
N9K-EX2 라우팅 컨피그레이션
ip route 0.0.0.0/0 Tunnel
문제 해결
터널 확인
두 명령 모두:
- show ip interface brief
- show interface tunnel 1 brief
터널이 작동 중인지 여부를 표시합니다.
N9K-EX1# show ip interface brief
IP Interface Status for VRF "default"(1)
Interface IP Address Interface Status
Vlan9 192.168.9.1 protocol-up/link-up/admin-up
Tunnel1 172.16.1.1 protocol-up/link-up/admin-up
Eth1/1 10.10.10.1 protocol-up/link-up/admin-up
N9K-EX1# show interface tunnel 1 brief
--------------------------------------------------------------------------------
---------------------------
Interface Status IP Address
Encap type MTU
--------------------------------------------------------------------------------
---------------------------
Tunnel1 up 172.16.1.1/30
GRE/IP 1476
두 명령 모두
- show interface tunnel 1
- show interface tunnel 1 counters
수신 및 전송 패킷과 같은 유사한 정보를 표시합니다.
N9K-EX1# show interface tunnel 1
Tunnel1 is up
Admin State: up
Internet address is 172.16.1.1/30
MTU 1476 bytes, BW 9 Kbit
Tunnel protocol/transport GRE/IP
Tunnel source 10.10.10.1 (Ethernet1/1), destination 10.10.10.2
Transport protocol is in VRF "default"
Tunnel interface is in VRF "default"
Last clearing of "show interface" counters never
Tx
3647 packets output, 459522 bytes
Rx
3647 packets input, 459522 bytes
N9K-EX1# show interface tunnel 1 counters
--------------------------------------------------------------------------------
--
Port InOctets InUcastPk
ts
--------------------------------------------------------------------------------
--
Tunnel1 459522 36
47
--------------------------------------------------------------------------------
--
Port InMcastPkts InBcastPk
ts
--------------------------------------------------------------------------------
--
Tunnel1 --
--
--------------------------------------------------------------------------------
--
Port OutOctets OutUcastPk
ts
--------------------------------------------------------------------------------
--
Tunnel1 459522 36
47
--------------------------------------------------------------------------------
--
Port OutMcastPkts OutBcastPk
ts
--------------------------------------------------------------------------------
--
Tunnel1 --
--
N9K-EX1#
트래픽 캡처
SPAN 캡처
이 그림에서는 N9K-EX1 스위치의 Interface Ethernet 1/3 항목에서 ARP 요청의 캡처를 보여 줍니다. 캡처는 스위치의 입력에 있으므로 아직 사용할 DSCP(AF11)로 트래픽이 표시되지 않은 것을 확인할 수 있습니다.
이 그림에서는 N9K-EX2 스위치의 Interface Ethernet 1/1 항목에서 ARP 요청의 캡처를 보여 줍니다. 트래픽에 이미 사용해야 하는 DSCP AF11 값이 있는 것을 확인할 수 있습니다. 두 Nexus 간에 구성된 터널에서 패킷이 캡슐화된다는 사실도 알 수 있습니다.
이 그림에서는 N9K-EX1 스위치의 인터페이스 Ethernet 1/3 출력에서 ARP 회신을 캡처한 것을 보여 줍니다. 트래픽에 사용해야 하는 DSCP AF11 값이 남아 있는 것을 확인할 수 있습니다. 두 Nexus 간에 구성된 터널에서 패킷이 캡슐화되지 않음도 알 수 있습니다.
이 그림에서는 N9K-EX2 스위치의 인터페이스 이더넷 1/1 출력에서 ARP 회신을 캡처한 것을 보여 줍니다. 트래픽에 사용해야 하는 DSCP AF11 값이 남아 있는 것을 확인할 수 있습니다. 두 Nexus 간에 구성된 터널에서 패킷이 캡슐화된다는 사실도 알 수 있습니다.
Nexus는 물리적 IP를 사용하므로 패킷 캡처에는 캡슐화를 위한 터널 IP가 표시되지 않습니다. 이는 GRE 터널링을 사용할 때 Nexus가 물리적 ips를 사용하여 패키지를 라우팅하기 때문에 자연스러운 동작입니다.
ELAM 캡처
N9KEX-2에서 ELAM 캡처를 in-select 9와 함께 사용하여 외부 l3 및 내부 l3 헤더를 볼 수 있습니다. 소스 및 대상 IP를 기준으로 필터링해야 합니다.
debug platform internal tah elam
trigger init in-select 9
reset
set inner ipv4 src_ip 192.168.9.9 dst_ip 192.168.18.18
start
report
Nexus가 인터페이스 1/1을 통해 패킷을 수신하는지 확인할 수 있습니다. 또한 외부 l3 헤더는 직접 연결된 인터페이스의 물리적 IP 주소이고 l3 내부 헤더에는 호스트 A 및 호스트 B의 IP가 있습니다.
SUGARBOWL ELAM REPORT SUMMARY
slot - 3, asic - 1, slice - 0
============================
Incoming Interface: Eth1/1
Src Idx : 0x41, Src BD : 4433
Outgoing Interface Info: dmod 2, dpid 10
Dst Idx : 0x3, Dst BD : 18
Packet Type: IPv4
Outer Dst IPv4 address: 10.10.10.2
Outer Src IPv4 address: 10.10.10.1
Ver = 4, DSCP = 10, Don't Fragment = 0
Proto = 47, TTL = 255, More Fragments = 0
Hdr len = 20, Pkt len = 108, Checksum = 0x3d7a
Inner Payload
Type: IPv4
Inner Dst IPv4 address: 192.168.18.18
Inner Src IPv4 address: 192.168.9.9
L4 Protocol : 47
L4 info not available
Drop Info:
----------
LUA:
LUB:
LUC:
LUD:
Final Drops:
QoS 트러블슈팅
그림과 같이 QoS 컨피그레이션을 확인할 수 있습니다.
N9K-EX1# show running-config ipqos
!Command: show running-config ipqos
!Running configuration last done at: Thu Apr 4 11:45:37 2024
!Time: Fri Apr 5 11:50:54 2024
version 9.3(8) Bios:version 08.39
class-map type qos match-all CM-TAC-QoS-GRE
match access-group name TAC-QoS-GRE
policy-map type qos PM-TAC-QoS-GRE
class CM-TAC-QoS-GRE
set dscp 10
vlan configuration 9
service-policy type qos input PM-TAC-QoS-GRE
지정된 VLAN에 구성된 QoS 정책 및 정책 맵과 연결된 ACL과 일치하는 패킷도 표시할 수 있습니다.
N9K-EX1# show policy-map vlan 9
Global statistics status : enabled
Vlan 9
Service-policy (qos) input: PM-TAC-QoS-GRE
SNMP Policy Index: 285219173
Class-map (qos): CM-TAC-QoS-GRE (match-all)
Slot 1
5 packets
Aggregate forwarded :
5 packets
Match: access-group TAC-QoS-GRE
set dscp 10
여기에 표시된 명령을 사용하여 QoS 통계를 지울 수도 있습니다.
N9K-EX1# clear qos statistics
소프트웨어에서 프로그래밍된 ACL을 확인합니다.
N9K-EX1# show system internal access-list vlan 9 input entries detail
slot 1
=======
Flags: F - Fragment entry E - Port Expansion
D - DSCP Expansion M - ACL Expansion
T - Cross Feature Merge Expansion
N - NS Transit B - BCM Expansion C - COPP
INSTANCE 0x2
---------------
Tcam 1 resource usage:
----------------------
LBL B = 0x1
Bank 2
------
IPv4 Class
Policies: QoS
Netflow profile: 0
Netflow deny profile: 0
Entries:
[Index] Entry [Stats]
---------------------
[0x0000:0x0000:0x0700] permit ip 0.0.0.0/0 192.168.18.0/24 [5]
하드웨어에서 프로그래밍된 ACL을 확인합니다.
N9K-EX1# show hardware access-list vlan 9 input entries detail
slot 1
=======
Flags: F - Fragment entry E - Port Expansion
D - DSCP Expansion M - ACL Expansion
T - Cross Feature Merge Expansion
N - NS Transit B - BCM Expansion C - COPP
INSTANCE 0x2
---------------
Tcam 1 resource usage:
----------------------
LBL B = 0x1
Bank 2
------
IPv4 Class
Policies: QoS
Netflow profile: 0
Netflow deny profile: 0
Entries:
[Index] Entry [Stats]
---------------------
[0x0000:0x0000:0x0700] permit ip 0.0.0.0/0 192.168.18.0/24 [5]
여기에 표시된 명령을 사용하여 VLAN을 사용 중인 포트를 확인할 수 있습니다. 이 예에서는 VLAN ID 9이며 사용 중인 QoS 정책을 확인할 수도 있습니다.
N9K-EX1# show system internal ipqos vlan-tbl 9
Vlan range asked: 9 - 9
=================================================
Vlan: 9, pointer: 0x132e3eb4, Node Type: VLAN
IfIndex array:
alloc count: 5, valid count: 1, array ptr : 0x13517aac 0: IfI
ndex: 0x1a000400 (Ethernet1/3) Policy Lists (1): Flags: 01
Type: INP QOS, Name: PM-TAC-QoS-GRE, Ghost Id: 0x45001c7, Real Id: 0x450
01c8
Defnode Id: 0x45001c9
=================================================
N9K-EX1#