Inleiding
In dit document worden de problemen beschreven met Redundancy Configuration Manager (RCM) en User Plane Function (UPF) die de status van de sesmgr-server veroorzaken.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- RCM-checkpointmgr
- UPF-sessmgr
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.
Achtergrondinformatie
Het biedt ook een gedetailleerde handleiding voor probleemoplossing bij problemen met de serverstatus van sessmgr, waardoor verkeer en gespreksverwerking worden belemmerd. Plus, een lab testgedeelte voor herstel.
Basis - Overzicht
Zoals in het beeld wordt getoond, kunt u de directe verbindingen tussen overtolligheidsmanagers (die als checkpointmgrs worden bedoeld) in RCM en sesmgrs in UPFs voor controlepost het volgen waarnemen.
Toewijzing van redundantie en sessies
1. Elke UP heeft een "N" aantal sessmgr.
2. RCM heeft een "M"-aantal roodbaars afhankelijk van het aantal sessmgrs in UPF.
3. Zowel redmgrs als sessmgrs hebben een 1:1-omzetting op basis van hun ID’s waarbij er afzonderlijke redmgrs zijn voor elke sessmgr.
Note :: Redmgr IDs (m) = sessmgr instance ID (n-1)
For example :: smgr-1 is mapped with redmgr 0;smgr-2 is mapped with redmgr-1,
smgr-n is mapped with redmgr(m) = (n-1)
This is important to understand proper IDs of redmgr because we need to have proper logs to be checked
Vastlegging vereist
RCM-logbestanden - Opdrachtoutput:
rcm show-statistics checkpointmgr-endpointstats
RCM controller and checkpointmgr logs (refer this link)
Log collection
UPF:
Command outputs (hidden mode)
show rcm checkpoint statistics verbose
show session subsystem facility sessmgr all debug-info | grep Mode
If you see any sessmgr in server state check the sessmgr instance IDs and no of sessmgr
show task resources facility sessmgr all
Problemen oplossen
Typisch, zijn er 21 sessmgr instanties in UPF, die uit 20 actieve sessmgrs en 1 standby instantie bestaan (hoewel deze telling gebaseerd op het specifieke ontwerp zou kunnen variëren).
Voorbeeld:
- U kunt deze opdracht gebruiken om inactieve, actieve sessies te identificeren:
show task resources facility sessmgr all
-
In dit scenario leidt een poging om het probleem op te lossen door de problematische sessmgrs te herstarten en zelfs het sesscCtrl te herstarten niet tot het herstel van de betreffende sessmgrs.
-
Bovendien wordt opgemerkt dat de betreffende sessies vastzitten in de servermodus in plaats van in de verwachte clientmodus, een voorwaarde die kan worden geverifieerd met de geboden opdrachten.
show rcm checkpoint statistics verbose
show rcm checkpoint statistics verbose
Tuesday August 29 16:27:53 IST 2023
smgr state peer recovery pre-alloc chk-point rcvd chk-point sent
inst conn records calls full micro full micro
---- ------- ----- ------- -------- ----- ----- ----- ----
1 Actv Ready 0 0 0 0 61784891 1041542505
2 Actv Ready 0 0 0 0 61593942 1047914230
3 Actv Ready 0 0 0 0 61471304 1031512458
4 Actv Ready 0 0 0 0 57745529 343772730
5 Actv Ready 0 0 0 0 57665041 356249384
6 Actv Ready 0 0 0 0 57722829 353213059
7 Actv Ready 0 0 0 0 61992022 1044821794
8 Actv Ready 0 0 0 0 61463665 1043128178
Here in above command all the connection can be seen as Actv Ready state which is required
show session subsystem facility sessmgr all debug-info | grep Mode
[local]<Nodename># show session subsystem facility sessmgr all debug-info | grep Mode
Tuesday August 29 16:28:56 IST 2023
Mode: UNKNOWN State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE
Hier, zouden alle sessmgrs idealiter in cliëntwijze moeten zijn. In dit geval zijn ze echter in de servermodus, waardoor ze geen verkeer kunnen verwerken.
Sessimgr naar servermodus
-
Om de communicatie en overdracht van controlepunten te vergemakkelijken, stelt elke sessiemanager (sessmgr) een TCP-peer-verbinding in met de overeenkomstige redundantiebeheerder (redmgr).
-
Zodra de TCP peer verbinding tot stand is gebracht, kan redmgr alle abonneecontexten vanuit de sessmgr controleren en opslaan. Dit maakt naadloze overschakeling mogelijk, aangezien de controlepunten met hun respectieve sessmgr-instanties kunnen worden overgedragen naar andere User Plane Functions (UPF).
-
Het is van cruciaal belang dat de sessmgr altijd in de CLIENT-modus staat. Als, om welke reden dan ook, sessmgr wordt gedetecteerd in server mode, het wijst op een gebroken TCP peer verbinding met de gekoppelde redmgr. In dit scenario wordt geen checkpointing uitgevoerd.
-
Wanneer sessmgrs in deze staat binnen UPF worden geplakt, die een ongeplande overschakeling op een andere UPF uitvoeren zonder de staat van sessmgr te overwegen resulteert in het zelfde probleem. De sessmgr kan in deze situatie geen verkeer verwerken.
Opmerking: er zijn bepaalde problemen waarbij checkpointmgr zelf wacht op checkpointing waar RCM checkpointing is gestart en wacht op de reactie van UPF. Maar als er geen reactie is, is checkpoint zelf niet in staat om te communiceren wat leidt tot vertraging in de voltooiing van de switchover procedure die de switchover timer waarde kruist. Dus in zulke gevallen komt UP zelfs vast te zitten in de PendActive status.
Dit kan worden gecontroleerd in RCM-statistieken en redmgr-logbestanden. Met deze opdracht kunt u ook te weten komen welke checkpointmgr een probleem heeft waarmee UPF.
rcm show-statistics checkpointmgr-endpointstats
4. Er kunnen meerdere redenen zijn waarom sessmgr lokaal naar de servermodus gaat, maar een van de belangrijkste redenen hiervoor is zoals hier wordt uitgelegd.
Reden waarom Sessimgr naar de servermodus gaat
1. Op basis van het aantal sessiemanagers in de functie Gebruikersplane (UPF) worden replica's gemaakt voor de Redundantie Manager (redmgr) en geconfigureerd in de Resource Control Manager (RCM). Deze configuratie zorgt ervoor dat elke redmgr verbonden is met een Session Manager instantie.
2. Als er een 1:1-omzetting is tussen redmgr en sessmgr, wat gebeurt er als de sessie-manager-instantie-ID een waarde hoger dan het aantal sessiemanagers overschrijdt?
For example :::
Sessmgr instance ID :: 1 to 20
Redmgr IDs :: 0 to 19
In this example somehow if my sessmgr instance ID goes beyond the mentioned limit i.e say 21/22/23/24/25 so in this case redmgr is already mapped with instance IDs 0 to 19 and would be unaware about this new sessmgr instance ID created by UPF from 21 to 25 and in such a case sessmgr with this instance IDs :: 21/22/23/24/25 will not be able to form any TCP peer connection with RCM redmgr leading to no checkpoint sync and since there won’t be any checkpoint sync sessmgr will get stuck into server mode and won’t take any traffic.
Refer this diagram
Both this sessmgr instance-7/8 have no TCP peer connection since for RCM redmgr-1 was
connected with instance-2 and redmgr-2 was connected to instance-5 so even though sessmgr
came up with new instance ID value which is beyond defined limit it wont have connection
back with redmgrs which is still just pointing to previous instance but connection is broken
Tijdelijke oplossing
De oplossing voor dit probleem is het aantal Sessmgr instantie IDs te beperken om het aantal sessmgrs in UPF en het aantal redmgrs in RCM aan te passen, zoals gespecificeerd door de vermelde opdracht.
Max value of sessmgr instance ID = no of checkpointmgr – 1
Volgens deze logica moet het aantal sessmgrs worden gedefinieerd, met inbegrip van stand-by-sessmgrs.
task facility sessmgr max <no of max sessmgrs>
Note :: Implementation of this command needs node reload to enable full functionality of this command
Door deze opdracht uit te voeren, ongeacht hoe vaak sessmgr wordt gedood, komt het altijd met een waarde van een instantie-ID gelijk aan of minder dan de maximale telling van sessmgr. Dit voorkomt dat checkpointing problemen met RCM en voorkomt dat sesmgr om deze reden servermodus invoert.