المحتويات

المقدمة

معلومات أساسية

المشكلة

تجربة المستخدم النهائي

تجربة مسؤول ISE

سيناريوهات إشكالية شائعة

مشكلة الجلسة الوهمية/القديمة

منطق إدارة جلسة ISE

MNT وإدارة الجلسات

PSN وإدارة الجلسات

المقدمة

يصف هذا المستند مشكلة خدمات وضعية محرك خدمة الهوية العامة (ISE): "تظهر وحدة AnyConnect ISE Posture module المتوافقة..."

معلومات أساسية

يصف هذا المستند مشكلة خدمات وضعية محرك خدمة الهوية العامة (ISE) - تظهر وحدة AnyConnect ISE Posture النمطية المتوافقة بينما حالة جلسة العمل على ISE معلقة.

وفي حين ان الاعراض هي نفسها دائما، يمكن ان تكون هنالك أسباب جذرية متعددة لهذه المسألة.

وغالبا ما يصبح حل هذه المسألة مستهلكا للوقت إلى حد كبير مما يؤدي إلى تأثير خطير.

يشرح هذا المستند:

- تظهر المشكلة من منظور المستخدم النهائي ومسؤول ISE.

- سيناريوهات إشكالية شائعة.

- النظرية وراء عمليات ISE و AnyConnect والشبكة التي تؤدي إلى حدوث المشكلة.

- خوارزميات التعرف السريع على المشاكل.

- حلول تقليدية لسيناريوهات إشكالية مشتركة.

- مشاركة حالة الوضع عبر دليل جلسة عمل Radius.

للحصول على شرح افضل للمفاهيم الموصوفة لاحقا، يرجى الرجوع إلى:

مقارنة نمط ISE Posture للpre و post 2.2

تحت العدسة المكبرة. كيفية أستكشاف أخطاء ISE وإصلاحها - BRKSEC-3229

المشكلة

تجربة المستخدم النهائي

تظهر هذه المشكلة عادة في غياب الوصول إلى الشبكة أو عمليات إعادة التوجيه المستمرة إلى مدخل توفير عميل ISE في المستعرض، بينما تظهر وحدة وضعية AnyConect ISE، في الوقت نفسه، حالة التوافق.

تجربة المستخدم النهائي النموذجية:

تجربة مسؤول ISE

عادة، في الفرز الأولي لهذه المشكلة، يقوم مسؤول ISE بإجراء تحقيق في سجلات RADIUS Live لضمان وجود مصادقة فعلية تصل إلى ISE.

يشير العرض الأول الذي تم اكتشافه في هذه المرحلة إلى عدم تطابق في حالة الوضع بين نقطة النهاية و ISE كما هو الحال في السجلات المباشرة أو تقارير مصادقة Radius آخر مصادقة ناجحة لنقطة النهاية تظهر حالة الوضع المعلق.

تجربة إدارة ISE النموذجية:

- آخر مصادقة ناجحة لأليس.

- حالة الوضع لجلسة العمل معلقة.

- حدث الجلسة الأخيرة لأليس.

- يظهر حدث جلسة العمل حالة الوضع كمتوافق.

ملاحظة: لا يتم دائما تقديم C. and D. في السجلات المباشرة عندما يتم وصف بيانات الإصدار. حدث جلسة العمل المتوافق مع حالة الوضع أكثر شيوعا للسيناريوهات التي تتسبب فيها جلسات العمل الوهمية أو القديمة التي تم وصفها لاحقا في هذا المستند.

سيناريوهات إشكالية شائعة

وتظهر هذه المشكلة عادة في سيناريوهين مشككين ولكل منهما أسباب أساسية متعددة. السيناريوهات:

- تم إعلام AnyConnect ISE Posture بواسطة عقدة خدمة السياسة (PSN) بشكل خاطئ أثناء عملية الوضع التي أدت إلى عرض حالة الوضع الخطأ. في هذه الحالة، نحن عادة نتعامل مع جلسة عمل وهمية في ذاكرة التخزين المؤقت لجلسة PSN.

- يظهر AnyConnect ISE إلى حالة الوضع من دورة الاكتشاف السابقة نظرا لأن المصادقة الحالية لم تقم بتشغيل عملية اكتشاف. تحتوي وحدة ISE Posture النمطية في AnyConnect على عدد محدود من الأحداث التي تؤدي إلى تشغيل عملية الاكتشاف وربما تحدث أنه أثناء المصادقة أو إعادة المصادقة، لم يتم اكتشاف أي من هذه الأحداث.

مشكلة الجلسة الوهمية/القديمة

لفهم المشكلة بشكل أفضل، تحقق من منطق إدارة جلسة عمل ISE وعملية اكتشاف AnyConnect المطلوبة.

منطق إدارة جلسة ISE

في نشر ISE، هناك شخصان مسؤولان عن عملية إدارة جلسة العمل: PSN وعقدة المراقبة (MNT).

لاستكشاف هذه المشكلة وإصلاحها بشكل صحيح وتحديد هويتها، فمن المهم فهم نظرية إدارة جلسة العمل على كلا الشخصين.

MNT وإدارة الجلسات

كما هو موضح في هذه الصورة، تقوم عقدة MNT بإنشاء مواسم استنادا إلى رسائل syslog للمصادقة التي يتم تمريرها والتي تأتي من PSNs.

يمكن تحديث حالة جلسة العمل اللاحقة بواسطة syslog للمحاسبة.

تتم إزالة جلسة العمل على MNT في 3 سيناريوهات:

- تمت إزالة جلسات العمل بدون حساب بعد 60 دقيقة تقريبا من إنشائها. هناك مهمة cron يتم تنفيذها كل 5 دقائق للتحقق من حالات الجلسة وتنظيفها.

- تمت إزالة جلسة العمل التي تم إنهاؤها بعد 15 دقيقة تقريبا من معالجة إيقاف المحاسبة بواسطة وظيفة cron نفسها.

- يزيل نفس الحساب على كل عملية تنفيذ أيضا جلسات العمل التي تم إجراؤها في الحالة "بدء" لأكثر من 5 أيام (120 ساعة). تعني حالة البدء أن عقدة MNT قامت بمعالجة كل من المصادقة والمحاسبة لبدء Syslog للجلسة.

أمثلة على رسائل syslog من PSN. يتم تسجيل هذه الرسائل في prrt-server.log عند تمكين مكون AAA لوقت التشغيل في تصحيح الأخطاء. يمكن إستخدام الأجزاء ذات اللون الغامق لتكوين تعبيرات البحث العادية.

المصادقة التي تم تمريرها :

