تسعى مجموعة الوثائق لهذا المنتج جاهدة لاستخدام لغة خالية من التحيز. لأغراض مجموعة الوثائق هذه، يتم تعريف "خالية من التحيز" على أنها لغة لا تعني التمييز على أساس العمر، والإعاقة، والجنس، والهوية العرقية، والهوية الإثنية، والتوجه الجنسي، والحالة الاجتماعية والاقتصادية، والتمييز متعدد الجوانب. قد تكون الاستثناءات موجودة في الوثائق بسبب اللغة التي يتم تشفيرها بشكل ثابت في واجهات المستخدم الخاصة ببرنامج المنتج، أو اللغة المستخدمة بناءً على وثائق RFP، أو اللغة التي يستخدمها منتج الجهة الخارجية المُشار إليه. تعرّف على المزيد حول كيفية استخدام Cisco للغة الشاملة.
ترجمت Cisco هذا المستند باستخدام مجموعة من التقنيات الآلية والبشرية لتقديم محتوى دعم للمستخدمين في جميع أنحاء العالم بلغتهم الخاصة. يُرجى ملاحظة أن أفضل ترجمة آلية لن تكون دقيقة كما هو الحال مع الترجمة الاحترافية التي يقدمها مترجم محترف. تخلي Cisco Systems مسئوليتها عن دقة هذه الترجمات وتُوصي بالرجوع دائمًا إلى المستند الإنجليزي الأصلي (الرابط متوفر).
يصف هذا المستند مشكلة خدمات وضعية محرك خدمة الهوية العامة (ISE): "تظهر وحدة AnyConnect ISE Posture module المتوافقة..."
يصف هذا المستند مشكلة خدمات وضعية محرك خدمة الهوية العامة (ISE) - تظهر وحدة AnyConnect ISE Posture النمطية المتوافقة بينما حالة جلسة العمل على ISE معلقة.
وفي حين ان الاعراض هي نفسها دائما، هنالك أسباب أساسية متعددة لهذه المشكلة.
وغالبا ما يصبح حل هذه المسألة مستهلكا للوقت إلى حد كبير مما يؤدي إلى تأثير خطير.
يشرح هذا المستند:
للحصول على شرح افضل للمفاهيم الموصوفة لاحقا، يرجى الرجوع إلى:
تظهر هذه المشكلة عادة في غياب الوصول إلى الشبكة أو إعادة التوجيه المستمر إلى مدخل توفير عميل ISE في المستعرض، بينما تظهر وحدة وضعية AnyConect ISE، في الوقت نفسه، حالة التوافق.
تجربة المستخدم النهائي النموذجية:
عادة، في الفرز الأولي لهذه المشكلة، يقوم مسؤول ISE بإجراء تحقيق في سجلات RADIUS Live لضمان وجود مصادقة فعلية تصل إلى ISE.
يشير العرض الأول الذي تم اكتشافه في هذه المرحلة إلى عدم تطابق في حالة الوضع بين نقطة النهاية و ISE كما هو الحال في السجلات المباشرة أو تقارير مصادقة Radius آخر مصادقة ناجحة لنقطة النهاية تظهر حالة الوضع المعلق.
تجربة إدارة ISE النموذجية:
ملاحظة: لا يقدم دائما كل من جيم ودال في السجلات الحية عندما يظهر العدد المذكور. حدث جلسة عمل بحالة متوافق أكثر شيوعا للسيناريوهات التي تتسبب فيها جلسات العمل الوهمية أو الحدسية (الموضحة لاحقا في هذا المستند).
وتظهر هذه المشكلة عادة في سيناريوهين مشككين ولكل منهما أسباب أساسية متعددة. السيناريوهات:
في هذه الحالة، نحن عادة نتعامل مع جلسة عمل وهمية في ذاكرة التخزين المؤقت لجلسة PSN.
تحتوي وحدة ISE Posture النمطية في AnyConnect على عدد محدود من الأحداث التي تؤدي إلى تشغيل عملية الاكتشاف. من المحتمل أنه لم يتم اكتشاف أي من هذه الأحداث أثناء المصادقة أو إعادة المصادقة.
لفهم المشكلة بشكل أفضل، تحقق من منطق إدارة جلسة ISE المطلوبة وعملية اكتشاف AnyConnect.
في نشر ISE، هناك شخصان مسؤولان عن عملية إدارة جلسة العمل: PSN وعقدة المراقبة (MNT).
لاستكشاف هذه المشكلة وإصلاحها بشكل صحيح وتحديد هويتها، فمن المهم فهم نظرية إدارة جلسة العمل على كلا الشخصين.
كما هو موضح في هذه الصورة، تقوم عقدة MNT بإنشاء مواسم استنادا إلى رسائل syslog للمصادقة التي يتم تمريرها والتي تأتي من PSNs.
يمكن تحديث حالة جلسة العمل لاحقا بواسطة syslog للمحاسبة.
تتم إزالة جلسة العمل على MNT في 3 سيناريوهات:
1. أزلت جلسات العمل بدون بدء المحاسبة بعد حوالي 60 دقيقة من إنشائها: هناك مهمة خاصة يتم تنفيذها كل 5 دقائق للتحقق من حالة جلسة العمل وتنظيفها.
2. تمت إزالة جلسة العمل المنهاة بعد 15 دقيقة تقريبا من معالجة توقف المحاسبة بواسطة وظيفة المثبط نفسها.
3. تقوم نفس العملية على كل عملية تنفيذ بإزالة جلسات العمل الأخرى التي تم إجراؤها في الحالة "بدء" لأكثر من 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 معين. ذاكرة التخزين المؤقت لجلسة العمل محلية دائما للعقدة.
لا توجد آلية في ISE يمكنها إجراء النسخ المتماثل لحالة جلسة العمل الكاملة من عقدة إلى أخرى.
لكل معرف جلسة عمل نشط، يخزن PSN جميع السمات التي تم تجميعها أثناء مرحلة المصادقة/الاعتماد (على سبيل المثال، مجموعات المستخدمين الداخلية/الخارجية وسمات جهاز الوصول إلى الشبكة (NAD) وسمات الشهادات وما إلى ذلك). يتم إستخدام هذه السمات من قبل PSN لتحديد أنواع مختلفة من السياسات (مثل المصادقة والتخويل وتوفير العميل والوضع).
تتم إزالة ذاكرة التخزين المؤقت لجلسة العمل بالكامل عند إعادة تشغيل العقدة (أو الخدمات الموجودة على العقدة).
يقوم منطق معالجة جلسة العمل الحالية بإنشاء إدخال جديد في ذاكرة التخزين المؤقت لجلسة العمل في سيناريوهين. يمكن تحديث التفاصيل اللاحقة للجلسات الحالية من رسائل المحاسبة التي تأتي من NADs.
عندما يتعلق الأمر بإزالة جلسة العمل، يقوم PSN بتنفيذ هذا المنطق:
في نشر ISE، تمت معالجة نقطة توقف المحاسبة لجلسة عمل موجودة بواسطة PSN الذي لم يقم بتنفيذ المصادقة الفعلية:
مثال على الجلسة القديمة:
1. يتم إجراء مصادقة ناجحة على PSN لجلسة ABC.
2. تقوم PSN بإنشاء إدخال في ذاكرة التخزين المؤقت لجلسة العمل.
3. يتم إجراء تقييم للوضع.
4. تم تمييز جلسة العمل على أنها متوافقة.
5. يؤدي تغيير التفويض (الناتج عن تغيير حالة الوضع) إلى إعادة مصادقة نقطة النهاية لتطبيق مستوى الوصول التالي.
6. توقف المحاسبة لجلسة ABC يأتي إلى PSN2.
بعد ذلك، يعلق ABC في الحالة القديمة على PSN1 لأنه لا توجد رسالة إيقاف محاسبة معالجة على 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 إلى حد جلسات العمل النشطة.
مثال الجلسة الوهمية:
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. يتم تنفيذ عملية الدفع بمعيار COA من قبل ISE؛ وهذا يؤدي إلى تشغيل مستوى وصول جديد ليتم تعيينه.
10. هناك انقطاع على مسار الشبكة يجعل PSN1 غير قابل للوصول.
11. بعد انتهاء صلاحية فترة التحديث المؤقتة، يكتشف ASA/FTD عدم إمكانية الوصول إلى PSN1.
12. يأتي التحديث المحاسبي المؤقت إلى PSN2.
13. يتم إنشاء الجلسة الوهمية في ذاكرة التخزين المؤقت لجلسة PSN2.
إذا أصبح PSN1 يمكن الوصول إليه لاحقا (14)، فسيتم إعادة توجيه جميع رسائل المحاسبة التالية (15،16) هناك، وهذا يترك الجلسة ABC في ذاكرة التخزين المؤقت لجلسة PSN2 لوقت غير محدد.
لفهم كيفية كسر الجلسة الأساسية والجلسة الوهمية للوضع، يمكنك مراجعة عملية اكتشاف وحدة AnyConnect ISE النمطية للوضع:
المرحلة الأولى من الاكتشاف :
أثناء هذه المرحلة، تقوم وحدة 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 ثوان.
عندما يهبط المسبار 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".
4. بالنسبة لسيناريو الجلسة الوهمية، تستمر وحدة وضعية محرك خدمات الهوية (ISE) مع طلب الوضع الأولي. يحتوي هذا الطلب على معلومات حول جميع منتجات إدارة الأمان والتصحيحات التي تم الكشف عنها على نقطة النهاية.
5. تستخدم PSN معلومات من سمات الطلب والجلسة لمطابقة سياسة الوضع المناسبة. لأن الجلسة الوهمية بها نقص في السمات في هذه النقطة، ليس لدينا سياسة لنطابقها. في مثل هذه الحالة، يرد PSN على نقطة النهاية أنها متوافقة. هذا سلوك ISE الافتراضي في حالة عدم تطابق نهج الوضع.
ملاحظة: عندما يكون هناك سياسة عامة يمكن تحديدها من سمات الجلسة الوهمية، نواصل الخطوة 6.
6. ترجع PSN سياسات الوضع المحددة إلى الوكيل.
ملاحظة: في حالة عدم تحديد أي نهج، ترجع PSN حالة التوافق.
7. يقوم الوكيل بإرجاع الحالات لكل نهج/متطلبات ك "تم تمريرها" أو "فشلت".
8. يتم إجراء تقييم التقرير على ISE وتغييرات حالة جلسة العمل إلى متوافق.
ملاحظة: في حالة حدوث مشاكل في الوضع بسبب الجلسة الوهمية، يحتمل أن يشير مسؤول ISE إلى بعض عمليات COA الفاشلة للوضع. في مثل هذه الحالات، يتم تنفيذ طلبات COA من شبكات PSN خاطئة ومعرفات جلسات عمل خاطئة.
تم تصميم وحدة ISE Posture (وضعية محرك خدمات الهوية (ISE)) لمراقبة عدد محدود من الأحداث على نقطة النهاية لتشغيل عملية اكتشاف.
الأحداث التي تؤدي إلى اكتشاف:
لم يتم اكتشاف مصادقة dot1x الجديدة وإلغاء تأمين الكمبيوتر وتغيير عنوان IP بواسطة وحدة وضع ISE.
يتعذر على وحدة وضعية محرك خدمات الهوية (ISE) اكتشاف مصادقة جديدة أو محاولة إعادة مصادقة في هذه السيناريوهات :
يصف هذا الرسم التخطيطي مثالا لإعادة المصادقة على 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)).
وقد يحدث هذا في السيناريوهين الأكثر شيوعا:
يمكن إنشاء معرف الجلسة الجديد في بعض سيناريوهات حالة الركن الأخرى. على سبيل المثال، في بعض الحالات، قد يكون التجوال اللاسلكي سببا لذلك.
الشيء الرئيسي هنا، ISE PSN يضع دائما جلسة جديدة في حالة معلق ما لم يتم تكوين تأجير الوضع. يرد شرح لتأجير الوضع لاحقا في هذا المستند.
لتحديد ما إذا كان AnyConnect يظهر التوافق أثناء وجوده في حالة إعادة التوجيه أم لا، يكون السبب هو جلسة العمل الحجرية/الوهمية. نحن بحاجة للوصول إلى نقطة النهاية بينما هي في حالة إشكالية.
1. انقر فوق رمز التروس في واجهة مستخدم AnyConnect
2. في الإطار الجديد، انتقل إلى مسح النظام > الإحصاءات
هنا، انتبه إلى عنصرين:
يظهر العرض التوضيحي تسجيل الخطوات اللازمة لتعريف المشكلة:
يعمل المثال السابق على التمييز بين إصدار جلسة عمل صفرية أو وهمية ومشكلة عملية الاكتشاف التي لم تبدأ.
في الوقت نفسه، نحن بحاجة إلى تحديد الجلسة الفعلية التي أطلقت المشكلة لفهم أفضل كيف بالضبط أنها تصبح قضية وهمية أو جلسة.
وفي حين أنه لا يمكن في بعض السيناريوهات تجنب الجلسات الوهمية أو المتهالكة، فإننا نحتاج إلى ضمان تنفيذ أفضل الممارسات بحيث لا تنشأ جلسات وهمية/وهمية في البيئة.
تحليل حزمة 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 لتحديد كيفية تحول هذه الجلسة إلى قديمة/وهمية:
في 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
بعد أن تعرف معرف جلسة العمل الصخرية/الوهمية، يمكنك التحقيق في تقرير محاسبة RADIUS للحصول على فهم أفضل حول ما تسبب في أن تصبح هذه الجلسة صورية/وهمية:
هنا مثال من تقرير يوضح كيف جلسة معتمة بقي على ciscolive-ise2:
وهنا ينطبق نفس المنطق على المسألة السابقة. الفرق الوحيد هو أنك بحاجة إلى التركيز على وقت بدء أحدث مسح ضوئي. لهذا النوع من المشاكل، يكون الطابع الزمني لآخر مسح ضوئي في مكان ما في الماضي.
عادة عندما يكتشف المستخدم النهائي مشكلة، يظهر مسح ضوئي حدث منذ بعض الوقت. بينما في سجلات ISE Radius Live، تظهر محاولات المصادقة الأخيرة من نقطة النهاية الإشكالية.
يظهر العرض التوضيحي تسجيل الخطوات اللازمة لتعريف المشكلة:
المنهج هنا مماثل جدا لمقطع جلسة عمل Stale/Phantom المتقدم لاستكشاف الأخطاء وإصلاحها. عنصر أستكشاف الأخطاء وإصلاحها الرئيسي هو تحقيق حزمة DART.
بداخل حزمة DART، يمكنك البحث عن عمليات إعادة تشغيل الاكتشاف (كما هو موضح للإصدار السابق) وتأكيد عدم وجود إعادة تشغيل اكتشاف في الوقت الذي تم فيه الإبلاغ عن المشكلة.
على جانب ISE، ركز على تقرير مصادقة سجلات RADIUS المباشرة/RADIUS لتأكيد حدوث تجاوز فشل بين شبكات PSN أو أنه تم إنشاء معرف جلسة جديد بواسطة NAD.
وتاريخيا، لم تكن هناك ميزة على البنية الأساسية للخدمات (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.
أفضل الممارسات لموازن الأحمال
Posture عبر حالة إستخدام الشبكة الخاصة الظاهرية (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 تشير إلى أن نقطة النهاية متوافقة لفترة محددة (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 لتوزيع البيانات الخفيفة (LDD). يتم تمكين "توزيع البيانات الخفيفة" بشكل افتراضي ويسمح بمشاركة سياق جلسة عمل محدودة بين عقد ISE. لا يوجد شيء مثل النسخ المتماثل الكامل لسياق جلسة العمل بين PSNs، فقط مقدار محدود من السمات المشتركة لكل جلسة عمل.
يزيل دليل جلسة العمل الخفيفة الحاجة إلى تنفيذ مكالمات API الباهظة للموارد إلى MNT عندما يتوجب على إحدى العقد في النشر تحديد مالك جلسة العمل الحالية.
غالبا، يلزم بحث المالك عند بدء تدفق COA. باستخدام LDD يمكن لكل PSN العثور على مالك فعلي للجلسة من ذاكرة التخزين المؤقت المحلية لدليل جلسة عمل Radius.
تحتوي هذه الوظيفة على العناصر التالية:
توجد ذاكرة التخزين المؤقت هذه على كل عقدة ISE وتقوم بتخزين جميع الجلسات النشطة المقدمة في نشر ISE. تحتوي كل جلسة عمل على مقدار محدود من السمات في ذاكرة التخزين المؤقت.
هنا مثال من الشعار يخزن في RADIUS جلسة دليل ل كل جلسة:
هناك تبادل يتم من خلاله تقديم Publisher و Queue ذات الصلة و Consumer على كل عقدة في نشر ISE. وهذا يضمن تكوين مخطط الشبكة الكاملة بين جميع عقد ISE.
يمثل دليل جلسة RADIUS ناشرا هنا. عندما تتم معالجة مصادقة ناجحة جديدة بواسطة PSN، يتم إنشاء جلسة عمل جديدة في ذاكرة التخزين المؤقت لجلسة عمل PSN.
لجلسة العمل هذه، يتم وضع مجموعة محدودة من السمات في دليل جلسة عمل 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 للوكيل. ينتقل من عقدة 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]
تحل مشاركة حالة الوضع المشاكل عندما يكون السبب الجذري جلسة عمل Stale/Phantom أو إعادة المصادقة على PSN مختلف التي لم تقم بتشغيل الاكتشاف.
بمجرد أن تصبح الجلسة متوافقة، تضع هذه المعلومات في جلسة RSD، وبعد ذلك يمكن إستخدامها من قبل كل PSN في النشر.
لا تزال هناك بعض الحالات الجانبية الأخرى التي لا يمكن حلها بواسطة الميزة الموصوفة. على سبيل المثال، سيناريو عند تشغيل NAD لإعادة المصادقة على PSN نفسه ولكن بمعرف جلسة مختلف.
يمكن التعامل مع مثل هذه السيناريوهات مع أفضل الممارسات الموضحة في هذا المستند.
يوضح هذا الرقم الطبولوجيا المستخدمة لاختبار مشاركة حالة الوضع:
لإنشاء جلسة عمل معتمة، يجب إجراء المصادقة في البداية على SkgIse26-1. وبعد ذلك، يجب إعادة تكوين NAD لإرسال المحاسبة إلى SkoichIse26-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 في ذاكرة التخزين المؤقت للجلسة المحلية، فإنه يفترض أن الجلسة (المقدمة في ذاكرة التخزين المؤقت للجلسة) قديمة.
لإعادة إنتاج هذا السيناريو، يتم تمكين مؤقت إعادة مصادقة قصير في ملف تعريف التخويل المعين إلى نقطة نهاية الحالة المتوافقة.
وفي وقت لاحق، تتم إعادة تكوين 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
يتم حل المشكلة الأصلية بإضافة منطق إضافي في عملية تحديد حالة الوضع.
يوضح هذا الرقم ما تم تغييره (التغييرات التي تم إبرازها باللون الأحمر):
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
2.0 |
31-May-2023 |
تقويم |
1.0 |
22-Apr-2020 |
الإصدار الأولي |