المحتويات

المقدمة

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

المشكلة

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

تجربة مسؤول ISE

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

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

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

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

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

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

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

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

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

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

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

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

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

مجموعة حزم DART

تحليل حزمة DART

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

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

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

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

الحل

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

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

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

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

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

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

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

مشاركة حالة الوضع عبر RSD - تجاوز الفشل بين شبكات 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 النموذجية:

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

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

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

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

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

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

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

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

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

- يعرض AnyConnect ISE حالة الوضع من دورة الاكتشاف السابقة لأن المصادقة الحالية لم تقم بتشغيل عملية اكتشاف.

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

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

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

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

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

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

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

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

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

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

1. أزالت جلسات العمل بدون بدء المحاسبة بعد حوالي 60 دقيقة من إنشائها: هناك مهمة خطأ يتم تنفيذها كل 5 دقائق للتحقق من حالة جلسة العمل وتنظيفها.

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

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

أمثلة على رسائل syslog من PSN:

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

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

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. يؤدي تغيير التفويض (الناتج عن تغيير حالة الوضع) إلى إعادة مصادقة نقطة النهاية لتطبيق مستوى الوصول التالي.

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

بعد ذلك، يعلق ABC في الحالة القديمة على 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 الخاصة بالحساب-إيقاف بواسطة 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 ل 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. يتم تنفيذ الدفع بمقابل الكاكاو من قبل شركة ISE؛ يؤدي هذا إلى تشغيل مستوى وصول جديد ليتم تعيينه.

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

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

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

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

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

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

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

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

أثناء هذه المرحلة، تقوم وحدة وضع 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 ثوان.

عندما يهبط المسبار 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 مباشرة مع حالة الوضع الخاصة بالتوافق ولا يتم تنفيذ جميع الخطوات التالية. لا تقوم PSN بإرسال COA لأنها تعتقد أن الجلسة متوافقة بالفعل. في سجلات Radius Live، لا يوجد حدث جلسة يعرض مع حالة متوافق.

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

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

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

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

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

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

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

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

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

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

الأحداث التي تؤدي إلى اكتشاف:

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

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

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

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

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

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

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

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

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

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

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

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

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

في حالة موازن التحميل، يتم توجيه إعادة المصادقة إلى 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 نفسها.

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

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

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

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

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

1. انقر فوق رمز التروس في واجهة مستخدم AnyConnect

2. في الإطار الجديد، انتقل إلى مسح النظام > الإحصاءات

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

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

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

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

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

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

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

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

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

مجموعة حزم 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. هذا مؤشر بدء اكتشاف المرحلة الأولى:

يوصى بتمييز جميع الاختبارات المستندة إلى إعادة التوجيه التي لها نفس اللون والتي تم الحصول عليها من 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 المباشرة/RADIUS لتأكيد حدوث تجاوز فشل بين شبكات PSN أو أنه تم إنشاء معرف جلسة جديد بواسطة NAD.

الحل

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

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

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

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

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

كحل لهذا، من الممكن إعادة توجيه عمليات أستكشاف وحدة 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.

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

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

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

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

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 قيم. هذه القيم هي:

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

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

تم تحديث هذه القيمة لاحقا في محاولة الوضع الناجحة التالية التي تحدث بعد انتهاء صلاحية الإيجار.

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

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

3. وقت نظام 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 يعيد تشغيل الإكتشاف عملية.

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

كجزء من تحسين تم تنفيذه (موضح في Cisco Bug ID CSCvi35647) يحتوي التصحيح 6 ل ISE 2.6 على ميزة جديدة تقوم بتنفيذ مشاركة حالة جلسة العمل عبر جميع العقد في نشر ISE.

ويتم دمج هذا التحسين في الإصدارات المستقبلية: ISE 2. 7 تصحيحات 2 و ISE 3. 0.

تستند هذه الميزة الجديدة إلى آلية "دليل الجلسة الخفيفة (LSD)" التي تم إدخالها في ISE 2.6. وفي الإصدارات الأحدث، تمت إعادة تسمية هذه الوظيفة إلى دليل جلسة عمل RADIUS الخاص ب Light Data Distribution (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

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

- الناشر

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

لجلسة العمل هذه، يتم وضع مجموعة محدودة من السمات في دليل جلسة عمل RADIUS.

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

ملاحظة: توجد مصطلحات ومعمار 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 للوكيل. ينتقل من عقدة ISE إلى أخرى ويحتوي على جميع التفاصيل التي يمكن للعقدة الوجهة إستخدامها لإصدار طلب CAO مرة أخرى إلى NAD. يتم أولا نقل رسالة COA داخليا إلى وقت تشغيل PRRT (خادم AAA الفعلي داخل ISE).

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

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

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

هنا مثال من debug رسالة من 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

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

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

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

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

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

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

لإنشاء جلسة عمل معتمة، يجب إجراء المصادقة في البداية على SKGuiIse26-1. ثم، يجب إعادة تكوين NAD لإرسال المحاسبة إلى SKGere-ise26-3.

بعد إعادة توجيه رسالة محاسبة إلى PSN الخطأ، يجب إعادة تكوين NAD (مرة أخرى) لإرسال المحاسبة مرة أخرى إلى SichUiIse26-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

يتم حل المشكلة الأصلية بإضافة منطق إضافي في عملية تحديد حالة الوضع.

يوضح هذا الرقم ما تم تغييره (التغييرات التي تم إبرازها باللون الأحمر):