AcsLogs,2020-04-07 10:07:29,202,DEBUG,0x7fa0ada91700,cntx=0000629480,sesn=skuchere-ise26-1/375283310/10872,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 22:53:24.288 +02:00 0000423024 5200 NOTICE Passed-Authentication: Authentication succeeded, ConfigVersionId=87, Device IP Address=10.62.148.108, DestinationIPAddress=192.168.43.26, DestinationPort=1812, UserName=bob@example.com, Protocol=Radius, RequestLatency=45, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Service-Type=Framed, Framed-IP-Address=192.168.255.205, Framed-MTU=1472, State=37CPMSessionID=0A3E946C00000073559C0123\;42SessionID=skuchere-ise26-1/375283310/10872\;, Calling-Station-ID=00-50-56-B6-0B-C6, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, EAP-Key-Name=, cisco-av-pair=service-type=Framed, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, cisco-av-pair=client-iif-id=526638260, NetworkDeviceProfileName=Cisco, NetworkDeviceProfileId=b0699505-3150-4215-a80e-6753d45bf56c, IsThirdPartyDeviceFlow=false, RadiusFlowType=Wired802_1x, AcsSessionID=skuchere-ise26-1/375283310/10872, AuthenticationIdentityStore=EXAMPLE, AuthenticationMethod=MSCHAPV2, SelectedAccessService=Default Network Access, SelectedAuthorizationProfiles=PermitAccess, IsMachineAuthentication=false, IdentityGroup=Endpoint Identity Groups:Profiled:Workstation, Step=11001, Step=11017, Step=15049, Step=15008, Step=15048, Step=15048, Step=15048, Step=11507, Step=12500, Step=12625, Step=11006, Step=11001, Step=11018, Step=12301, Step=12300, Step=12625, Step=11006, Step=11001, Step=11018, Step=12302, Step=12318, Step=12800, Step=12805, Step=12806, Step=12807, Step=12808, Step=12810, Step=12811, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12318, Step=12812, Step=12813, Step=12804, Step=12801, Step=12802, Step=12816, Step=12310, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=12313, Step=11521, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11522, Step=11806, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11808, Step=15041, Step=22072, Step=15013, Step=24210, Step=24216, Step=15013, Step=24430, Step=24325, Step=24313, Step=24319, Step=24323, Step=24343, Step=24402, Step=22037, Step=11824, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=11810, Step=11814, Step=11519, Step=12314, Step=12305, Step=11006, Step=11001, Step=11018, Step=12304, Step=24715, Step=15036, Step=24209, Step=24211, Step=24432, Step=24325, Step=24313, Step=24319, Step=24323, Step=24355, Step=24416, Step=15048, Step=15016, Step=22081, Step=22080, Step=12306, Step=11503, Step=11002, SelectedAuthenticationIdentityStores=Internal Users, SelectedAuthenticationIdentityStores=All_AD_Join_Points, SelectedAuthenticationIdentityStores=Guest Users, AuthenticationStatus=AuthenticationPassed, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, IdentityPolicyMatchedRule=Dot1X, AuthorizationPolicyMatchedRule=Compliant-Wired, EapTunnel=PEAP, EapAuthentication=EAP-MSCHAPv2, CPMSessionID=0A3E946C00000073559C0123, EndPointMACAddress=00-50-56-B6-0B-C6, PostureAssessmentStatus=NotApplicable, EndPointMatchedProfile=Microsoft-Workstation, ISEPolicySetName=Default, IdentitySelectionMatchedRule=Dot1X, AD-User-Resolved-Identities=bob@example.com, AD-User-Candidate-Identities=bob@example.com, AD-User-Join-Point=EXAMPLE.COM, StepData=4= Radius.NAS-IP-Address, StepData=5= Cisco-VPN3000.CVPN3000/ASA/PIX7x-Tunnel-Group-Name, StepData=6= DEVICE.Device Type, StepData=77=All_User_ID_Stores, StepData=78=Internal Users, StepData=81=All_AD_Join_Points, StepData=82=All_AD_Join_Points, StepData=83=bob@example.com, StepData=84=example.com, StepData=85=example.com, StepData=87=bob@example.com, StepData=88=All_AD_Join_Points, StepData=109=EXAMPLE, StepData=110=bob@example.com, StepData=111=example.com, StepData=112=example.com, StepData=114=example.com, StepData=115=EXAMPLE, StepData=116= EXAMPLE.ExternalGroups, AD-User-Resolved-DNs=CN=bob\,CN=Users\,DC=example\,DC=com, AD-User-DNS-Domain=example.com, AD-Groups-Names=example.com/Users/Domain Users, AD-User-NetBios-Name=EXAMPLE, IsMachineIdentity=false, UserAccountControl=66048, AD-User-SamAccount-Name=bob, AD-User-Qualified-Name=bob@example.com, allowEasyWiredSession=false, TLSCipher=ECDHE-RSA-AES256-GCM-SHA384, TLSVersion=TLSv1.2, DTLSSupport=Unknown, HostIdentityGroup=Endpoint Identity Groups:Profiled:Workstation, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ExternalGroups=S-1-5-21-875452798-754861120-3039794717-513, IdentityAccessRestricted=false, PostureStatus=Compliant, Response={Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10872; EAP-Key-Name=19:5e:8c:e9:13:0c:89:23:78:49:ad:2b:d4:31:63:51:27:81:db:e2:61:b1:51:36:6d:11:10:41:ce:3b:aa:cc:c6:66:4e:7c:92:f8:83:c5:06:84:ac:95:4c:5b:f1:b2:37:a2:f5:04:4e:9e:4d:08:79:55:b7:4d:9a:41:f5:b2:0a; MS-MPPE-Send-Key=****; MS-MPPE-Recv-Key=****; LicenseTypes=65541; },],MessageFormatter.cpp:107

بدء الحساب :

AcsLogs,2020-04-07 10:07:30,202,DEBUG,0x7fa0ad68d700,cntx=0000561096,sesn=skuchere-ise26-1/375283310/10211,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 10:07:30.857 +02:00 0000382874 3000 NOTICE Radius-Accounting: RADIUS Accounting start request, ConfigVersionId=87, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=7, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10210, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Start, Acct-Delay-Time=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Event-Timestamp=1586279242, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/10211, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=15048, Step=22083, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107

التحديث المؤقت للمحاسبة :

AcsLogs,2020-04-07 22:57:48,642,DEBUG,0x7fa0adb92700,cntx=0000629843,sesn=skuchere-ise26-1/375283310/10877,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-07 22:57:48.650 +02:00 0000423268 3002 NOTICE Radius-Accounting: RADIUS Accounting watchdog update, ConfigVersionId=87, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=8, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/10872, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Interim-Update, Acct-Delay-Time=0, Acct-Input-Octets=2293926, Acct-Output-Octets=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Acct-Input-Packets=15785, Acct-Output-Packets=0, Event-Timestamp=1586325462, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/10877, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=22085, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107

التوقف المحاسبي :

