De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft de implicaties van het hebben van maximale segmentgrootte (MSS) aanpassing en statische routes die wijzen naar Null 0 op Catalyst 9K.
Cisco raadt u aan kennis te hebben van deze onderwerpen:
Dit document is van toepassing op alle Catalyst 9K-platforms waarop Cisco IOS® XE 17.3.x en hoger wordt uitgevoerd.
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
De opstelling bestaat uit C9000-switches met een verkeersgenerator om het probleem te reproduceren. Inbegrepen testen voor verdere isolatie:
Voorwaarde 1: Zonder 'Null0' of 'MSS-aanpassen'
Toestand 2: met een statische route die naar Null0 wijst, geen MSS-aanpassing
Conditie 3: zowel Null0 als MSS aanpassen ingeschakeld
Op basis van de beschreven omstandigheden kunt u intermitterende connectiviteit waarnemen met direct verbonden Border Gateway Protocol (BGP)-peers en met SVI's die op hetzelfde apparaat of op direct verbonden peers zijn geconfigureerd. Er is ook een consistente toename van drop-tellers in de software (SW) Forwarding-wachtrij tijdens het uitvoeren van Control Plane Policing (CoPP) -opdrachten en debugs. Onderzoek toont aan dat verkeer dat bedoeld is voor Null0 in plaats daarvan naar de CPU wordt geleid. Dit gedrag verstoorde het BGP-protocol door de voltooiing van de TCP 3-weg handshake te voorkomen. Bovendien zijn pings naar de SVI IP-adressen die op de switch zijn geconfigureerd mislukt.
Als noch 'ip tcp adjust-mss' noch een 'null route' is geconfigureerd, blijft de dropcounter in de SW forwarding queue op '0' staan na verkeer dat is gegenereerd vanuit IXIA, zoals verwacht.
Verwijs deze logs:
Cat-9400-1# Show platform hardware fed active qos queue stats internal cpu policer
CPU Queue Statistics
=====================================================================================
(default) (set) Queue Queue
QId PlcIdx Queue Name Enabled Rate Rate Drop(Bytes) Drop(Frames)
--------------------------------------------------------------------------------------------
14 13 Sw forwarding Yes 1000 200 0 0>>>>>>>>>>>>>>>>>>>>>>>>>>>>No increment
Als alleen de Null0-route is geconfigureerd, blijft de valteller in de SW-wachtrij voor doorsturen op '0' na verkeer dat is gegenereerd vanuit IXIA, zoals verwacht.
Verwijs deze logs:
Cat-9400-1# Show platform hardware fed active qos queue stats internal cpu policer
CPU Queue Statistics
=====================================================================================
(default) (set) Queue Queue
QId PlcIdx Queue Name Enabled Rate Rate Drop(Bytes) Drop(Frames)
--------------------------------------------------------------------------------------------
14 13 Sw forwarding Yes 1000 200 0 0>>>>>>>>>>>>>>>>>>>>>>>>>>>>No increment
With both "ip tcp adjust-mss" and a "null route" configured:
Configuration:
On Cat 9300:
Cat-9300-1#show run interface twoGigabitEthernet 1/0/1
interface TwoGigabitEthernet1/0/1 (Interface connected to IXIA)
no switchport
ip address 10.1.12.xx 255.255.255.0
end
Cat-9300-1#show run interface tenGigabitEthernet 1/1/3
interface TenGigabitEthernet1/1/3 (Physical interface connected to C9400)
no switchport
mtu 9000
ip address 203.63.xxx.xx 255.255.255.0
no ip redirects
no ip unreachables
ip mtu 1500
load-interval 30
end
Cat-9300-1#show run interface tunnel421
interface Tunnel421
description Tunnel 421 to Scrubbing Center - SYD EDGE 1 and 2 - AR1 Tunnel 30
ip address 10.88.178.xx 255.255.255.0
ip mtu 1470
load-interval 30
Cisco Confidential
keepalive 10 3
tunnel source 203.63.xxx.xx
tunnel destination 203.63.xxx.xx
end
On cat 9400:
Cat-9400-1#show run interface tenGigabitEthernet 1/0/3
interface TenGigabitEthernet1/0/3 (Interface connected to C9300)
no switchport
mtu 9000
ip address 203.63.xxx.xx 255.255.255.0
no ip redirects
no ip unreachables
ip mtu 1500
load-interval 30
end
interface Tunnel421
ip address 10.88.178.xx 255.255.255.0
ip mtu 1470
ip tcp adjust-mss 500>>>>>>>>>>>>
load-interval 30
keepalive 10 3
tunnel source 203.63.xxx.xx
tunnel destination 203.63.xxx.xx
end
Null0 Routes:
ip route 10.2.12.xx 255.255.255.255 null0>>>>>>>>Destination IP is of IXIA connected to 9300
Cat-9400-1#show ip route
Gateway of last resort is 203.63.xxx.xx to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 203.63.xxx.xx
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
S 10.2.12.0/24 [1/0] via 192.168.12.xx
S 10.2.12.xx/32 is directly connected, Null0
C 10.88.178.0/24 is directly connected, Tunnel421
L 10.88.178.xx/32 is directly connected, Tunnel421
Nadat Null0-routes en MSS de configuratie op de ingangstunnelinterface van de C9400 hadden aangepast, werd verkeer gegenereerd vanuit IXIA en werden de valtellers voor CPU Queue Identity (QID) 14 verhoogd, zoals weergegeven in de volgende afbeelding.
C9400 CoPP-uitgang:
Cat-9400-1# show platform hardware fed active qos queue stats internal cpu policer
=====================================================================================
(default) (set) Queue Queue
QId PlcIdx Queue Name Enabled Rate Rate Drop(Bytes) Drop(Frames)
--------------------------------------------------------------------------------------------
14 13 Sw forwarding Yes 1000 200 3252568000 3214000>>>>>> Drops increasing in this Queue
Cat-9400-1# show platform hardware fed active qos queue stats internal cpu policer
CPU Queue Statistics
=====================================================================================
(default) (set) Queue Queue
QId PlcIdx Queue Name Enabled Rate Rate Drop(Bytes) Drop(Frames)
--------------------------------------------------------------------------------------------
0 11 DOT1X Auth Yes 1000 1000 0 0
1 1 L2 Control Yes 2000 2000 0 0
2 14 Forus traffic Yes 4000 4000 0 0
3 0 ICMP GEN Yes 600 600 0 0
4 2 Routing Control Yes 5400 5400 0 0
5 14 Forus Address resolution Yes 4000 4000 0 0
6 0 ICMP Redirect Yes 600 600 0 0
7 16 Inter FED Traffic Yes 2000 2000 0 0
8 4 L2 LVX Cont Pack Yes 1000 1000 0 0
9 19 EWLC Control Yes 13000 13000 0 0
10 16 EWLC Data Yes 2000 2000 0 0
11 13 L2 LVX Data Pack Yes 1000 200 0 0
12 0 BROADCAST Yes 600 600 0 0
13 10 Openflow Yes 200 200 0 0
14 13 Sw forwarding Yes 1000 200 40147794808 39671734>>>>>>With MSS adjust and Null0 configured.
15 8 Topology Control Yes 13000 13000 0 0
16 12 Proto Snooping Yes 2000 2000 0 0
17 6 DHCP Snooping Yes 400 400 0 0
Volgens de theorie, om ongewenst verkeer zoals uitzendverkeer te verwerken of de toegang tot specifieke subnetten te blokkeren, is een optie om een statische route in te stellen die het verkeer naar Null0 leidt. Dit zorgt ervoor dat de router alle verkeer weggooit dat voor dat netwerk is bedoeld.
ip route <destination-network> <subnet-mask> null 0
For an example:
ip route 10.2.12.xx 255.255.255.255 null0>>>>>>Destination IP is of IXIA connected to 9300
Null 0 syntaxis zorgt ervoor dat de 10.2.12.1/32 nergens worden doorgestuurd. Dit betekent dat alle verkeer dat bestemd is voor het bestemmingsnetwerk, wordt weggegooid (gedropt) bij Null0.
Aan de andere kant, TCP MSS-aanpassing:
MSS-aanpassing wijzigt de MSS voor TCP-pakketten. Wanneer een MTU-mismatch optreedt, vaak tussen apparaten met verschillende MTU-instellingen of via tunnels zoals VPN's, kunnen pakketten worden gefragmenteerd.
Fragmentatie is ongewenst voor TCP-verkeer omdat het kan leiden tot pakketverlies of prestatievermindering. MSS-klemmen pakt dit probleem aan door de grootte van TCP-segmenten aan te passen, zodat pakketten klein genoeg zijn om binnen het MTU-pad te passen en fragmentatie wordt voorkomen. Wanneer MSS-aanpassing wordt toegepast op tunnelinterfaces en SVI's met een waarde die is ingesteld op 1360 voor TCP-verbindingen, zorgt dit ervoor dat de segmentgrootte kleiner is dan het pad MTU, wat fragmentatie voorkomt.
Null0 is een virtuele 'black hole'-interface die elk verkeer dat ernaar toe wordt gericht, laat vallen. Het is nuttig om routeringslussen of ongewenst verkeer te voorkomen.
TCP MSS-aanpassing is een opdracht die ervoor zorgt dat TCP-segmenten klein genoeg zijn om fragmentatie te voorkomen bij het passeren van apparaten of tunnels met kleinere MTU's.
Hoewel deze twee functies over het algemeen voor verschillende doeleinden worden gebruikt, kunnen ze beide een rol spelen in een algemeen netwerkontwerp om de verkeersstroom te beheren, fragmentatie te voorkomen en de prestaties te optimaliseren. Op Catalyst 9K-switches kan het gebruik van zowel Null0- als MSS-aanpassing echter leiden tot conflicten, overbelasting van de CPU en overweldiging van het CoPP-beleid.
Show platform hardware fed active qos queue stats internal cpu policer
Identify the QID where the drop counters increments. After finding the QID (for example, QID 14), run the debug command:
#debug platform software fed switch active punt packet-capture set-filter "fed.queue == 14"
#debug platform software fed switch active punt packet-capture start
#debug platform software fed switch active punt packet-capture stop
#show platform software fed switch active punt packet-capture brief
#show platform software fed switch active punt packet-capture detailed
Met behulp van de foutopsporingsopdrachten controleert u de logs in de volgende indeling om het IP-adres van de aanvallers te identificeren die op de CPU worden geplaatst, zelfs als de Null0-routes zijn geconfigureerd:
------ Punt Packet Number: XX, Timestamp: 2024/12/14 12:54:57.508 ------
interface : physical: [if-id: 0x00000000], pal: Tunnel411 [if-id: 0x000000d2]
metadata : cause: 11 [For-us data], sub-cause: 1, q-no: 14, linktype: MCP_LINK_TYPE_IP [1]
ether hdr : Partial ether header, ethertype: 0x0800 (IPv4)
Cisco Confidential
ipv4 hdr : dest ip: XX.XX.XX.XX, src ip: XX.XX.XX.XX
ipv4 hdr : packet len: 44, ttl: 242, protocol: 6 (TCP)
tcp hdr : dest port: 777, src port: 41724
Cat-9400-1# debug platform software fed active punt packet-capture set-filter "fed.queue == 14"
Filter setup successful. Captured packets will be cleared
Cat-9400-1#debug platform software fed active punt packet-capture start
Punt packet capturing started.
Cat-9400-1#debug platform software fed active punt packet-capture stop
Punt packet capturing stopped. Captured 4096 packet(s)
Cat-9400-1#show platform software fed active punt packet-capture brief
Total captured so far: 4096 packets. Capture capacity : 4096 packets
Capture filter : "fed.queue == 14"
------ Punt Packet Number: 1, Timestamp: 2025/01/23 16:16:54.978 ------
interface : physical: [if-id: 0x00000000], pal: Tunnel421 [if-id: 0x0000002e]
metadata : cause: 11 [For-us data], sub-cause: 1, q-no: 14, linktype: MCP_LINK_TYPE_IP [1]
ether hdr : Partial ether header, ethertype: 0x0800 (IPv4)
ipv4 hdr : dest ip: 10.2.12.xx, src ip: 10.1.12.xx >>>10.2.12.xx is IXIA
ipv4 hdr : packet len: 1006, ttl: 63, protocol: 6 (TCP)
tcp hdr : dest port: 60, src port: 60
------ Punt Packet Number: 2, Timestamp: 2025/01/23 16:16:54.978 ------
interface : physical: [if-id: 0x00000000], pal: Tunnel421 [if-id: 0x0000002e]
metadata : cause: 11 [For-us data], sub-cause: 1, q-no: 14, linktype: MCP_LINK_TYPE_IP [1]
ether hdr : Partial ether header, ethertype: 0x0800 (IPv4)
ipv4 hdr : dest ip: 10.2.12.xx, src ip: 10.1.12.xx >>>10.2.12.xx is IXIA
ipv4 hdr : packet len: 1006, ttl: 63, protocol: 6 (TCP)
tcp hdr : dest port: 60, src port: 60
------ Punt Packet Number: 3, Timestamp: 2025/01/23 16:16:54.978 ------
interface : physical: [if-id: 0x00000000], pal: Tunnel421 [if-id: 0x0000002e]
metadata : cause: 11 [For-us data], sub-cause: 1, q-no: 14, linktype: MCP_LINK_TYPE_IP [1]
ether hdr : Partial ether header, ethertype: 0x0800 (IPv4)
ipv4 hdr : dest ip: 10.2.12.xx, src ip: 10.1.12.xx >>>10.2.12.xx is IXIA
Cisco Confidential
ipv4 hdr : packet len: 1006, ttl: 63, protocol: 6 (TCP)
tcp hdr : dest port: 60, src port: 60
Om te voorkomen dat CPU-wachtrijen worden overspoeld door ongewenst verkeer en de TCP/Secure Shell (SSH)-communicatie beïnvloeden, blokkeert u deze IP-adressen voordat ze de Catalyst 9K-switches bereiken of verwijdert u MSS-instellingen bij binnendringen.
Doorgaans synchroniseert het TCP-pakket (SYN) met de CPU-wachtrij. MSS is een optie in de TCP-header die de maximale segmentgrootte aangeeft die de ontvanger kan accepteren, behalve TCP/IP-headers. Het wordt meestal ingesteld voor de 3-weg handshake, met name in het SYN-pakket.
Om dit probleem op te lossen, kunt u de kwaadaardige IP's op de RADWARE/Security Gateway geoblocken om te voorkomen dat de CPU-policer-wachtrij overweldigd raakt en om BGP-peering en TCP-verbindingen te stabiliseren.
Zodra kwaadaardige IP's met succes op de Radware/security gateway waren geblokkeerd, stopte het verkeer met het overweldigen van de CPU-wachtrij.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
14-Aug-2025
|
Eerste vrijgave |