AcsLogs,2020-04-08 11:43:22,356,DEBUG,0x7fa0ad68d700,cntx=0000696242,sesn=skuchere-ise26-1/375283310/11515,CPMSessionID=0A3E946C00000073559C0123,user=bob@example.com,CallingStationID=00-50-56-B6-0B-C6,FramedIPAddress=192.168.255.205,Log_Message=[2020-04-08 11:43:22.368 +02:00 0000463071 3001 NOTICE Radius-Accounting: RADIUS Accounting stop request, ConfigVersionId=88, Device IP Address=10.62.148.108, UserName=bob@example.com, RequestLatency=12, NetworkDeviceName=3850-1-BB, User-Name=bob@example.com, NAS-IP-Address=10.62.148.108, NAS-Port=50105, Framed-IP-Address=192.168.255.205, Class=CACS:0A3E946C00000073559C0123:skuchere-ise26-1/375283310/11503, Called-Station-ID=00-E1-6D-D1-4F-05, Calling-Station-ID=00-50-56-B6-0B-C6, Acct-Status-Type=Stop, Acct-Delay-Time=0, Acct-Input-Octets=4147916, Acct-Output-Octets=0, Acct-Session-Id=00000041, Acct-Authentic=Remote, Acct-Session-Time=92157, Acct-Input-Packets=29120, Acct-Output-Packets=0, Acct-Terminate-Cause=Lost Carrier, Event-Timestamp=1586371399, NAS-Port-Type=Ethernet, NAS-Port-Id=GigabitEthernet1/0/5, Framed-IPv6-Address=2001:10::100, Framed-IPv6-Address=2001:10::101, cisco-av-pair=audit-session-id=0A3E946C00000073559C0123, cisco-av-pair=method=dot1x, AcsSessionID=skuchere-ise26-1/375283310/11515, SelectedAccessService=Default Network Access, Step=11004, Step=11017, Step=15049, Step=15008, Step=22084, Step=11005, NetworkDeviceGroups=IPSEC#Is IPSEC Device#No, NetworkDeviceGroups=Location#All Locations, NetworkDeviceGroups=Device Type#All Device Types, CPMSessionID=0A3E946C00000073559C0123, Network Device Profile=Cisco, Location=Location#All Locations, Device Type=Device Type#All Device Types, IPSEC=IPSEC#Is IPSEC Device#No, ],MessageFormatter.cpp:107

PSN وإدارة الجلسات

ما هي ذاكرة التخزين المؤقت لجلسة عمل PSN؟

قاعدة بيانات في الذاكرة تقوم بتخزين جميع الجلسات النشطة ل PSN معين. ذاكرة التخزين المؤقت لجلسة العمل محلية دائما للعقدة ولا توجد آلية في ISE يمكنها إجراء النسخ المتماثل لحالة جلسة العمل الكاملة من عقدة إلى أخرى.

لكل معرف جلسة عمل نشط، يخزن PSN جميع السمات التي تم تجميعها أثناء مرحلة المصادقة/الاعتماد مثل مجموعات المستخدمين الداخلية/الخارجية وسمات جهاز الوصول إلى الشبكة (NAD) وسمات الشهادات وما إلى ذلك. يتم إستخدام هذه السمات بواسطة PSN لتحديد أنواع مختلفة من السياسات مثل المصادقة والتخويل وتوفير العميل والوضع.

تمت إزالة ذاكرة التخزين المؤقت لجلسة العمل بالكامل عند إعادة تشغيل الخدمات الموجودة على العقدة أو العقدة نفسها.

يقوم منطق معالجة الجلسة الحالية بإنشاء إدخال جديد في ذاكرة التخزين المؤقت للجلسة في سيناريوهين، ويمكن تحديث التفاصيل اللاحقة للجلسات الموجودة من رسائل المحاسبة التي تأتي من NADs :

- تمت مصادقة الجلسة بنجاح على PSN.

- حصل PSN على تحديث مؤقت للمحاسبة لجلسة العمل غير الموجودة في ذاكرة التخزين المؤقت لجلسة العمل.

عندما يتعلق الأمر بإزالة جلسة العمل، يقوم PSN بتنفيذ هذا المنطق:

- تمت إزالة إدخال ذاكرة التخزين المؤقت لجلسة العمل مباشرة بعد معالجة رسالة إيقاف المحاسبة.

- يبدأ PSN في إزالة الجلسات الأقل إستخداما عندما تصل العقدة إلى الحد الأدنى من الجلسات النشطة.

جلسة العمل القديمة على PSN

في نشر ISE، تمت معالجة نقطة توقف المحاسبة لجلسة عمل موجودة بواسطة PSN الذي لم يقم بتنفيذ المصادقة الفعلية:

مثال على الجلسة القديمة:

1. يتم إجراء مصادقة ناجحة على PSN لجلسة ABC.

2. تقوم PSN بإنشاء إدخال في ذاكرة التخزين المؤقت لجلسة العمل.

3. يتم إجراء تقييم للوضع.

4. تم وضع علامة متوافق على جلسة العمل.

5. يؤدي تغيير التفويض (COA) الذي تم تشغيله عن طريق تغيير حالة الوضع إلى إعادة مصادقة نقطة النهاية لتطبيق مستوى الوصول التالي.

6. توقف المحاسبة لجلسة ABC يأتي إلى PSN2.

بعد خطوة 6 جلسة، يعلق abc في الحالة stale على ال PSN1 بما أن هناك ما من محاسبة إيقاف رسالة معالجة على هذا PSN أن يزيل هو. تتم إزالة جلسة العمل لفترة طويلة إذا لم يواجه النشر عددا كبيرا من محاولات المصادقة.

يظهر الجلسة قديم في جلسة عمل PSN تخزين مؤقت في هذا سيناريو:

- جاءت نقطة توقف المحاسبة إلى PSN الخطأ بسبب انتهاء صلاحية مؤقت نوع اللصق على موازن التحميل.

- ليس التكوين الخاطئ على NAD هو نفسه PSN الذي تم تكوينه للمصادقة والمحاسبة.

- مشاكل الاتصال المؤقتة على مسار الشبكة التي تتسبب في تجاوز الفشل والتغلب عليه إلى PSN التالي.

مثال على جلسة العمل القديمة في بيئة موازن التحميل (LB) :

1. المصادقة الأولية للجلسة ABC التي تم تنفيذها بواسطة PSN 1.

2. تقوم هذه المصادقة ببدء مؤقت لصق على موازن التحميل.

3. يقوم PSN 1 بإنشاء إدخال لجلسة ABC في ذاكرة التخزين المؤقت المحلية.

4. تم تحويل رسالة syslog للمصادقة التي تم تمريرها إلى عقدة MNT.

5. تم إنشاء إدخال لجلسة ABC في دليل جلسات MNT مع مصادقة الحالة.

6. رسالة بداية المحاسبة للجلسة ABC تورد على PSN 1.

7. تم تحديث إدخال ذاكرة التخزين المؤقت لجلسة العمل ABC بمعلومات من Accounting-Start.

8. تم نقل رسالة syslog ل Accounting-Start إلى عقدة MNT.

9. تم تحديث حالة جلسة العمل إلى تم البدء.

10. تنتهي صلاحية مؤقت Stickiness على موازن التحميل.

11. توقف المحاسبة لجلسة ABC تمت إعادة توجيهها بواسطة موازن التحميل إلى PSN 2.

12. Syslog رسالة for accounting-stop موجهة من قبل PSN 2 إلى MNT.

13 - تم وضع علامة على ABC لجلسة العمل على أنه تم إنهاؤها على MNT.

الجلسة الوهمية على PSN

الجلسة الوهمية هي سيناريو عند وصول تحديث مؤقت للمحاسبة إلى PSN الذي لم يتم إجراء المصادقة لهذه الجلسة المحددة. في هذا السيناريو، يتم إنشاء إدخال جديد في ذاكرة التخزين المؤقت لجلسة عمل PSN وإذا لم يحصل PSN على رسالة توقف محاسبة لجلسة العمل هذه، فلن تتم إزالة الإدخال ما لم يصل PSN إلى حد جلسات العمل النشطة.

مثال الجلسة الوهمية:

1. يتم تنفيذ نفس الخطوات كما هو موصوف في مثال الجلسة القديمة على PSN1 للجلسة ABC.

2. يحتوي ABC لجلسة العمل على متوافق مع الحالة في ذاكرة التخزين المؤقت لجلسة عمل PSN1.

3. تحديث المحاسبة المؤقت للجلسة ABC يضرب PSN2.

4. تم إنشاء إدخال جلسة العمل ABC على PSN2. منذ إنشاء إدخال جلسة العمل من رسالة المحاسبة، أصبح لديه عدد محدود من السمات. على سبيل المثال، حالة الوضع غير متوفرة للجلسة ABC. كما أن أشياء مثل مجموعات المستخدمين وسمات التخويل الأخرى المحددة غير موجودة.

تظهر الجلسة الوهمية في ذاكرة التخزين المؤقت لجلسة PSN في هذه السيناريوهات:

- انقطاع قصير الأجل على النقل عبر الشبكة.

- سوء سلوك جهاز الوصول إلى الشبكة.

- السلوك الخاطئ أو التكوين الخاطئ على موازن التحميل.

مثال على جلسة وهمية للسيناريو مع مشاكل مؤقتة على مسار الشبكة نحو PSN1:

1. المصادقة الأولية للجلسة ABC التي تم تنفيذها بواسطة PSN.

2. يقوم PSN1 بإنشاء إدخال لجلسة ABC في ذاكرة التخزين المؤقت المحلية.

3. تم تحويل رسالة syslog للمصادقة التي تم تمريرها إلى عقدة MNT.

4. تم إنشاء إدخال لجلسة ABC في TimesTen DB مع مصادقة الحالة.

5. رسالة بداية المحاسبة للجلسة ABC تورد على PSN 1.

6. تم تحديث إدخال ذاكرة التخزين المؤقت لجلسة العمل ABC بمعلومات من Accounting-Start.

7. تم نقل رسالة syslog ل Accounting-Start إلى عقدة MNT.

8. تم تحديث حالة جلسة العمل إلى تم البدء.

9. تحديث المحاسبة المؤقتة للجلسة ABC تمت إعادة توجيهه إلى PSN2.

10. يقوم PSN2 بإنشاء إدخال لجلسة ABC في ذاكرة التخزين المؤقت المحلية.

11. إيقاف المحاسبة لجلسة ABC تمت إعادة توجيهها إلى PSN1.

12. تمت إزالة إدخال لجلسة ABC من ذاكرة التخزين المؤقت لجلسة العمل على PSN1.

13. Syslog رسالة for accounting-stop موجهة من قبل PSN 1 إلى MNT.

14 - تم وضع علامة على ABC لجلسة العمل على أنه تم إنهاؤها على MNT.

سيناريو الجلسة الوهمية كما تم إنشاؤها لاتصال VPN طويل العمر:

1. المصادقة الأولية على PSN1.

2. تم إنشاء ABC لجلسة العمل في ذاكرة التخزين المؤقت لجلسة العمل.

3. تبدأ عملية المحاسبة الرسالة التي تمت معالجتها بواسطة PSN.

4. عنوان IP الجديد المعين لمهايئ الشبكة الخاصة الظاهرية (VPN).

5. تحديث المحاسبة المؤقت باستخدام معلومات عنوان IP على PSN.

6. تمت إضافة معلومات عنوان IP إلى ذاكرة التخزين المؤقت للجلسة.

7. يتم إجراء تقييم للوضع مع PSN1.

8 - تم تحديث حالة الوضع في الدورة.

9. عند تنفيذ عملية الدفع بالدفع بمعيار COA بواسطة معيار ISE، يؤدي ذلك إلى تشغيل مستوى وصول جديد ليتم تعيينه.

10. انقطاع التيار على مسار الشبكة مما يجعل PSN1 غير قابل للوصول.

11. بعد انتهاء صلاحية فترة التحديث المؤقتة، يكتشف ASA/FTD عدم إمكانية الوصول إلى PSN1.

12. يأتي التحديث المؤقت للمحاسبة إلى PSN2.

13. الجلسة الوهمية التي تم إنشاؤها في ذاكرة التخزين المؤقت لجلسة PSN2.

إذا أصبح PSN1 متاحا لاحقا (14) فإن كل رسائل المحاسبة التالية يتم إعادة توجيهها (15،16) هناك وهذا يترك الجلسة ABC في ذاكرة التخزين المؤقت لجلسة PSN2 لوقت غير محدد.

كيف أن جلسة العمل التافهة والجلسة الوهمية تكسر عملية الوضع؟

لفهم كيفية توقف جلسة العمل والتفكك الوهمي لجلسة العمل، يمكنك مراجعة عملية اكتشاف وحدة AnyConnect ISE Posture النمطية:

المرحلة الأولى من الاكتشاف :

أثناء هذه المرحلة، تقوم وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)) بتنفيذ 4 مشاكل متزامنة لتحديد موقع PSN الذي قام بإجراء مصادقة لنقطة النهاية.

أولا، 3 مسابير على الشكل مبنية على إعادة التوجيه (افتراضي GW IP. IP لمضيف الاستكشاف (إذا تم تعريفه) و enroll.cisco.com IP) - تشير هذه التحقيقات دائما إلى العميل إلى PSN الأيمن كعنوان URL إعادة توجيه يتم أخذه من NAD نفسه.

يتم إرسال Probe رقم 4 إلى جميع الخوادم الأساسية المقدمة في ملف ConnectionData.xml. يمكن تحديث هذا الملف الذي تم إنشاؤه بعد محاولة الوضع الناجحة الأولى ومحتوى الملف الأحدث في حالة ترحيل العميل بين شبكات PSN. في أنظمة Windows، يكون موقع الملف - C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\ISE Posture\.

بما أن كل المرحلة 1 يجري إختبار في وقت واحد، فإن نتيجة من تحقيق 4 يتم إستخدامها فقط إذا فشلت كل ال 3 تجارب الأخرى أو أن وحدة ISE Posture النمطية لم تتمكن من تأسيس اتصال صحيح مع PSN الذي تم إرجاعه في إعادة توجيه URL في غضون 5 ثوان.

عند هبوط Probe 4 على PSN، فإنه يحتوي على قائمة من عناوين IP و MAC النشطة التي تم اكتشافها على نقطة النهاية. يستخدم PSN هذه البيانات للعثور على جلسة لنقطة النهاية هذه في ذاكرة التخزين المؤقت المحلية. إذا كان PSN يحتوي على جلسة وهمية أو نقطة نهاية، فقد يؤدي ذلك إلى حالة الوضع الخطأ التي يتم عرضها لاحقا على جانب العميل.

عندما يحصل عميل على إجابات متعددة ل Probe 4 (يمكن أن يحتوي ConnectionData.xml على أكثر من PSN أساسي واحد) يتم إستخدام الرد السريع دائما.

المرحلة الثانية من الاكتشاف:

تكون جميع مستكشفات المرحلة 2 غير مباشرة مما يعني أن كل مسبار يقوم بتشغيل بحث جلسة العمل على PSN الوجهة. إذا لم يتمكن PSN من تحديد موقع الجلسة في ذاكرة التخزين المؤقت للجلسة المحلية، فعليه إجراء بحث MNT (مستندا إلى عنوان MAC فقط) للعثور على مالك جلسة العمل وإعادة اسم المالك إلى الوكيل.

بما أن كل تدقيق تدقيق مشغل جلسة بحث، المرحلة 2 إكتشاف يستطيع حتى كنت أكثر تأثرا بالمشكلة نتيجة من جلسة وهمية أو وهمية.

إذا وصل PSN إلى المرحلة 2، فإن تحقيق الاكتشاف الموجود في ذاكرة التخزين المؤقت للجلسة يقوم بإنشاء إدخال وهمي أو قديم لنفس نقطة النهاية. ينتج عنه حالة الوضع الخطأ التي تم إرجاعها إلى المستخدم النهائي.

يوضح المثال كيف يحدث الوضع عندما يحتفظ PSN بجلسة عمل قديمة أو جلسة وهمية:

ملاحظة: من المهم تذكر أن هذه المشكلة لا يمكن أن تظهر إلا عند فشل جميع إختبارات الاكتشاف المستندة إلى إعادة التوجيه أو عند تنفيذ الوضع غير إعادة التوجيه.

1. أي من إختبارات Find my session الصادرة عن وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)).

2. يقوم PSN بالبحث عن الجلسة في ذاكرة التخزين المؤقت للجلسة. إن يكون الجلسة أن يكون أسست، يقع جلسة عمل وهمي إصدار.

3. تقوم PSN بتشغيل تحديد سياسة توفير العميل. في حالة ما، تكون جلسة العمل الوهمية التي تحتوي على سمات مصادقة/تفويض، وجميع السياسات التي تم تكوينها بواسطة العميل محددة جدا (يتم إنشاء السياسات لمجموعات Active Directory معينة على سبيل المثال)، يتعذر على PSN تعيين سياسة تزويد عميل صحيحة. يمكن أن يظهر هذا في رسالة الخطأ: "تم تكوين تجاوز فحص AnyConnect لشبكتك لاستخدام وكيل Cisco NAC".

- في حال كانت سياسات إمداد العميل عامة (تكون السمات المتاحة في الجلسة الوهمية كافية لمطابقة السياسة مع تكوين AnyConnect)، فإن ردود PSN تكون بالتفاصيل اللازمة لمتابعة عملية التقييم.

- في هذه الخطوة أيضا عندما يمكننا التعامل مع جلسات العمل القديمة PSN Response مباشرة مع التوافق مع حالة الوضع ولا يتم تنفيذ جميع الخطوات التالية. لا تقوم PSN بإرسال COA لأنها تعتقد أن جلسة العمل متوافقة بالفعل. في سجلات Radius Live لا يوجد حدث جلسة يعرض مع حالة متوافق.

4. بالنسبة لسيناريو الجلسة الوهمية، تستمر وحدة وضعية محرك خدمات الهوية (ISE) مع طلب الوضع الأولي. يحتوي هذا الطلب على معلومات حول جميع منتجات إدارة الأمان والتصحيحات التي تم الكشف عنها على نقطة النهاية.

5. تستخدم PSN معلومات من سمات الطلب والجلسة لمطابقة سياسة الوضع المناسبة. لأن الجلسة الوهمية بها نقص في السمات في هذه المرحلة ليس لدينا سياسة لنطابقها. في مثل هذه الحالة، يرد PSN على نقطة النهاية أنها متوافقة حيث إن هذا هو سلوك ISE الافتراضي في حالة عدم تطابق سياسة الوضع.

ملاحظة: عندما يكون هناك سياسة عامة يمكن تحديدها من سمات الجلسة الوهمية، نواصل الخطوة 6.

6. ترجع PSN سياسات الوضع المحددة إلى الوكيل.

ملاحظة: في حالة عدم إمكانية تحديد أي نهج ترجع PSN حالة التوافق.

7. يقوم الوكيل بإرجاع الحالات لكل نهج/متطلب كما تم تمريره أو فشله.

8. يتم إجراء تقييم التقرير على ISE وتغييرات حالة جلسة العمل إلى متوافق.

ملاحظة: في حالة حدوث مشاكل في الوضع بسبب الجلسة الوهمية، يحتمل أن يلاحظ مسؤول ISE بعض COAs الفاشلة في الوضع مثل هذه الحالة يتم تنفيذ طلبات COA من PSNs خاطئة ومن معرفات الجلسة الخطأ.

لا تبدأ عملية الاكتشاف في محاولة مصادقة جديدة

تم تصميم وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)) لمراقبة عدد محدود من الأحداث على نقطة النهاية لتشغيل عملية اكتشاف. قائمة الأحداث التي تؤدي إلى اكتشاف:

- تثبيت الوحدة النمطية لوضعية محرك خدمات الهوية (ISE) الأولي.

- تسجيل دخول المستخدم.

- أحداث الطاقة.

- تغيير حالة الواجهة.

- يتم إستئناف نظام التشغيل بعد النوم.

- تغيير العبارة الافتراضية (DG).

- فشل إعادة تقييم الوضع (PRA)، راجع معرف تصحيح الأخطاء من Cisco CSCvo69557

لم يتم الكشف عن مصادقة dot1x الجديدة أو إلغاء تأمين الكمبيوتر أو تغيير عنوان IP بواسطة وحدة وضع ISE.

يتعذر على وحدة وضعية محرك خدمات الهوية (ISE) اكتشاف مصادقة جديدة أو محاولة إعادة مصادقة في هذه السيناريوهات :

- تضرب إعادة المصادقة PSN مختلف (إما بسبب قرارات LB أو بسبب مشاكل مع PSN الأصلي).

- يقوم NAD بإنشاء معرف جلسة عمل جديد عند إعادة المصادقة.

إعادة المصادقة على PSN مختلف

مثال على إعادة المصادقة على PSN مختلف بسبب انقطاع شبكة PSN الأصلية. السيناريو مع موازن التحميل يبدو متشابها جدا. في حالة LB، يتم توجيه إعادة المصادقة إلى PSN مختلف نتيجة لانتهاء صلاحية مؤقت اللصق.

1. المصادقة الأولية على PSN1.

2. تم إنشاء ABC لجلسة العمل في ذاكرة التخزين المؤقت لجلسة PSN1.

3. تقييم الوضع الذي تم إجراؤه مع PSN1.

4. تنتقل حالة ABS لجلسة العمل إلى التوافق.

5. يؤدي COA الذي يتم تشغيله بواسطة تغيير حالة الوضع إلى إعادة مصادقة نقطة النهاية لتطبيق مستوى الوصول التالي.

6. يصبح PSN1 غير متاح.

7. إعادة المصادقة لجلسة عمل ABC يضرب PSN2.

8. بما أنها جلسة جديدة لحالة PSN2 للجلسة تصبح معلقة.

حالة الوضع الأولي التي تم تعيينها بواسطة PSN للجلسة:

ملاحظة: يصف جهاز الحالة تحديد أولي فقط لحالة الوضع. يمكن أن تصبح كل جلسة عمل تم وضع علامة عليها كغير معروفة لاحقا متوافقة أو غير متوافقة بناء على تقييم التقرير الذي تم تلقيه من وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)).

NAD يولد معرف جلسة جديد في إعادة المصادقة

وقد يحدث هذا في السيناريوهين الأكثر شيوعا:

- تم تكوين إعادة المصادقة بشكل غير صحيح على جانب ISE. يتم تغطية حل هذه المشكلة لاحقا في هذا المستند.

- السلوك الخاطئ من جانب NAD - عادة ويحافظ على معرف الجلسة نفسه أثناء محاولة إعادة المصادقة. في حالة اكتشاف NAD لتغيير معرف جلسة عمل عند إعادة المصادقة، فمن المحتمل أن يكون هذا سلوكا خاطئا يلزم التحقق منه على NAD نفسه.

يمكن إنشاء معرف الجلسة الجديد في بعض سيناريوهات حالة الركن الأخرى. على سبيل المثال، في بعض الحالات، قد يكون التجوال اللاسلكي سببا لذلك. الشيء الرئيسي هنا، ISE PSN يضع دائما جلسة جديدة في حالة معلق ما لم يتم تكوين تأجير الوضع. يرد شرح لتأجير الوضع لاحقا في هذا المستند.

طريقة سريعة للتحديد متى كانت المشكلة ناجمة عن جلسة العمل الحجرية/الوهمية

لتحديد ما إذا كان AnyConnect يظهر التوافق أثناء وجوده في حالة إعادة التوجيه بسبب جلسة العمل الحجرية/الوهمية، يلزمنا الوصول إلى نقطة النهاية بينما تكون في حالة إشكالية.

1. التحقيق في تفاصيل فحص النظام:

1. اضغط على رمز التروس في واجهة مستخدم AnyConnect

2. في الإطار الجديد، انتقل إلى علامة التبويب "مسح النظام" وإحصاءات علامة التبويب الفرعية

هنا، انتبه إلى عنصرين:

- وقت بدء الفحص الأحدث - يجب أن يكون الطابع الزمني هنا هو إغلاق الوقت عند اكتشاف المشكلة.

- Policy Server - يشير هذا الملف إلى اسم خادم النهج الذي قام بتقييم الوضع لنقطة النهاية. يجب مقارنة FQDN من هنا مع FQDN من Redirect-URL (لوضعية قاعدة إعادة التوجيه) أو اسم PSN المأخوذ من محاولة المصادقة الأخيرة (لوضعية إعادة التوجيه).

2. قارن Policy Server FQDN من إحصائيات مسح النظام باسم العقدة التي قامت بمصادقة نقطة النهاية:

في المثال المحدد هناك عدم تطابق بين الاسم الذي يشير إلى أن PSN باسم cisco-ise2 يحمل جلسة وهمية أو وهمية لنقطة النهاية هذه.

يظهر العرض التوضيحي تسجيل الخطوات اللازمة لتعريف المشكلة:

أستكشاف أخطاء جلسة العمل الوهمية/القديمة وإصلاحها

المثال السابق هو التمييز بين إصدار جلسة عمل صفرية أو وهمية ومشكلة عملية الاكتشاف التي لم تبدأ. في الوقت نفسه، نحن بحاجة إلى تحديد الجلسة الفعلية التي أطلقت المشكلة لفهم أفضل كيف بالضبط أنها تصبح قضية وهمية أو جلسة.

بينما لا يمكن تجنب جلسات وهمية في بعض السيناريوهات. نحن بحاجة إلى ضمان عدم وجود جلسات وهمية في البيئة بسبب بعض أفضل الممارسات التي لم يتم تنفيذها.

مجموعة حزم DART

تحليل حزمة DART مأخوذة من نقطة النهاية التي تستنسخ المشكلة.

- احتفظ بسجلات هامة فقط في DART. يوصى بمسح السجلات قبل إعادة إنشاء المشكلة.

لتحقيق ذلك، يجب أن تبدأ الأداة المساعدة لحزمة DART كمسؤول ثم تقوم بتنظيف السجل.

1. على Windows Navigate لبدء وبدء كتابة DART، انقر بزر الماوس الأيمن واختر - تشغيل كمسؤول

2. في أول شاشة معالج اضغط على التالي

3. في شاشة المعالج التالي، اضغط على مسح كل السجلات

4. بعد أن يتم نسخ المشكلة، يمكن جمع DART من هنا، اضغط على التالي.

تحليل حزمة DART

بعد تجميع حزمة DART، نحتاج إلى إلغاء أرشفتها والتركيز على الملف AnyConnect_ISEPosture.txt الموجود في المجلد وحدة Cisco AnyConnect ISE Posture. يحتوي هذا الملف على كافة الأحداث المتعلقة بالاكتشاف.

1. بدء أستكشاف الأخطاء وإصلاحها والتعرف على جميع لحظات إعادة تشغيل الاكتشاف. الكلمات الأساسية التي سيتم البحث عنها هي إعادة تشغيل الاكتشاف أو اكتشاف HTTP. هنا، انتقل إلى الخط مع إعادة تشغيل الاكتشاف التي حدثت في اللحظة المثيرة للمشاكل:

2. بعد إعادة تشغيل الاكتشاف، يمكنك مشاهدة سطر يحتوي على - التحقق من أهداف مرحلة MNT. هذا مؤشر بدء اكتشاف المرحلة الأولى:

يوصى بتمييز جميع الاختبارات المستندة إلى إعادة التوجيه التي لها نفس اللون بينما تحتاج شبكات PSN المتصلة سابقا المأخوذة من ConnectionData.xml (أهداف حالة المصادقة) إلى إبرازها بألوان مختلفة حيث أن شبكات PSN FQDN تكون عادة متشابهة جدا ويصعب تحديد الفرق.

3.اقرأ ملفات السجل لترى نتيجة لكل إختبار. وكما قيل بالفعل في حالة المشكلة التي يسببها جلسة العمل الوهمية/الصخرية، فإنه يجب فشل جميع التحقيقات المستندة إلى إعادة التوجيه. هذا مثال على كيف يبدو المسبار الفاشل:

4. في مكان ما في الملف بعد إعادة تشغيل الاكتشاف للمرحلة 1 أو المرحلة 2، ترى ردا ناجحا من شبكة واحدة (PSN) أو أكثر:

5. بعد عدة أسطر، هناك سطر مع الكلمة الأساسية MSG_NS_SWISS_NEW_SESSION. يحتوي هذا السطر على معرف جلسة عمل فعلي تم تحديده بواسطة PSN كنتيجة للبحث عن جلسة العمل. أستخدم معرف جلسة العمل هذه لمزيد من التحقيق في ISE لمعرفة كيف تصبح هذه الجلسة قديمة/وهمية:

التحقيق في سجلات ISE

في guest.log مع تمكين مكون clientwebApp في تصحيح الأخطاء، يمكن رؤية PSN الذي يرد بجلسة عمل stale/phantom.

يحصل PSN على طلب من وكيل ISE Posture (وضعية محرك خدمات الهوية (ISE)). يمكنك ملاحظة أن هذا طلب من AnyConnect بسبب قيمة وكيل المستخدم:

cisco.cpm.client.posture.PostureStatusServlet -::- Got http request from 192.168.255.228 user agent is: Mozilla/4.0 (compatible; WINDOWS; 1.2.1.6.1.48; AnyConnect Posture Agent v.4.6.03049)

cisco.cpm.client.posture.PostureStatusServlet -::- mac_list from http request ==> C0:4A:00:1F:6B:39

cisco.cpm.client.posture.PostureStatusServlet -::- iplist from http request ==> 192.168.255.228

cisco.cpm.client.posture.PostureStatusServlet -::- Session id from http request - req.getParameter(sessionId) ==> null

يحتوي الطلب على صفيفات من عناوين IP وعناوين MAC. في هذا المثال الخاص، يحتفظ كل صفيف بقيمة واحدة فقط. كما يوضح السجل أن معرف جلسة العمل من الطلب فارغ مما يشير إلى أن هذا الطلب من الاستفسار المستند إلى غير إعادة التوجيه.

لاحقا يمكنك أن ترى كيف يتم إستخدام قيم من الصفيفات لتحديد مكان معرف جلسة العمل:

cpm.client.provisioning.utils.ProvisioningUtil -::- the input ipAddress from the list currently processed in the for loop ==> 192.168.255.228

cpm.client.provisioning.utils.ProvisioningUtil -::- the ipAddress that matched the http request remote address ==> 192.168.255.228

cpm.client.provisioning.utils.ProvisioningUtil -::- the clientMac from the macarray list for the for loop index matching the ipAddress list index ==> C0-4A-00-1F-6B-39

cisco.cpm.client.posture.PostureStatusServlet -::- Found Client IP matching the remote IP 192.168.255.228, corresponding mac address C0-4A-00-1F-6B-39

cpm.client.provisioning.utils.ProvisioningUtil -::- Session = 0a3e949c000000495c216240

بعد السطر الذي يحتوي على كلمات أساسية تم إرسال إستجابة http يمكنك مشاهدة المحتوى من الرد الفعلي:

cisco.cpm.client.posture.PostureStatusServlet -::- Sent an http response to  192.168.255.228 with X-ISE-PDP=clemea19-ise1.demo.local.

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-PDP value is clemea19-ise1.demo.local

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE value is /auth/perfigo_validate.jsp

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE_PORT value is 8443

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_PORT value is 8443

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-GUESTFLOW value is false

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_CONFIG_URL value is https://clemea19-ise1.demo.local:8443/auth/anyconnect?uuid=f62337c2-7f2e-4b7f-a89a-3508d761173c

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_CONFIG_URI value is /auth/anyconnect?uuid=f62337c2-7f2e-4b7f-a89a-3508d761173c

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_URL value is https://clemea19-ise1.demo.local:8443/auth/provisioning/download/066ac0d6-2df9-4a2c-a129-fabf1ace36aa

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_URI value is /auth/provisioning/download/066ac0d6-2df9-4a2c-a129-fabf1ace36aa

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-AC_PKG_VER value is 4.6.3049.0

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-STATUS_PATH value is /auth/status

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-BACKUP_SERVERS value is clemea19-ise2.demo.local

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-SessionId value is 0a3e949c000000495c216240

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-PostureDomain value is posture_domain

cpm.client.provisioning.utils.ProvisioningUtil -::- header X-ISE-POSTURE_STATUS value is Unknown

التحقيق في تقارير شركة ISE

بعد أن تعرف معرف الجلسة الصخرية/الوهمية، يمكنك التحقيق في تقرير محاسبة RADIUS للحصول على فهم أفضل حول ما تسبب في أن تصبح هذه الجلسة صورية/وهمية:

- انتقل إلى "العمليات" > "التقارير" > "نقاط النهاية" و"المستخدمين" > "تقرير محاسبة RADIUS" وقم بتشغيل هذا التقرير لمدة 7 أيام. معرف نقطة نهاية المستخدم كمفتاح تصفية.

مثال لتقرير يوضح كيف تم ترك جلسة العمل القديمة على ciscolive-ise2:

1. جاءت بداية المحاسبة لجلسة العمل إلى PSN ciscolive-ise2

2. تمت معالجة التحديث المؤقت للجلسة على PSN نفسه.

3. جاءت رسالة توقف المحاسبة لمعرف جلسة العمل الإشكالي إلى PSN مختلف (cisco-ise1).

طريقة سريعة لتحديد وقت حدوث المشكلة بسبب عدم إعادة تشغيل الاكتشاف

وهنا ينطبق نفس المنطق على الإصدار السابق. الفرق الوحيد هو أنك بحاجة إلى التركيز على وقت بدء أحدث مسح ضوئي. لهذا النوع من المشاكل، يكون الطابع الزمني لآخر مسح ضوئي في مكان ما في الماضي.

عادة عندما يكتشف المستخدم النهائي مشكلة، يظهر مسح ضوئي حدث منذ بعض الوقت. بينما في سجلات ISE Radius Live، تظهر محاولات المصادقة الأخيرة من نقطة النهاية الإشكالية.

يظهر العرض التوضيحي تسجيل الخطوات اللازمة لتعريف المشكلة:

أستكشاف الأخطاء وإصلاحها المتقدمة غياب إعادة تشغيل الاكتشاف

النهج هنا مماثل جدا لقسم جلسة عمل باستكشاف الأخطاء وإصلاحها المتقدم</وهمي. عنصر أستكشاف الأخطاء وإصلاحها الرئيسي هو تحقيق حزمة DART. داخل حزمة DART، يمكنك البحث عن عمليات إعادة تشغيل الاكتشاف كما هو موضح للإصدار السابق وتأكد من عدم وجود إعادة تشغيل اكتشاف في الوقت الذي تم فيه الإبلاغ عن المشكلة.

على جانب ISE، ركز على تقرير مصادقة Radius Live Log/ Radius لتأكيد حدوث تجاوز فشل بين PSN أو تم إنشاء معرف جلسة جديد بواسطة NAD.

الحل

النهج التقليدي - تجنب المشكلة

وتاريخيا، لم تكن هناك ميزة على البنية الأساسية للخدمات (ISE) يمكنها حل المشكلات الموضحة في هذا المستند، ومن ثم فإن الطريقة الوحيدة هي الاعتماد على مجموعة أفضل الممارسات التي يتم تنفيذها على الشبكة وعلى إدارة البنية الأساسية (ISE) لتقليل المخاطر إلى الحد الأدنى.

أفضل الممارسات التي يمكنها تقليل مقدار الجلسات البسيطة أو الوهمية في نشر ISE

تنفيذ الوضع القائم على إعادة التوجيه دائما عند الإمكان

الوسيطة المضادة الشائعة لهذه التوصية هي تجربة مستخدم سيئة حيث يتم ملاحظة الإطارات المنبثقة في نظام التشغيل أو المستعرضات التي تشير إلى إعادة التوجيه بينما تقوم وحدة وضع AnyConnect ISE في الخلفية بإجراء عملية تقييم.

كحل لهذا، من الممكن إعادة توجيه عمليات أستكشاف وحدة ISE Posture النمطية فقط والسماح بشكل انتقائي لجميع حركة المرور الأخرى.

يوضح المثال قائمة التحكم في الوصول (ACL) المعاد توجيهها والمصممة لإعادة توجيه طلبات HTTP فقط إلى مضيف الاكتشاف (10.1.1.1 في هذا المثال) و enroll.cisco.com (172.16.1.80):

ip access-list extended REDIRECT-DH-ENROLL

permit tcp any host 10.1.1.1 eq www

permit tcp any host 172.16.1.80

deny   ip any any

للحفاظ على مستوى مقبول من الأمان، يمكن دمج قائمة التحكم في الوصول لإعادة التوجيه هذه مع قائمة التحكم في الوصول (DACL) المخصصة من ISE.

تسمح الحالة المعلقة بالاتصالات فقط ب PSN حيث تمت مصادقة نقطة النهاية

يفيد هذا النهج البيئات التي لا يتم فيها دعم إعادة توجيه عنوان URL (على سبيل المثال، عمليات التنفيذ مع NADs الخاصة بالجهات الخارجية).

كحل، تحتاج إلى تنفيذ العديد من سياسات تخويل PosturePending (نهج واحد لكل PSN). يجب أن يحتوي كل نهج كأحد الشروط على اسم PSN حيث تم المصادقة. في ملف تعريف التخويل المعين لكل نهج يجب حظر الوصول إلى جميع PSN باستثناء العقدة التي حدثت فيها المصادقة.

إنشاء سياسات تفويض لنشر عقدتين:

1. وضع السياسة المعلقة ل PSN1.

2. اسم PSN1 المستخدم كشرط في النهج.

3. ملف تعريف التخويل مع قائمة التحكم في الوصول (ACL) الذي يمنع الوصول إلى جميع شبكات PSN باستثناء PSN1.

4. وضع السياسة المعلقة ل PSN2.

5. اسم PSN2 المستخدم كشرط في السياسة.

6. ملف تعريف التخويل مع قائمة التحكم في الوصول (ACL) التي تمنع الوصول إلى جميع شبكات PSN باستثناء PSN2.

7. نهج التفويض "المتوافق" للوضع.

ويوضح الشكل كيف يعمل هذا النهج:

1. تصل المصادقة إلى PSN1.

2. نتيجة لسياسات التخويل المكونة، يقوم PSN1 بتعيين ملف تعريف التخويل الذي يمنع الوصول إلى جميع العقد الأخرى باستثناء PSN1.

3. تعيد وحدة AnyConnect ISE Posture تشغيل عملية الاكتشاف.

4. التحقيق في PSN2 الذي تم حظره بواسطة NAD بواسطة قائمة تحكم في الوصول (ACL) تم تعيينها في وقت سابق.

5. التحقق من PSN1 المسموح به من قبل قائمة التحكم في الوصول (ACL) المخصصة على NAD.

أفضل الممارسات لموازن الأحمال

- تم تمكين اللصق على LB للمصادقة والمحاسبة مع معرف Call-Station كمفتاح لصق. يتوفر هنا مزيد من التفاصيل حول أفضل ممارسات LB الخاصة ب ISE.

- أستخدم مؤقت اللصق أطول من متوسط يوم العمل لتغطية اللحظة التي يدخل فيها الكمبيوتر في وضع السكون (على سبيل المثال، 10 ساعات بدلا من 8 ساعات).

- في حالة تنفيذ إعادة المصادقة، أستخدم مؤقت إعادة المصادقة أقل قليلا من مؤقت عدم تطابق اللصق (على سبيل المثال، 8 ساعات إذا تم تكوين اللصق لعشر ساعات). وهذا يضمن إطالة فترة اللصق بواسطة إعادة المصادقة.

Posture عبر حالة إستخدام الشبكة الخاصة الظاهرية (VPN)

- يضمن أن الفاصل الزمني للتحديث المؤقت للمحاسبة أعلى من VPN-session-timeout أو مساو له. يحمي هذا من حساب يرفرفة بين PSNs على طويل العمر VPN جلسة.

يوضح هذا المثال الفترة الزمنية لتحديث المحاسبة المؤقتة التي تم تكوينها لمدة 20 ساعة. لا يمنع هذا التحديث المؤقت الأولي الذي يحمل عنوان IP المعين إلى نقطة النهاية.

aaa-server ISE protocol radius

interim-accounting-update periodic 20

group-policy SSL-VPN attributes

vpn-idle-timeout 1200

vpn-session-timeout 1200

يمكن تنفيذ أفضل الممارسات لتقليل التأثير من غياب إعادة تشغيل اكتشاف وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)) النمطية

تمكين تأجير الوضع

هذه ميزة على ISE تضع علامة على نقطة النهاية كمتوافقة لفترة محددة (1-365 يوما). قيمة تأجير Posture هي سمة نقطة نهاية تعني أنها مخزنة ISE DB. يتم نسخ جميع سمات نقاط النهاية التي تتضمن تأجير الوضع عبر جميع العقد في نشر ISE.

عندما يحصل PSN على جلسة جديدة لوضعية نقطة النهاية يمكن إستخدام تأجير لوضع نقطة النهاية لوضع علامة على الجلسة على أنها متوافق مباشرة.

لاتخاذ هذا القرار تستخدم PSN 3 قيم. هذه القيم هي:

- مقدار الأيام المحدد لتأجير الوضع في إعدادات ISE: انتقل إلى الإدارة > النظام > Posture > الإعدادات العامة:

- قيمة سمة PostureExpiry - هذه سمة نقطة نهاية فعلية تحتوي على طابع زمني ل Epoch. يتم ملء قيمة PostureExpiry في البداية على أول محاولة وضع ناجحة لنقطة النهاية بعد تمكين تأجير الوضع من قبل مسؤول ISE. تم تحديث هذه القيمة لاحقا في محاولة الوضع الناجحة التالية التي تحدث بعد انتهاء صلاحية الإيجار.

يمكنك أن ترى PostureExpiry في رؤية السياق > نقاط النهاية أثناء فتح إحدى نقاط النهاية postured:

يمكن تحويل هذه القيمة إلى طابع زمني يمكن قراءته من قبل الإنسان على سبيل المثال هنا - https://www.epochconverter.com/

- وقت نظام PSN في الوقت الذي تحدث فيه المصادقة الجديدة

عندما تصل المصادقة لنقطة نهاية ذات تأجير وضعي إلى PSN، فإنها تستخدم PostureExpiry وتاريخ النظام للحصول على عدد من الأيام التي مرت من آخر تحقق من الوضع الناجح. إذا كانت قيمة النتيجة ضمن فترة تأجير الوضع المحددة في الإعدادات، فإن جلسة العمل تحصل على حالة متوافق. إذا كانت قيمة النتيجة أعلى من قيمة التأجير، تحصل الجلسة على حالة غير معروفة. يؤدي هذا إلى تشغيل الحالة المراد تنفيذها مرة أخرى ويمكن حفظ قيمة PostureExpiry الجديدة.

يشرح الشكل العملية عند حدوث تجاوز الفشل:

1. تحدث المصادقة الأولية مع PSN1.

2. تم إنشاء ABC لجلسة العمل في ذاكرة التخزين المؤقت لجلسة العمل.

3. يتم إجراء تقييم للوضع.

4. تغييرات حالة جلسة العمل إلى متوافق

5. يؤدي COA الذي يتم تشغيله بواسطة تغيير حالة الوضع إلى إعادة مصادقة نقطة النهاية لتطبيق مستوى الوصول التالي.

6. قيمة PostureExpiry المحفوظة في نقطة النهاية.

7. نسخ بيانات نقاط النهاية نسخا متماثلا عبر النشر.

8. تصل المصادقة التالية إلى PSN2.

9. يتحقق PSN2 مما إذا كانت نقطة النهاية ضمن تأجير وضعي صالح.

11. تمت إضافة جلسة العمل إلى ذاكرة التخزين المؤقت لجلسة العمل كتوافق.

12 - نظرا لتأجير جلسة العمل الصحيحة، تم إنشاؤها بتوافق حالة الوضع.

تنفيذ إعادة المصادقة

قم دائما بدفع مؤقت إعادة المصادقة من ISE مع تحديد طلب RADIUS في الحفاظ على الاتصال أثناء إعادة المصادقة. يضمن هذا الإعداد الاحتفاظ بمعرف جلسة العمل نفسه عند إعادة المصادقة.

.

البيئات التي تحتوي على موازن للأحمال

ويمكن تنفيذ نفس المجموعة من أفضل الممارسات التي تم شرحها في قسم الجلسة الصورية/الوهمية.

يمكن إستخدام شبكات فرعية مختلفة للحالات المعلقة والمتوافقة

عندما يوفر تصميم الشبكة فرصة إستخدام حالات مختلفة معلقة ومتوافقة، يضمن هذا النهج أن يؤدي كل تغيير في حالة الوضع إلى تغيير البوابة الافتراضية.

تقييم الوضع المستخدم في نفس الفترة كمؤقت إعادة المصادقة

يمكن تمكين "تقييم الوضع" مع تساوي الفاصل الزمني لمؤقت إعادة المصادقة. في مثل هذه الحالة، عندما يصبح PSN الأصلي غير متاح PRA يعيد إخفاق الإكتشاف عملية.

نهج حديث - مشاركة الحالة

كجزء من تحسين تم تنفيذه، تم وصف ذلك في الحزمة CSCvi35647 من Cisco 6 ل ISE 2.6 وحصلت على ميزة جديدة تقوم بتنفيذ مشاركة حالة حالة جلسة العمل عبر جميع العقد في نشر ISE. ويتم دمج هذا التحسين في الإصدارات المستقبلية: تصحيحات ISE 2.7 2 و ISE 3.0.

تستند هذه الميزة الجديدة إلى آلية دليل الجلسة الخفيفة (LSD) التي تم تقديمها في ISE 2.6. في الإصدارات الأحدث، تمت إعادة تسمية هذه الوظيفة إلى دليل جلسات عمل RADIUS لتوزيع البيانات الخفيفة (LDD).  يتم تمكين "توزيع البيانات الخفيفة" بشكل افتراضي ويسمح بمشاركة سياق جلسة عمل محدودة بين عقد ISE. لا يوجد شيء مثل النسخ المتماثل الكامل لسياق جلسة العمل بين PSNs، فقط مقدار محدود من السمات المشتركة لكل جلسة عمل.

تتمثل الفكرة الرئيسية وراء دليل جلسة العمل الخفيفة في إزالة الحاجة إلى تنفيذ إستدعاءات واجهة برمجة التطبيقات (API) الباهظة للموارد إلى MNT عندما يتعين على إحدى العقد في النشر معرفة من هو مالك جلسة العمل الحالية. يلزم البحث عن المالك غالبا عند بدء تدفق COA. باستخدام LDD يمكن لكل PSN العثور على مالك فعلي للجلسة من ذاكرة التخزين المؤقت المحلية لدليل جلسة عمل Radius.

بنية توزيع البيانات الخفيفة

تحتوي هذه الوظيفة على العناصر التالية:

- ذاكرة التخزين المؤقت لدليل جلسة عمل RADIUS (RSD) - توجد ذاكرة التخزين المؤقت هذه على كل عقدة ISE وتخزن جميع الجلسات النشطة المقدمة في نشر ISE. تحتوي كل جلسة عمل على مقدار محدود من السمات في ذاكرة التخزين المؤقت. أمثلة للسمات المخزنة في دليل جلسة RADIUS لكل جلسة:

- معرف جلسة العمل.

- Endpoint MAC.

- معرف CallStationID.

- IP لنقطة النهاية.

- PSN IP - PSN حيث حدثت المصادقة.

- PSN FQDN - نفس الشيء كما هو موضح أعلاه.

- عنوان NAS-IP.

- عنوان NAS-IPv6.

- الحالة - مصادق عليها، تم تشغيلها، تم إيقافها.

- RabbitMQ Exchange - تم تكوين تبادل يتم من خلاله تقديم Publisher و Queue ذات الصلة و Consumer على كل عقدة في نشر ISE. وهذا يضمن تكوين مخطط الشبكة الكاملة بين جميع عقد ISE.

- Publisher - يمثل دليل جلسة RADIUS ناشرا هنا. عند إنشاء مصادقة ناجحة جديدة تمت معالجتها بواسطة جلسة عمل PSN جديدة في ذاكرة التخزين المؤقت لجلسة عمل PSN. لجلسة العمل هذه، يتم وضع مجموعة محدودة من السمات في دليل جلسة عمل RADIUS.

- مستهلك - في جميع العقد الأخرى يمثل دليل جلسة RADIUS مستهلك.

ملاحظة: توجد مصطلحات ومعمار General RabbitMQ خارج نطاق هذا المستند.

يشرح الشكل كيفية عمل تدفق COA مع ذاكرة التخزين المؤقت ل RSD:

1. تحدث المصادقة الأولية مع PSN1.

2. تم إنشاء ABC لجلسة العمل في ذاكرة التخزين المؤقت لجلسة العمل.

3. يتم حفظ السمات المطلوبة في RSD.

4. جلسة عمل مشتركة عبر RabbitMQ مع جميع عقد ISE الأخرى.

5. يتم إنشاء جلسة العمل في ذاكرة التخزين المؤقت ل RSD على جميع عقد ISE.

6. تصل بيانات ملف التعريف الجديدة إلى PSN2.

7. يتم إعادة تصنيف نقطة النهاية وفي حالة التغيير الذي يتطلب تنفيذ COA، ينتقل PSN2 مع الخطوة التالية.

8. إستدعاء واجهة برمجة تطبيقات (API) داخلي تم تقديمه إلى ذاكرة التخزين المؤقت ل RSD لتنفيذ COA.

9. البيانات من ذاكرة التخزين المؤقت ل RSD المستخدمة لإعداد رسالة COA للوكيل (COA التي تنتقل من عقدة ISE إلى أخرى، تحتوي على جميع التفاصيل التي يمكن أن تستخدمها عقدة الوجهة لإصدار طلب CAO إلى NAD). تم نقل رسالة COA أولا داخليا إلى وقت تشغيل PRRT (خادم AAA الفعلي داخل ISE).

10. يرسل PSN2 رسالة COA إلى PSN1.

11. يرسل PSN1 رسالة COA إلى NAD.

لاستكشاف أخطاء الاتصال عبر LDD وإصلاحها على ISE، يمكنك تمكين مكون Light Session Director في تصحيح الأخطاء:

مثال على رسالة تصحيح الأخطاء من lsd.log لإنشاء جلسة عمل ونشرها على PSN الأصلي:

DEBUG  [pool-45-thread-6][] cisco.cpm.lsd.service.LSDRedisClient -::::- Mapping Session ID 0a3e9498000008e05e071990 to session {"sessionID":"0a3e9498000008e05e071990","endpointMAC":"C0-4A-00-1F-6B-39","callingStationId":"c0-4a-00-1f-6b-39","ipv6AdressLst":[],"psnIP":"192.168.43.26","deviceIP":"192.168.255.102","destinationIP":"192.168.43.26","nasIP":"192.168.255.102","auditSessionID":"0a3e9498000008e05e071990","acctSessionID":"5e07197b/c0:4a:00:1f:6b:39/2299","timeStamp":1577523495,"status":"Started","id":"614f6c44-6c78-4289-b9fd-b352ff012ca4"}

DEBUG  [PrRTEvents-Executor-2][] cisco.cpm.lsd.service.LSDNetAccessEventListener -::::- Publishing session update for session 0a3e9498000008e05e071990

DEBUG  [PrRTEvents-Executor-2][] cisco.cpm.lsd.service.SessionPublisher -::::- Forwarding session 07a26b4b-ea13-438b-99b5-0bbadc9d8bac to batch manager

على جميع عقد ISE الأخرى، ترى كيفية إستهلاك جلسة عمل:

[pool-35-thread-38][] cisco.cpm.lsd.service.SessionConsumer -::::- Consumer is processing : sessionID:[0a3e9498000008e05e071990] status:[Started] id:[614f6c44-6c78-4289-b9fd-b352ff012ca4] auditSessionID:[0a3e9498000008e05e071990] accountingSessionID:[5e07197b/c0:4a:00:1f:6b:39/2299] endpointMAC:[C0-4A-00-1F-6B-39] callingStationId: [c0-4a-00-1f-6b-39] endpointIP:[null], IPv6 : [[]], psnIP:[192.168.43.26] deviceIP:[192.168.255.102] destinationIP:[192.168.43.26] nasIP:[192.168.255.102] nasIPv6:[null] timeStamp:[1577523495]

مشاركة حالة الوضع عبر RSD

تعمل مشاركة حالة الوضع بين العقد على حل المشكلة التي تحتوي على عرض مثل "وحدة AnyConnect ISE Posture Module تظهر متوافقة بينما حالة جلسة العمل على ISE معلقة" عندما يكون السبب الجذري إما جلسة عمل Stale/Phantom أو إعادة المصادقة على PSN مختلف بمعرف جلسة عمل أصلي لم يتم تشغيل الاكتشاف. بمجرد أن تصبح الجلسة متوافقة، تضع هذه المعلومات في جلسة RSD، وبعد ذلك يمكن إستخدامها من قبل كل PSN في النشر.

لا تزال هناك بعض الحالات الجانبية الأخرى التي لا يمكن حلها بواسطة الميزة الموصوفة. على سبيل المثال، سيناريو عند تشغيل NAD لإعادة المصادقة على PSN نفسه ولكن بمعرف جلسة مختلف. يمكن التعامل مع مثل هذه السيناريوهات مع أفضل الممارسات الموضحة في هذا المستند.

يوضح الشكل المخطط المستخدم لاختبار مشاركة حالة الوضع:

مشاركة حالة الوضع عبر RSD - جلسة عمل أصلية/وهمية

لإنشاء مصادقة جلسة عمل قديمة تم تنفيذها في البداية على SkgIse26-1 وفيما بعد وتمت إعادة تكوين NAD لإرسال المحاسبة إلى SkgEre-ise26-3. بعد إعادة توجيه رسالة محاسبة إلى PSN NAD الخطأ، تمت إعادة تكوينها مرة أخرى لإرسال عملية المحاسبة مرة أخرى إلى SkoichEre-ise26-1.

يوضح الشكل تقريرا محاسبيا يثبت وجود الجلسة الوهمية على SkoichIse26-3:

1. رسائل بداية المحاسبة التي تمت معالجتها بواسطة SkgEre-ise26-1.

2 - تحديث المحاسبة المؤقت للجلسة نفسها الذي جهزه Skokoere-ise26-3.

3 - وتنتهي الدورة في وقت لاحق في 26-1.

بعد مرور بعض الوقت تتصل نقطة النهاية مرة أخرى بالشبكة ولكن لم تعد عملية إعادة التوجيه تعمل. في guest.log of PSN - sochere-ise26-3، يمكنك رؤية رسائل السجل هذه مع تمكين مكون client-webapp في تصحيح الأخطاء:

2020-04-08 13:30:48,217 DEBUG [https-jsse-nio-192.168.43.226-8443-exec-4][] cisco.cpm.client.posture.Util -::- Local session 0A3E946C0000007D5B679296 is stale. Newer session for 00-50-56-B6-0B-C6 is 0A3E946C000000805B7C43A3. Owned by skuchere-ise26-1.example.com

عندما يكتشف PSN أنه يحتفظ بجلسة عمل وهمية/بدائية لنقطة النهاية، فإنه لا يرد على وحدة ISE Posture النمطية وهذا يسمح لنا بالحصول على الإجابة الصحيحة من PSN حيث حدثت آخر مصادقة.

كحل لمشكلة الجلسة السفلية/الوهمية الآن في الوقت الحالي من جلسة البحث عن PSN يتحقق من وجود أي جلسة جديدة لنقطة النهاية في RSD. في حالة إحتواء RSD على معرف جلسة عمل مختلف عن ما تمتلكه PSN في ذاكرة التخزين المؤقت للجلسة المحلية، يفترض أن جلسة العمل المقدمة في ذاكرة التخزين المؤقت لجلسة العمل منخفضة.

مشاركة حالة الوضع عبر RSD - تجاوز الفشل بين شبكات PSN

لإعادة إنتاج هذا السيناريو، تم تمكين مؤقت إعادة مصادقة قصير في ملف تعريف التخويل المعين إلى نقطة النهاية في حالة التوافق. وفي وقت لاحق، تمت إعادة تكوين NAD لإرسال المصادقة والمحاسبة إلى PSN آخر (skgEre-ise26-3). عند انتهاء صلاحية مؤقت إعادة المصادقة، لم تتم مصادقة نفس جلسة العمل على PSN مختلف.

يوضح الشكل تقرير مصادقة يوضح تجاوز الفشل للجلسة العادية من SkoichIse26-1 إلى SkoichIse26-3:

1. تتم المصادقة في skochaIse26-1، ويتم تعيين ملف تعريف التفويض مع إعادة التوجيه.

2. COA بعد تقييم الوضع الناجح.

3. المصادقة التالية عند تعيين ملف تعريف التخويل لحالة التوافق.

4. تصيب المصادقة PSN مختلف ولكنها لا تزال تحصل على ملف تعريف التخويل لحالة التوافق.

تحصل الجلسة على حالة التوافق على PSN الجديد بعد تجاوز الفشل في ise-psc.log مع تمكين مكونات EPM-PIP وNSF-session في DEBUG:

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Looking up session 0A3E946C000000896011D045 for attribute Session Session.PostureStatus

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.api.ExecutionContext -::::- Execution context has session id 0A3E946C000000896011D045

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.PIPManager -::::- Returning a PIP com.cisco.cpm.nsf.session.impl.SessionPIP for type SESSION and flow null

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.api.ExecutionContext -::::- Execution context has session id 0A3E946C000000896011D045

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Looking up session 0A3E946C000000896011D045

2020-04-09 11:06:42,176 DEBUG [SessionLifecycleNotifier][] cpm.nsf.session.internal.LRUAgingAlogrithm -::::- Accessed session 0A3E946C000000896011D045

2020-04-09 11:06:42,176 DEBUG [Thread-7979][] cpm.nsf.session.impl.SessionCache -::::- Returning for session 0A3E946C000000896011D045 data Attrs: {SavedUserNames=[bob@example.com], Acs.LastStepTime=1586423202174, Acs.AD-User-Qualified-Name=bob@example.com, Acs.AD-User-Resolved-DNs=CN=bob,CN=Users,DC=example,DC=com, Acs.StepData=[110=EXAMPLE, 111=bob@example.com, 112=example.com, 113=example.com, 115=example.com, 116=EXAMPLE], Acs.AD-Log-Id=[1585911138/4778, 1585911138/4779], __IntIdGrps__=[Ljava.lang.String;@6d3c29b5, IdentityGroup.Description=[Ljava.lang.String;@3fca88fb, EXAMPLE.ExternalGroups=S-1-5-21-875452798-754861120-3039794717-513, Acs.AD-Groups-Names=example.com/Users/Domain Users, Acs.AuthenCPMSessionID=0A3E946C000000896011D045, Acs.IsMachineAuthentication=false, InternalEndpoint.IdentityGroup=[Ljava.lang.String;@6daf4c5, IDStoreUserQueryCache=[EXAMPLE#bob@example.com], Acs.CurrentIDStoreName=EXAMPLE, Acs.AD-User-Join-Point=EXAMPLE.COM, Acs.Step=[24432, 24325, 24313, 24319, 24323, 24355, 24416], Acs.CustomerMessageDuplicator=, Network Access.WasMachineAuthenticated=false, IdentityGroup.Name=[Ljava.lang.String;@570ab37a, Acs.StepDataStart=110, Acs.AD-User-DNS-Domain=example.com, Network Access.AuthenticationMethod=4, Acs.AD-User-Resolved-Identities=bob@example.com, InternalUser.IdentityGroup=[Ljava.lang.String;@51a6caed, Acs.AuthenticationMethod=4, Acs.AD-User-NetBios-Name=EXAMPLE, Normalised Radius.RadiusFlowType=0, Network Access.AuthenticationIdentityStore=EXAMPLE, EXAMPLE.IdentityAccessRestricted=false, Acs.AD-User-SamAccount-Name=bob}

IndexValues: {}

2020-04-09 11:06:42,177 DEBUG [Thread-7979][] cisco.cpm.posture.pip.PostureStatusPIP -::::- set postureStatus based on posture LSD dictionary: Compliant

2020-04-09 11:06:42,177 DEBUG [Thread-7979][] cisco.cpm.posture.pip.PostureStatusPIP -::::- PostureStatusPIP for mac 00-50-56-B6-0B-C6 - Attribute Session.PostureStatus value is Compliant

تم حل المشكلة الأصلية بإضافة منطق إضافي في عملية تحديد حالة الوضع. يوضح الشكل ما تم تغييره (التغييرات التي تم إبرازها باللون الأحمر):