تحتوي شبكات H.323 على أنواع مختلفة من التكوينات وتدفقات المكالمات. يناقش هذا المستند معظم المخاوف الأمنية مع شبكات H.323 التي تتضمن بوابين. يلخص هذا وثيقة كيف كل سمة يعمل وكيف أن يتحرى هو مع شرح على معظم التصحيح. لا يتناول هذا المستند الأمان الإجمالي ل VoIP.
يغطي هذا المستند الميزات التالية:
IntraDomain Gateway to Gatekeeper Security—يعتمد هذا الأمان على H.235، حيث تتم مصادقة مكالمات H.323، وتخويلها، وتوجيهها بواسطة برنامج حماية البوابة. يعد برنامج حماية البوابة كيانا معروفا وموثوقا به بمعنى أن البوابة لا تصادق عليه عندما تحاول البوابة التسجيل معه.
InterDomain Gatekeeper إلى Gatekeeper Security—يغطي هذا الأمان المصادقة على مكالمات H.323 والتصريح بها بين المجالات الإدارية لمزودي خدمة هاتف الإنترنت (ITSPs) باستخدام InterZone Clear Token (IZCT). يغطي هذا المستند فقط الجزء الذي يرسل فيه "برنامج حماية البوابة التي تنتهي" رمزا مميزا في رسالة تأكيد الموقع (LCF) الخاصة به حتى يمكن مصادقته لطلب إدخال AnswerCall (ARQ). لم يتم تضمين التحقق من صحة طلب الموقع (LRQ) في هذه الميزة. يعد التحقق من صحة LRQ ميزة مجدولة لإصدار برنامج Cisco IOS® في المستقبل.
التعاريف
أكرونيم | التعريف |
---|---|
ARQ | طلب القبول - رسالة خاصة ببروتوكول التسجيل والقبول والحالة (RAS) يتم إرسالها من نقطة نهاية H.323 إلى حارس بوابة يطلب إقرارا لإنشاء مكالمة. |
ACF | تأكيد الدخول - رسالة RAS مرسلة من البوابة إلى نقطة النهاية تؤكد قبول مكالمة. |
أريج | رفض الدخول — رسالة RAS من البوابة إلى نقطة النهاية التي ترفض طلب القبول. |
قط | الرمز المميز للوصول من Cisco — الرمز المميز للمسح H.235. |
CHAP | بروتوكول مصادقة مصافحة الاستبيان - بروتوكول مصادقة حيث يتم إستخدام التحدي. |
جي سي إف | تأكيد Gatekeeper — رسالة RAS مرسلة من حارس بوابة إلى نقطة نهاية H.323 التي تؤكد اكتشاف برنامج حماية البوابة. |
GRQ | طلب برنامج حماية البوابة — رسالة RAS يتم إرسالها من نقطة نهاية H.323 لاكتشاف برنامج حماية البوابة. |
H.235 | توصية الاتحاد الدولي للاتصالات بشأن الأمن والتشفير للمحطات الطرفية للوسائط المتعددة من السلسلة H (H.323 وغيرها من المحطات الطرفية القائمة على السلسلة H.245). |
إيزكات | InterZone Clear Token - يتم إنشاء IZCT في برنامج حماية البوابة الأصلي عند بدء تشغيل LRQ أو توشك إرسال ACF لإجراء مكالمة داخل المنطقة داخل المجال الإداري ITSP. |
LRQ | طلب الموقع - رسالة RAS مرسلة من حارس بوابة إلى حارس بوابة الخطوة التالية أو إستدعاء جهة اتصال لتعقب المكالمة وتوجيهها. |
راس | التسجيل والقبول والحالة — بروتوكول يسمح لحافظ البوابة بإجراء عمليات التحقق من حالة نقطة النهاية وتسجيلها. |
تردد RCF | تأكيد التسجيل — رسالة RAS مرسلة من البوابة إلى نقطة النهاية التي تؤكد التسجيل. |
آر آر جي | رفض التسجيل - رسالة RAS مرسلة من برنامج حماية البوابة الذي يرفض طلب التسجيل. |
آر آر كيو | طلب التسجيل — رسالة RAS مرسلة من نقطة النهاية إلى برنامج حماية البوابة الذي يطلب التسجيل معها. |
شق | الطلب قيد التقدم - رسالة RAS مرسلة من حارس بوابة إلى المرسل تشير إلى أن المكالمة قيد التقدم. |
H.323 هي توصية من الاتحاد الدولي للاتصالات (ITU) تعالج تأمين الاتصال في الوقت الفعلي عبر الشبكات غير الآمنة. ويشمل ذلك مجالين رئيسيين من مجالات القلق: المصادقة والخصوصية. هناك نوعان من التوثيق، وفقا ل H.235:
المصادقة المستندة إلى التشفير المتماثل التي لا تتطلب أي اتصال مسبق بين الكيانات المترابطة.
استنادا إلى إمكانية الحصول على بعض أسرار المشاركة السابقة (المشار إليها بشكل إضافي على أنها قائمة على الاشتراك)، يتم توفير شكلين من المصادقة المستندة إلى الاشتراك:
كلمة المرور
شهادة
يتم إستخدام طابع زمني لمنع هجمات إعادة التشغيل. لذلك، يلزم وجود إشارة مقبولة من الطرفين إلى الوقت (الذي يمكن من خلاله إستخراج الطوابع الزمنية). إن مقدار الانحراف الزمني المقبول هو مسألة تنفيذ محلي.
تستخدم Cisco نظام مصادقة يشبه بروتوكول المصادقة لتأكيد الاتصال بقيمة التحدي (CHAP) كأساس لبوابتها إلى تنفيذ برنامج حماية البوابة H.235. وهذا يتيح لك الاستفادة من المصادقة والتفويض والمحاسبة (AAA)، باستخدام الوظائف الموجودة لتنفيذ المصادقة الفعلية. وهذا يعني أيضا أنه ليس مطلوبا من "برنامج حماية البوابة" الوصول إلى قاعدة بيانات من معرفات البوابة وأرقام حساب المستخدم وكلمات المرور ورموز PIN. ويستند هذا النظام إلى المادة 10-3-3 من H.235. يتم وصفه بكلمة مرور تستند إلى الاشتراك مع التجزئة.
ومع ذلك، بدلا من إستخدام تشفير H.225، تستخدم هذه الطريقة رموز H.235 ClearToken مع الحقول المأهلة بشكل مناسب للاستخدام مع RADIUS. يشار إلى هذا الرمز المميز باسم الرمز المميز للوصول من Cisco (CAT). يمكنك دائما إجراء المصادقة محليا على برنامج حماية البوابة بدلا من إستخدام خادم RADIUS.
يتطلب إستخدام cryptoTokens أن يقوم برنامج حماية البوابة إما بالحفاظ على كلمات المرور لكافة المستخدمين والعبارات أو أن تكون لديه طريقة ما لاكتسابها. وذلك نظرا لتحديد حقل الرمز المميز ل cryptoToken بحيث يحتاج الكيان الذي تتم مصادقته إلى كلمة المرور لإنشاء الرمز المميز الخاص به لمقارنة الرمز المميز الذي تم إستلامه.
تتجاهل بوابات Cisco التشفير بالكامل. ومع ذلك، يستخدم حراس بوابات VoiceTek وغيرهم ممن يدعمون قسم H.235 10.3.3 وحدات التشفير للمصادقة على البوابة. يستخدم مسؤولو بوابات Cisco CAT لمصادقة البوابة. بما أن البوابة لا تعرف نوع البوابة التي تتحدث إليها، فإنها ترسل كلا الوثيقتين في RRQ. تعد المصادقةCapability في GRQ ل cryptoToken وتشير إلى أن تجزئة MD5 هي آلية المصادقة (رغم أن CAT تستخدم MD5 أيضا).
راجع تحسينات أمان عبارة Cisco H.323 والمحاسبة للحصول على مزيد من المعلومات.
الأمان من مستوى نقطة النهاية أو التسجيل
مع تمكين أمان التسجيل على برنامج حماية البوابة، يلزم أن تتضمن البوابة CAT في جميع رسائل RRQ ذات الوزن الثقيل. ال CAT، في هذه الحالة، يحتوي معلومة أن يصدق البوابة نفسه إلى البوابة. يقوم برنامج حماية البوابة بتنسيق رسالة إلى خادم RADIUS الذي يصادق المعلومات الواردة في الرمز المميز. وهي ترد على برنامج حماية البوابة إما بقبول الوصول أو برفض الوصول. وهذا، بدوره، يستجيب للبوابة إما باستخدام RCF أو RJ.
إذا تم بعد ذلك وضع مكالمة من بوابة تمت مصادقتها بنجاح، فإن تلك البوابة تقوم بإنشاء CAT جديد عند إستلام قائمة تحكم في الوصول (ACF) من البوابة باستخدام كلمة مرور البوابة. هذا CAT مماثل للولد أثناء التسجيل ماعدا للطابع الزمني. ويتم وضعها في رسالة "برنامج الإعداد الصادر". تستخرج البوابة الوجهة الرمز المميز من رسالة الإعداد وتضعه في ARQ للجانب الوجهة. يستخدم برنامج حماية البوابة RADIUS لمصادقة البوابة الأصلية قبل أن يرسل قائمة التحكم في الوصول (ACF) الخاصة بالجانب الوجهة. وهذا يؤدي إلى منع نقطة نهاية غير مصدق عليها تعرف عنوان بوابة من إستخدامها للالتفاف على نظام الأمان والوصول إلى شبكة الهاتف المحولة العامة (PSTN).
لذلك، في هذا المستوى، لا توجد حاجة لتضمين أي رموز مميزة في ARQs الأصلية.
اكتب [no] رمز الأمان المميز المطلوب للتسجيل من واجهة سطر أوامر برنامج حماية البوابة (CLI) لتكوين برنامج حماية البوابة. يتسبب الخيار no من الأمر في عدم تحقق "البوابة" بعد الآن من الرموز المميزة في رسائل RAS.
اكتب [no] security password <password> level endpoint من البوابة CLI لتكوين البوابة. يتسبب الخيار no من الأمر في عدم إنشاء البوابة بعد ذلك رموز مميزة لرسائل RAS.
الأمان على مستوى كل مكالمة
يعتمد الأمان حسب الطلب على الأمان على مستوى التسجيل. بالإضافة إلى تلبية متطلبات أمان التسجيل، يلزم أيضا وجود بوابة لتضمين رموز Access المميزة في جميع رسائل ARQ للجانب الأصلي عند تمكين أمان كل مكالمة على "حماية البوابة". يحتوي الرمز المميز في هذه الحالة على معلومات تعرف مستخدم البوابة إلى برنامج حماية البوابة. يتم الحصول على هذه المعلومات باستخدام برنامج نصي للاستجابة الصوتية التفاعلية (IVR) على البوابة. هذا يؤدي إلى مطالبة المستخدمين بإدخال معرف المستخدم الخاص بهم ورقم التعريف الشخصي (PIN) من لوحة المفاتيح قبل إجراء مكالمة.
تتم مصادقة CAT الموجود في ARQ الأصلي بواسطة RADIUS بنفس الطريقة الموضحة سابقا في أمان نقطة النهاية أو مستوى التسجيل. بعد أن يستلم ال ACF، يلد البوابة CAT جديد يستعمل الكلمة ويرسل هو ضمن ال H.225 setup رسالة إلى النهاية مدخل.
اكتب [no] الرمز المميز للأمان المطلوب للكل من واجهة سطر الأوامر (CLI) الخاصة ببرنامج حماية البوابة لتكوين برنامج حماية البوابة. يتسبب الخيار no من الأمر في عدم تحقق "البوابة" بعد الآن من الرموز المميزة في رسائل RAS.
اكتب [no] security password <password> level per-call من البوابة CLI لتكوين البوابة. يتسبب الخيار no من الأمر في عدم إنشاء البوابة بعد ذلك رموز مميزة لرسائل RAS.
الأمان على كافة المستويات
وهذا يسمح للعبارة بتضمين CAT في جميع رسائل RAS اللازمة للتسجيل وللمكالمات. ولذلك، فهي مزيج من المستويين المذكورين أعلاه. باستخدام هذا الخيار، يعتمد التحقق من صحة CAT في رسائل ARQ على رقم الحساب ورقم التعريف الشخصي (PIN) الخاص بالمستخدم الذي يقوم بإجراء مكالمة. يعتمد التحقق من صحة CAT الذي تم إرساله في جميع رسائل RAS الأخرى على كلمة المرور التي تم تكوينها للعبارة. لذلك، فإنه مماثل لمستوى لكل مكالمة.
اكتب [no] الرمز المميز للأمان المطلوب للكل من واجهة سطر الأوامر (CLI) الخاصة ببرنامج حماية البوابة لتكوين برنامج حماية البوابة. يتسبب الخيار no من الأمر في عدم تحقق "البوابة" بعد الآن من الرموز المميزة في رسائل RAS.
اكتب [no] security password <password> level all من البوابة CLI لتكوين البوابة. يتسبب الخيار no من الأمر في عدم إنشاء البوابة بعد ذلك رموز مميزة لرسائل RAS.
لا يمكن إستخدام H.235 على مستوى كل مكالمة بدون IVR. إذا لم يكن هناك IVR لجمع حساب و PIN، تحتاج البوابة إلى إرسال ARQ بدون رمز مميز واضح (ولكن باستخدام رمز مميز للتشفير). بما أن برنامج حماية البوابة من Cisco يقبل الرموز المميزة غير المشفرة فقط، يتم رفض الاستدعاء من قبل برنامج حماية البوابة لسبب رفض الأمان.
يوضح هذا المثال أخطاء H225 asn1 التي يتم تجميعها من عبارة منشئة (OGW) لم يتم تكوينها ل IVR لجمع الحساب ورقم التعريف الشخصي (PIN). تحتوي رسالة RRQ على رمز مميز واضح، ولكن ARQ لا تحتوي على هذا الرمز. يتم إرسال رسالة ARJ مرة أخرى إلى البوابة.
Mar 4 01:31:24.358: H235 OUTGOING ENCODE BUFFER::= 61 000100C0 2B955BEB 08003200 32003200 32000006 006F0067 00770000 Mar 4 01:31:24.358: Mar 4 01:31:24.358: RAS OUTGOING PDU ::= value RasMessage ::= registrationRequest : { requestSeqNum 29 protocolIdentifier { 0 0 8 2250 0 3 } discoveryComplete FALSE callSignalAddress { } rasAddress { ipAddress : { ip 'AC100D0F'H port 57514 } } terminalType { mc FALSE undefinedNode FALSE } gatekeeperIdentifier {"ogk1"} endpointVendor { vendor { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } } timeToLive 60 tokens !--- Clear Token is included in the RRQ message. { { tokenOID { 1 2 840 113548 10 1 2 1 } timeStamp 731208684 challenge 'F57C3C65B59724B9A45C93F98CCF9E45'H random 12 generalID {"ogw"} } } cryptoTokens { cryptoEPPwdHash : { alias h323-ID : {"ogw"} timeStamp 731208684 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "D7F85666AF3B881ADD876DD61C20D5D9" } } } keepAlive TRUE endpointIdentifier {"81F5E24800000001"} willSupplyUUIEs FALSE maintainConnection TRUE } Mar 4 01:31:24.370: RAS OUTGOING ENCODE BUFFER::= 0E 40001C06 0008914A 00030000 0100AC10 0D0FE0AA 0003006F 0067006B 003100B5 00001212 EF000200 3B2F014D 000A2A86 4886F70C 0A010201 C02B955B EB10F57C 3C65B597 24B9A45C 93F98CCF 9E45010C 06006F00 67007700 002A0104 02006F00 670077C0 2B955BEB 082A8648 86F70D02 05008080 D7F85666 AF3B881A DD876DD6 1C20D5D9 0180211E 00380031 00460035 00450032 00340038 00300030 00300030 00300030 00300031 01000180 Mar 4 01:31:24.378: h323chan_dgram_send:Sent UDP msg. Bytes sent: 173 to 172.16.13.35:1719 Mar 4 01:31:24.378: RASLib::GW_RASSendRRQ: 3640-1#debug RRQ (seq# 29) sent to 172.16.13.35 Mar 4 01:31:24.462: h323chan_chn_process_read_socket Mar 4 01:31:24.462: h323chan_chn_process_read_socket: fd (2) of type CONNECTED has data Mar 4 01:31:24.462: h323chan_chn_process_read_socket: h323chan accepted/connected Mar 4 01:31:24.462: h323chan_dgram_recvdata:rcvd from [172.16.13.35:1719] on so ck[2] Mar 4 01:31:24.466: RAS INCOMING ENCODE BUFFER::= 12 40001C06 0008914A 00030006 006F0067 006B0031 1E003800 31004600 35004500 32003400 38003000 30003000 30003000 30003000 310F8A01 0002003B 01000180 Mar 4 01:31:24.466: Mar 4 01:31:24.466: RAS INCOMING PDU ::= value RasMessage ::= registrationConfirm : { requestSeqNum 29 protocolIdentifier { 0 0 8 2250 0 3 } callSignalAddress { } gatekeeperIdentifier {"ogk1"} endpointIdentifier {"81F5E24800000001"} alternateGatekeeper { } timeToLive 60 willRespondToIRR FALSE maintainConnection TRUE } Mar 4 01:31:24.470: RCF (seq# 29) rcvd Mar 4 01:32:00.220: H225 NONSTD OUTGOING PDU ::= value ARQnonStandardInfo ::= { sourceAlias { } sourceExtAlias { } callingOctet3a 129 interfaceSpecificBillingId "ISDN-VOICE" } Mar 4 01:32:00.220: H225 NONSTD OUTGOING ENCODE BUFFER::= 80 000008A0 01810B12 4953444E 2D564F49 4345 Mar 4 01:32:00.220: Mar 4 01:32:00.220: H235 OUTGOING ENCODE BUFFER::= 61 000100C0 2B955C0F 08003200 32003200 32000006 006F0067 00770000 Mar 4 01:32:00.224: Mar 4 01:32:00.224: RAS OUTGOING PDU ::= value RasMessage ::= admissionRequest : { requestSeqNum 30 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"81F5E24800000001"} destinationInfo { e164 : "3653" } srcInfo { e164 : "5336", h323-ID : {"ogw"} } bandWidth 1280 callReferenceValue 5 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '80000008A001810B124953444E2D564F494345'H } conferenceID 'E1575DA6175611CC8014A6051561649A'H activeMC FALSE answerCall FALSE canMapAlias TRUE callIdentifier { guid 'E1575DA6175611CC8015A6051561649A'H } cryptoTokens !--- Only cryptoTokens are included, no clear ones. { cryptoEPPwdHash : { alias h323-ID : {"ogw"} timeStamp 731208720 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "105475A4C0A833E7DE8E37AD3A8CDFF" } } } willSupplyUUIEs FALSE } Mar 4 01:32:00.236: RAS OUTGOING ENCODE BUFFER::= 27 88001D00 F0003800 31004600 35004500 32003400 38003000 30003000 30003000 30003000 31010180 69860201 80866940 02006F00 67007740 05000005 40B50000 12138000 0008A001 810B1249 53444E2D 564F4943 45E1575D A6175611 CC8014A6 05156164 9A056120 01801100 E1575DA6 175611CC 8015A605 1561649A 2A010402 006F0067 0077C02B 955C0F08 2A864886 F70D0205 00808010 5475A4C0 A833E7DE 8E370AD3 A8CDFF01 00 Mar 4 01:32:00.240: h323chan_dgram_send:Sent UDP msg. Bytes sent: 170 to 172.16.13.35:1719 Mar 4 01:32:00.240: RASLib::GW_RASSendARQ: ARQ (seq# 30) sent to 172.16.13.35 Mar 4 01:32:00.312: h323chan_chn_process_read_socket Mar 4 01:32:00.312: h323chan_chn_process_read_socket: fd (2) of type CONNECTED has data Mar 4 01:32:00.312: h323chan_chn_process_read_socket: fd (2) of type CONNECTED has data Mar 4 3640-1#01:32:00.312: h323chan_chn_process_read_socket: h323chan accepted/connected Mar 4 01:32:00.312: h323chan_dgram_recvdata:rcvd from [172.16.13.35:1719] on so ck[2] Mar 4 01:32:00.312: RAS INCOMING ENCODE BUFFER::= 2C 001D8001 00 Mar 4 01:32:00.312: Mar 4 01:32:00.312: RAS INCOMING PDU ::= value RasMessage ::= admissionReject : !--- ARQ is rejected with a security denial reason. { requestSeqNum 30 rejectReason securityDenial : NULL } Mar 4 01:32:00.312: ARJ (seq# 30) rcvd
من بين القضايا الرئيسية التي تحتاج إلى الاهتمام بها ما يلي:
تكوين البوابة وبرنامج حماية البوابة
تكوين RADIUS على برنامج حماية البوابة وخادم RADIUS
بروتوكول وقت الشبكة (NTP)—يجب أن يكون لديك نفس الوقت على جميع البوابات والحاويات. نظرا لأن معلومات المصادقة تتضمن طابعا زمنيا، فمن المهم مزامنة جميع بوابات Cisco H.323 وعبارات (أو الكيان الآخر الذي يقوم بتنفيذ المصادقة). يجب مزامنة بوابات Cisco H.323 باستخدام NTP.
فشل البرنامج بسبب خطأ
بما أن جميع مستويات الأمان تغطي حالات التسجيل لكل مكالمة، فإنه يتم إعداد المعمل بهذا المستوى من الأمان لهذه العملية. يتم شرح تدفق المكالمة لجزء التسجيل واستدعاء VoIP العادي في التكوين هنا.
ملاحظة: التكوين هنا غير مكتمل. يتتبع المزيد من الأوامر بين مخرجات تصحيح الأخطاء. وقد تم تصميمه لإظهار المشكلة التي يمكن أن تحدث إذا لم تقم بفحص جميع الأشياء مثل التكوين و NTP و RADIUS. بالإضافة إلى ذلك، تتم مصادقة البوابة على برنامج حماية البوابة محليا حتى تتمكن من الاطلاع على القيم التي تم تعيينها لمعرف البوابة وكلمة المرور. هذا تشكيل snipped لذلك فقط ال يربط تشكيل يكون أبديت.
! interface Ethernet0/0 ip address 172.16.13.15 255.255.255.224 half-duplex h323-gateway voip interface h323-gateway voip id gka-1 ipaddr 172.16.13.35 1718 !--- The gatekeeper name is gka-1. h323-gateway voip h323-id gwa-1@cisco.com !--- The gateway H323-ID is gwa-1@cisco.com. h323-gateway voip tech-prefix 1# ! ! gateway ! line con 0 exec-timeout 0 0 logging synchronous line aux 0 line vty 0 4 exec-timeout 0 0 password ww logging synchronous end !--- No NTP is configured. !--- The snipped gatekeeper configuration is like this: ! aaa new-model aaa authentication login default local aaa authentication login h323 local aaa authorization exec default local aaa authorization exec h323 local aaa accounting connection h323 start-stop group radius ! username gwa-1 password 0 2222 username gwa-2 password 0 2222 ! gatekeeper zone local gka-1 cisco.com 172.16.13.35 security token required-for all !--- The gatekeeper is configured for the "All level security". no shutdown ! ! line con 0 exec-timeout 0 0 line aux 0 line vty 0 4 password ww line vty 5 15 ! no scheduler max-task-time no scheduler allocate ntp master !--- This gatekeeper is set as an NTP master. ! end
يتم تشغيل عمليات تصحيح الأخطاء هذه في هذا المثال:
أول شيء يحدث هو أن البوابة ترسل GRQ إلى البوابة ويرسل برنامج حماية البوابة GCF إلى البوابة. بعد ذلك ترسل البوابة RQ وتنتظر لأي من RCF أو RRJ.
في التكوين السابق، لم يتم تعيين البوابة لأي مستوى من الأمان بحيث لا تحمل GRQ الخاص بها إمكانية مصادقة تكون مطلوبة للعلامات المميزة. ومع ذلك، لا يزال برنامج حماية البوابة يرسل إطارا عاما للتحويل من الإطارات (GCF) كما يوضح هذا الإخراج:
*Mar 2 13:32:45.413: RAS INCOMING ENCODE BUFFER::= 00 A0000006 0008914A 000200AC 100D0FD2 C6088001 3C050401 00204002 00006700 6B006100 2D003102 400E0067 00770061 002D0031 00400063 00690073 0063006F 002E0063 006F006D 0080CC *Mar 2 13:32:45.421: *Mar 2 13:32:45.425: RAS INCOMING PDU ::= value RasMessage ::= gatekeeperRequest : { requestSeqNum 1 protocolIdentifier { 0 0 8 2250 0 2 } rasAddress ipAddress : { ip 'AC100D0F'H port 53958 } endpointType { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } gatekeeperIdentifier {"gka-1"} endpointAlias { h323-ID : {"gwa-1@cisco.com"}, !--- The H.323-ID of the gateway is gwa-1@cisco.com. e164 : "99" } } *Mar 2 13:32:45.445: RAS OUTGOING PDU ::= value RasMessage ::= gatekeeperConfirm : { requestSeqNum 1 protocolIdentifier { 0 0 8 2250 0 3 } gatekeeperIdentifier {"gka-1"} rasAddress ipAddress : { ip 'AC100D23'H port 1719 } } !--- The gateway sends an RRQ message to the gatekeeper with the !--- IP address sent in the GCF. This RRQ does not carry any Token information !--- because security is not configured on the gateway. *Mar 2 13:32:45.477: RAS INCOMING ENCODE BUFFER::= 0E C0000106 0008914A 00028001 00AC100D 0F06B801 00AC100D 0FD2C608 80013C05 04010020 40000240 0E006700 77006100 2D003100 40006300 69007300 63006F00 2E006300 6F006D00 80CC0800 67006B00 61002D00 3100B500 00120E8A 02003B01 000100 *Mar 2 13:32:45.489: *Mar 2 13:32:45.493: RAS INCOMING PDU ::= value RasMessage ::= registrationRequest : { requestSeqNum 2 protocolIdentifier { 0 0 8 2250 0 2 } discoveryComplete TRUE callSignalAddress { ipAddress : { ip 'AC100D0F'H port 1720 } } rasAddress { ipAddress : { ip 'AC100D0F'H port 53958 } } terminalType { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } terminalAlias { h323-ID : {"gwa-1@cisco.com"}, e164 : "99" } gatekeeperIdentifier {"gka-1"} endpointVendor { vendor { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } } timeToLive 60 keepAlive FALSE willSupplyUUIEs FALSE } !--- Since the gateway does not include !--- any tokens and the gatekeeper is set to authenticate !--- all endpoints and calls, the gatekeeper rejects the gateway request. !--- It sends an RRJ with the securityDenial reason. *Mar 2 13:32:45.525: RAS OUTGOING PDU ::= value RasMessage ::= registrationReject : { requestSeqNum 2 protocolIdentifier { 0 0 8 2250 0 3 } rejectReason securityDenial : NULL !--- Gatekeeper rejects the RRQ with security denial reason. gatekeeperIdentifier {"gka-1"} } *Mar 2 13:32:45.529: RAS OUTGOING ENCODE BUFFER::= 14 80000106 0008914A 00038301 00080067 006B0061 002D0031 *Mar 2 13:32:45.533: !--- Configure the security password 2222 level all command on the gateway. !--- The configuration of the gateway appears like this: ! gateway security password 0356095954 level all !--- The password is hashed. ! !--- As soon as you make this change the gateway !--- sends a new GRQ to the gatekeeper. !--- You see the authenticationCapability and algorithmOIDs. *Mar 2 13:33:15.551: RAS INCOMING ENCODE BUFFER::= 02 A0000206 0008914A 000200AC 100D0FD2 C6088001 3C050401 00204002 00006700 6B006100 2D003102 400E0067 00770061 002D0031 00400063 00690073 0063006F 002E0063 006F006D 0080CC0C 30020120 0A01082A 864886F7 0D0205 *Mar 2 13:33:15.563: *Mar 2 13:33:15.567: RAS INCOMING PDU ::= value RasMessage ::= gatekeeperRequest : { requestSeqNum 3 protocolIdentifier { 0 0 8 2250 0 2 } rasAddress ipAddress : { ip 'AC100D0F'H port 53958 } endpointType { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } gatekeeperIdentifier {"gka-1"} endpointAlias { h323-ID : {"gwa-1@cisco.com"}, e164 : "99" } authenticationCapability { pwdHash : NULL } algorithmOIDs { { 1 2 840 113549 2 5 } } }
وهذا يفسر بعض الرسائل في GRQ:
AuthenticationCapability—يحتوي هذا الحقل على قيمة pwdHash فقط. وهو يشير إلى أن تجزئة MD5 هي آلية المصادقة.
الخوارزميةOIDs—معرف كائن الخوارزمية. في هذه الحالة، يحمل القيمة (1 2 840 113549 2 5) والتي هي معرف الكائن لتجزئة الرسالة Digest 5.
(1 2 840 113549 2 5) يترجم إلى iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) md5(5). وبالتالي تقوم Cisco بتجزئة كلمة مرور MD5.
يرمز RSADSI إلى RSA Data Security Inc. معرف كائن اتصال الأنظمة المفتوحة (OSI) الخاص ب RSA هو 1.2.840.113549 (0x2a، 0x86، 0x48، 0x86، 0xf7، 0x0d في hex)، كما هو مسجل من قبل المعهد القومي الأمريكي للمعايير (ANSI).
يرسل برنامج حماية البوابة GCF مرة أخرى كرسالة سابقة. بعد ذلك ترسل البوابة RQ بحقول معينة لوصف العلامات المميزة التي تستخدمها للمصادقة. يتم عرض رسالة ASN1 RRQ التي يتم إرسالها في هذا المثال.
*Mar 2 13:33:15.635: RAS INCOMING ENCODE BUFFER::= 0E C0000306 0008914A 00028001 00AC100D 0F06B801 00AC100D 0FD2C608 80013C05 04010020 40000240 0E006700 77006100 2D003100 40006300 69007300 63006F00 2E006300 6F006D00 80CC0800 67006B00 61002D00 3100B500 00120EEA 02003B47 014D000A 2A864886 F70C0A01 0201C02B 92A53610 B9D84DAE 58F6CB4B 5EE5DFB6 B92DD281 01011E00 67007700 61002D00 31004000 63006900 73006300 6F002E00 63006F00 6D000042 01040E00 67007700 61002D00 31004000 63006900 73006300 6F002E00 63006F00 6DC02B92 A536082A 864886F7 0D020500 80802B21 B94F3980 ED12116C 56B79F4B 4CDB0100 0100 *Mar 2 13:33:15.667: *Mar 2 13:33:15.671: RAS INCOMING PDU ::= value RasMessage ::= registrationRequest : { requestSeqNum 4 protocolIdentifier { 0 0 8 2250 0 2 } discoveryComplete TRUE callSignalAddress { ipAddress : { ip 'AC100D0F'H port 1720 } } rasAddress { ipAddress : { ip 'AC100D0F'H port 53958 } } terminalType { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } terminalAlias { h323-ID : {"gwa-1@cisco.com"}, e164 : "99" } gatekeeperIdentifier {"gka-1"} endpointVendor { vendor { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } } timeToLive 60 tokens !--- Clear Token, or what is called CAT. { { tokenOID { 1 2 840 113548 10 1 2 1 } timeStamp 731030839 challenge 'B9D84DAE58F6CB4B5EE5DFB6B92DD281'H random 1 generalID {"gwa-1@cisco.com"} } } cryptoTokens !--- CryptoToken field. { cryptoEPPwdHash : { alias h323-ID : {"gwa-1@cisco.com"} timeStamp 731030839 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "2B21B94F3980ED12116C56B79F4B4CDB" } } } keepAlive FALSE willSupplyUUIEs FALSE }
قبل مناقشة الرد، يتم شرح بعض الحقول ذات الصلة في رسالة RRQ أعلاه هنا. هناك نوعان من الرموز المميزة: رمز مميز واضح أو CAT) ورمز مميز للتشفير.
كما تمت الإشارة سابقا، يتجاهل حراس بوابة Cisco رموز التشفير المميزة. ومع ذلك، لا تزال البوابة ترسل كليهما لأنها لا تعرف نوع البوابة التي تتحدث عنها. نظرا لأن الموردين الآخرين قد يستخدمون الرموز المميزة للتشفير، فإن البوابة ترسل كلا منهما.
وهذا يفسر صياغة ClearToken.
tokenOID— معرف الكائن لتعريف الرمز المميز.
الطابع الزمني — وقت العبارة الحالي بالتوقيت العالمي المنسق (UTC). ثوان منذ 00:00 1/1/1970 بالتوقيت العالمي.
يستخدم هذا الخيار كأحد أسئلة CHAP الضمنية كما لو كان قد تم إستخدامه من قبل برنامج حماية البوابة.
CHALLENGE—ملخص رسائل MD5 سعة 16 بايت التي تم إنشاؤها بواسطة البوابة التي تستخدم هذه الحقول:
التحدي = [ عشوائي + GW/كلمة مرور المستخدم + الطابع الزمني ] تجزئة MD5
يقوم RADIUS بإجراء هذا الحساب (نظرا لأنه يعرف الرقم العشوائي وكلمة مرور العبارة وتحدي CHAP) لتحديد ما يجب أن يكون التحدي: إستجابة CHAP = [ معرف CHAP + كلمة مرور المستخدم + تحدي CHAP] MD5 Hash
عشوائي—قيمة بايت واحدة تستخدم بواسطة RADIUS لتعريف هذا الطلب المعين.
تزيد البوابة وحدة نمطية متغيرة من 256 لكل طلب مصادقة للوفاء بمتطلبات RADIUS هذه.
GeneralID—Gateway H323-ID أو رقم حساب المستخدم استنادا إلى مستوى الأمان ونوع رسالة RAS.
ملاحظة: كل هذه المجالات مهمة. ومع ذلك، يولى مزيد من الاهتمام لكل من الطابع الزمني والمعرف العام. في هذه الحالة، يكون الطابع الزمني 731030839 والمعرف العام هو gwa-1@cisco.com.
يحتوي cryptoToken في RRQ على معلومات حول البوابة التي تقوم بإنشاء الرمز المميز. وهذا يتضمن معرف البوابة (وهو معرف H.323 الذي تم تكوينه على البوابة) وكلمة مرور البوابة.
يحتوي هذا الحقل على أحد أنواع cryptoToken المحددة لحقل CryptoH323Token المحدد في H.225. حاليا، النوع الوحيد من cryptoToken المعتمد هو cryptoEPPwdHash.
تحتوي هذه الحقول ضمن حقل cryptoEPPwdHash:
alias— الاسم المستعار للعبارة، وهو معرف H.323 للعبارة.
الطابع الزمني- الطابع الزمني الحالي.
الرمز المميز—Message Digest 5 (MD5)-encoded PwdCertToken. يحتوي هذا الحقل على العناصر التالية:
الطابع الزمني- نفس الطابع الزمني للتشفيرEPPwdHash.
كلمة السر— الكلمة من البوابة.
generalID—نفس الاسم المستعار للعبارة كالذي تم تضمينه في cryptoEPPwdHash.
tokenID—معرف الكائن.
عرض الاستجابة من برنامج حماية البوابة في هذا المثال.
*Mar 2 13:33:15.723: RAS OUTGOING PDU ::= value RasMessage ::= registrationReject : { requestSeqNum 4 protocolIdentifier { 0 0 8 2250 0 3 } rejectReason securityDenial : NULL !--- The gatekeeper rejects the RRQ with securityDenial reason. gatekeeperIdentifier {"gka-1"} } *Mar 2 13:33:15.727: RAS OUTGOING ENCODE BUFFER::= 14 80000306 0008914A 00038301 00080067 006B0061 002D0031 *Mar 2 13:33:15.731:
تم رفض RRQ من قبل برنامج حماية البوابة. سبب هذا لأن هناك ما من NTP يثبت في التشكيل من البوابة. يتحقق برنامج حماية البوابة من الطابع الزمني للرمز المميز لمعرفة ما إذا كان ضمن نافذة مقبولة بالنسبة لزمانه. حاليا هذا نافذة +/- 30 ثاني حول وقت UTC من البوابة.
يتسبب رمز مميز خارج هذا الإطار في تجاهل "البوابة" لهذه الرسالة. يمنع ذلك هجمات إعادة التشغيل من شخص يحاول إعادة إستخدام رمز مميز تم تثبيته. في الممارسة العملية، تحتاج جميع البوابات وحراس البوابات إلى إستخدام بروتوكول وقت الشبكة (NTP) لتجنب هذه المشكلة التي تتسبب في تشويه الوقت. يجد "برنامج حماية البوابة" أن طابع الوقت في الرمز المميز يقع ضمن النافذة المقبولة لوقته. لذلك، لا يتحقق من خلال RADIUS لمصادقة البوابة.
بعد ذلك، يتم تكوين البوابة ل NTP التي تشير إلى البوابة كمدير NTP، حتى يكون لكل من البوابة والبوابة نفس الوقت. عندما يقع هذا، يرسل البوابة RRQ جديد وهذه المرة البواب رد إلى ال RRQ جديد مع RRJ.
هذه الأخطاء من برنامج حماية البوابة. يتم تشغيل تصحيح الأخطاء لمعرفة ما إذا كان برنامج حماية البوابة يذهب إلى مرحلة المصادقة.
Mar 2 13:57:41.313: RAS INCOMING ENCODE BUFFER::= 0E C0005906 0008914A 00028001 00AC100D 0F06B801 00AC100D 0FD2C608 80013C05 04010020 40000240 0E006700 77006100 2D003100 40006300 69007300 63006F00 2E006300 6F006D00 80CC0800 67006B00 61002D00 3100B500 00120EEA 02003B47 014D000A 2A864886 F70C0A01 0201C02B 9367D410 7DD4C637 B6DD4E34 0883A7E5 E12A2B78 012C1E00 67007700 61002D00 31004000 63006900 73006300 6F002E00 63006F00 6D000042 01040E00 67007700 61002D00 31004000 63006900 73006300 6F002E00 63006F00 6DC02B93 67D4082A 864886F7 0D020500 8080ED73 946B13E9 EAED6F4D FED13478 A6270100 0100 Mar 2 13:57:41.345: Mar 2 13:57:41.349: RAS INCOMING PDU ::= value RasMessage ::= registrationRequest : { requestSeqNum 90 protocolIdentifier { 0 0 8 2250 0 2 } discoveryComplete TRUE callSignalAddress { ipAddress : { ip 'AC100D0F'H port 1720 } } rasAddress { ipAddress : { ip 'AC100D0F'H port 53958 } } terminalType { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } terminalAlias { h323-ID : {"gwa-1@cisco.com"}, e164 : "99" } gatekeeperIdentifier {"gka-1"} endpointVendor { vendor { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } } timeToLive 60 tokens { { tokenOID { 1 2 840 113548 10 1 2 1 } timeStamp 731080661 challenge '7DD4C637B6DD4E340883A7E5E12A2B78'H random 44 generalID {"gwa-1@cisco.com"} } } cryptoTokens { cryptoEPPwdHash : { alias h323-ID : {"gwa-1@cisco.com"} timeStamp 731080661 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "ED73946B13E9EAED6F4DFED13478A627" } } } keepAlive FALSE willSupplyUUIEs FALSE } Mar 2 13:57:41.401: AAA: parse name=<no string> idb type=-1 tty=-1 Mar 2 13:57:41.405: AAA/MEMORY: create_user (0x81416060) user='gwa-1@cisco.com' ruser='NULL' ds0=0port='NULL' rem_addr='NULL' authen_type=CHAP service=LOGIN priv=0 initial_task_id='0' Mar 2 13:57:41.405: AAA/AUTHEN/START (2845574558): port='' list='h323' action=LOGIN service=LOGIN Mar 2 13:57:41.405: AAA/AUTHEN/START (2845574558): found list h323 Mar 2 13:57:41.405: AAA/AUTHEN/START (2845574558): Method=LOCAL Mar 2 13:57:41.405: AAA/AUTHEN (2845574558): User not found, end of method list Mar 2 13:57:41.405: AAA/AUTHEN (2845574558): status = FAIL !--- Authentication fails. The user is not found on the list. Mar 2 13:57:41.405: voip_chapstyle_auth: astruct.status = 2 Mar 2 13:57:41.405: AAA/MEMORY: free_user (0x81416060) user='gwa-1@cisco.com' ruser='NULL' port='NULL' rem_addr='NULL' authen_type=CHAP service=LOGIN priv=0 Mar 2 13:57:41.409: RAS OUTGOING PDU ::= value RasMessage ::= registrationReject : { requestSeqNum 90 protocolIdentifier { 0 0 8 2250 0 3 } rejectReason securityDenial : NULL gatekeeperIdentifier {"gka-1"} }
بعد تكوين بروتوكول وقت الشبكة (NTP)، لا يزال برنامج حماية البوابة يرفض RRQ. ومع ذلك، يمر هذا الوقت بعملية مصادقة تلك البوابة. يرفض برنامج حماية البوابة RRQ لأنه لم يتم العثور على المستخدم (هنا معرف البوابة) في قائمة المستخدمين الصحيحين على RADIUS. تمت مصادقة البوابة محليا في تكوين برنامج حماية البوابة. في قائمة المستخدمين يمكنك مشاهدة gwa-1. ومع ذلك، فهذا ليس المستخدم المناسب نظرا لأن المستخدم في RRQ هو gwa-1@cisco.com.
أيضا، ما إن شكلت ال username gwa-1@cisco.com كلمة 0 222 أمر على البوابة، البوابة يؤكد البوابة ال RRQ وأن البوابة سجلت.
في هذا المختبر، سجلت بوابة أخرى (gwa-2) إلى نفس البوابة (gka-1). يتم إجراء مكالمة من gwa-1@cisco.com إلى gwa-2 لمعرفة كيفية ظهور رسائل ARQ و ACF والإعداد.
هذه الأخطاء التي تم تجميعها هي من البوابة المنشئة والمنتهية (GWA-2).
يتم تضمين شرح لبعض رسائل تصحيح الأخطاء.
قبل طباعة تصحيح الأخطاء من البوابة الناشئة/الطرفية، يشرح هذا النص تدفق المكالمات:
عند تلقي رسالة إعداد من PSTN، تقوم البوابة بإرسال ARQ إلى برنامج ACF واستقباله من البوابة.
عندما يستلم البوابة ال ACF، البوابة يلد CAT يستعمل البوابة كلمة، H323-ID مستعار، وزمن حالي. يتم وضع الرمز المميز في كتلة التحكم في المكالمات (CCB).
عندما ترسل البوابة رسالة "الإعداد" إلى البوابة الطرفية، فإنها تسترجع رمز الوصول المميز من CCB وتضعه في حقل غير StandardParameter من clearToken ضمن رسالة SETUP.
تقوم عبارة الإنهاء بإزالة الرمز المميز من رسالة "الإعداد"، وتحويله من غير StandardParameter إلى CAT، وتضعه في ARQ.
يتحقق برنامج حماية البوابة من الطابع الزمني للرمز المميز لمعرفة ما إذا كان ضمن نافذة مقبولة بالنسبة لزمانه. حاليا هذا نافذة +/- 30 ثاني حول وقت UTC من البوابة. يتسبب رمز مميز خارج هذا الإطار في تجاهل "البوابة" لهذه الرسالة. وهذا يتسبب في رفض المكالمة.
إذا كان الرمز المميز مقبولا، فسيقوم برنامج حماية البوابة بتنسيق حزمة طلب وصول RADIUS، وتعبئة السمات المناسبة للتحقق من تحدي CHAP وإرساله إلى خادم RADIUS.
بناء على الافتراض بأن الاسم المستعار للعبارة معروف على الخادم، يقوم الخادم بتحديد موقع كلمة المرور المرتبطة بهذا الاسم المستعار وإنشاء إستجابة CHAP الخاصة به باستخدام الاسم المستعار وكلمة المرور وتحدي CHAP من برنامج حماية البوابة. إذا تطابقت إستجابة CHAP الخاصة بها مع تلك التي تم تلقيها من برنامج حماية البوابة، يرسل الخادم حزمة قبول وصول إلى برنامج حماية البوابة. إذا لم تكن مطابقة أو إذا لم يكن الاسم المستعار للعبارة موجودا في قاعدة بيانات الخادم، يرسل الخادم حزمة رفض الوصول مرة أخرى إلى برنامج حماية البوابة.
يستجيب برنامج حماية البوابة إلى البوابة باستخدام ACF إذا إستلمت قبول الوصول، أو ARJ مع رفض أمان رمز السبب إذا إستلمت رفض الوصول. إذا تلقت البوابة قائمة تحكم في الوصول (ACF)، فسيتم توصيل المكالمة.
يوضح هذا المثال تصحيح الأخطاء من البوابة الأصلية.
ملاحظة: لا تكون تصحيح أخطاء H225 asn1 للإعداد في هذا المثال لأنها هي نفسها كما هو موضح في مثال العبارة الطرفية الذي يتبع مثال العبارة التي تم إنشاؤها.
Mar 2 19:39:07.376: cc_api_call_setup_ind (vdbPtr=0x6264AB2C, callInfo={called=3653,called_oct3=0x81,calling=,calling_oct3=0x81,calling_oct3a=0x0, calling_xlated=false,subscriber_type_str=RegularLine,fdest=1,peer_tag=5336, prog_ind=3},callID=0x61DDC2A8) Mar 2 19:39:07.376: cc_api_call_setup_ind type 13 , prot 0 Mar 2 19:39:07.376: cc_process_call_setup_ind (event=0x6231F0C4) Mar 2 19:39:07.380: >>>>CCAPI handed cid 30 with tag 5336 to app "DEFAULT" Mar 2 19:39:07.380: sess_appl: ev(24=CC_EV_CALL_SETUP_IND), cid(30), disp(0) Mar 2 19:39:07.380: sess_appl: ev(SSA_EV_CALL_SETUP_IND), cid(30), disp(0) Mar 2 19:39:07.380: ssaCallSetupInd Mar 2 19:39:07.380: ccCallSetContext (callID=0x1E, context=0x6215B5A0) Mar 2 19:39:07.380: ssaCallSetupInd cid(30), st(SSA_CS_MAPPING),oldst(0), ev(24)ev->e.evCallSetupInd.nCallInfo.finalDestFlag = 1 Mar 2 19:39:07.380: ssaCallSetupInd finalDest cllng(1#5336), clled(3653) Mar 2 19:39:07.380: ssaCallSetupInd cid(30), st(SSA_CS_CALL_SETTING),oldst(0), ev(24)dpMatchPeersMoreArg result= 0 Mar 2 19:39:07.380: ssaSetupPeer cid(30) peer list: tag(3653) called number (3653) Mar 2 19:39:07.380: ssaSetupPeer cid(30), destPat(3653), matched(4), prefix(), peer(62664554), peer->encapType (2) Mar 2 19:39:07.380: ccCallProceeding (callID=0x1E, prog_ind=0x0) Mar 2 19:39:07.380: ccCallSetupRequest (Inbound call = 0x1E, outbound peer =3653, dest=, params=0x62327730 mode=0, *callID=0x62327A98, prog_ind = 3) Mar 2 19:39:07.380: ccCallSetupRequest numbering_type 0x81 Mar 2 19:39:07.380: ccCallSetupRequest encapType 2 clid_restrict_disable 1 null_orig_clg 1 clid_transparent 0 callingNumber 1#5336 Mar 2 19:39:07.380: dest pattern 3653, called 3653, digit_strip 0 Mar 2 19:39:07.380: callingNumber=1#5336, calledNumber=3653, redirectNumber= display_info= calling_oct3a=0 Mar 2 19:39:07.384: accountNumber=, finalDestFlag=1, guid=6aef.3a87.165c.11cc.8040.d661.b74f.9390 Mar 2 19:39:07.384: peer_tag=3653 Mar 2 19:39:07.384: ccIFCallSetupRequestPrivate: (vdbPtr=0x621B2360, dest=, callParams={called=3653,called_oct3=0x81, calling=1#5336,calling_oct3=0x81, calling_xlated=false, subscriber_type_str=RegularLine, fdest=1, voice_peer_tag=3653},mode=0x0) vdbPtr type = 1 Mar 2 19:39:07.384: ccIFCallSetupRequestPrivate: (vdbPtr=0x621B2360, dest=, callParams={called=3653, called_oct3 0x81, calling=1#5336,calling_oct3 0x81, calling_xlated=false, fdest=1, voice_peer_tag=3653}, mode=0x0, xltrc=-5) Mar 2 19:39:07.384: ccSaveDialpeerTag (callID=0x1E, dialpeer_tag=0xE45) Mar 2 19:39:07.384: ccCallSetContext (callID=0x1F, context=0x621545DC) Mar 2 19:39:07.384: ccCallReportDigits (callID=0x1E, enable=0x0) Mar 2 19:39:07.384: cc_api_call_report_digits_done (vdbPtr=0x6264AB2C, callID=0x1E, disp=0) Mar 2 19:39:07.384: sess_appl: ev(52=CC_EV_CALL_REPORT_DIGITS_DONE), cid(30),disp(0) Mar 2 19:39:07.384: cid(30)st(SSA_CS_CALL_SETTING)ev(SSA_EV_CALL_REPORT_DIGITS_DONE) oldst(SSA_CS_MAPPING)cfid(-1)csize(0)in(1)fDest(1) Mar 2 19:39:07.384: -cid2(31)st2(SSA_CS_CALL_SETTING)oldst2(SSA_CS_MAPPING) Mar 2 19:39:07.384: ssaReportDigitsDone cid(30) peer list: (empty) Mar 2 19:39:07.384: ssaReportDigitsDone callid=30 Reporting disabled. Mar 2 19:39:07.388: H225 NONSTD OUTGOING PDU ::= value ARQnonStandardInfo ::= { sourceAlias { } sourceExtAlias { } interfaceSpecificBillingId "ISDN-VOICE" } Mar 2 19:39:07.388: H225 NONSTD OUTGOING ENCODE BUFFER::= 80 00000820 0B124953 444E2D56 4F494345 Mar 2 19:39:07.388: Mar 2 19:39:07.388: H235 OUTGOING ENCODE BUFFER::= 61 000100C0 2B93B7DA 08003200 32003200 3200001E 00670077 0061002D 00310040 00630069 00730063 006F002E 0063006F 006D0000 Mar 2 19:39:07.392: Mar 2 19:39:07.392: RAS OUTGOING PDU ::= value RasMessage ::= admissionRequest : !--- The ARQ is sent to the gatekeeper. { requestSeqNum 549 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"8155346000000001"} destinationInfo { e164 : "2#3653" } srcInfo { e164 : "1#5336", h323-ID : {"gwa-1@cisco.com"} } bandWidth 640 callReferenceValue 15 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '80000008200B124953444E2D564F494345'H } conferenceID '6AEF3A87165C11CC8040D661B74F9390'H activeMC FALSE answerCall FALSE canMapAlias TRUE callIdentifier { guid '6AEF3A87165C11CC8041D661B74F9390'H } tokens !--- Token is included since there is an all level of security. { { tokenOID { 1 2 840 113548 10 1 2 1 } timeStamp 731101147 challenge '1CADDBA948A8291C1F134035C9613E3E'H random 246 generalID {"gwa-1@cisco.com"} } } cryptoTokens { cryptoEPPwdHash : { alias h323-ID : {"gwa-1@cisco.com"} timeStamp 731101147 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "5760B7B4877335B7CD24BD24E4A2AA89" } } } willSupplyUUIEs FALSE } Mar 2 19:39:07.408: RAS OUTGOING ENCODE BUFFER::= 27 88022400 F0003800 31003500 35003300 34003600 30003000 30003000 30003000 30003000 31010280 50698602 02804086 69400E00 67007700 61002D00 31004000 63006900 73006300 6F002E00 63006F00 6D400280 000F40B5 00001211 80000008 200B1249 53444E2D 564F4943 456AEF3A 87165C11 CC8040D6 61B74F93 9004E320 01801100 6AEF3A87 165C11CC 8041D661 B74F9390 48014D00 0A2A8648 86F70C0A 010201C0 2B93B7DA 101CADDB A948A829 1C1F1340 35C9613E 3E0200F6 1E006700 77006100 2D003100 40006300 69007300 63006F00 2E006300 6F006D00 00420104 0E006700 77006100 2D003100 40006300 69007300 63006F00 2E006300 6F006DC0 2B93B7DA 082A8648 86F70D02 05008080 5760B7B4 877335B7 CD24BD24 E4A2AA89 0100 Mar 2 19:39:07.412: h323chan_dgram_send:Sent UDP msg. Bytes sent: 291 to 172.16.13.35:1719 Mar 2 19:39:07.416: RASLib::GW_RASSendARQ: ARQ (seq# 549) sent to 172.16.13.35 Mar 2 19:39:07.432: h323chan_dgram_recvdata:rcvd from [172.16.13.35:1719] on sock[1] Mar 2 19:39:07.432: RAS INCOMING ENCODE BUFFER::= 2B 00022440 028000AC 100D1706 B800EF1A 00C00100 020000 Mar 2 19:39:07.432: Mar 2 19:39:07.432: RAS INCOMING PDU ::= value RasMessage ::= admissionConfirm : !--- Received from the gatekeeper with no tokens. { requestSeqNum 549 bandWidth 640 callModel direct : NULL destCallSignalAddress ipAddress : { ip 'AC100D17'H port 1720 } irrFrequency 240 willRespondToIRR FALSE uuiesRequested { setup FALSE callProceeding FALSE connect FALSE alerting FALSE information FALSE releaseComplete FALSE facility FALSE progress FALSE empty FALSE } } Mar 2 19:39:07.436: ACF (seq# 549) rcvd
يوضح هذا المثال تصحيح الأخطاء من عبارة الإنهاء (TGW). لاحظ أن TGW قد وضع المرحلة الثانية منذ أن حصلت على ACF، والاتصال متصل.
Mar 2 19:39:07.493: PDU DATA = 6147C2BC value H323_UserInformation ::= { h323-uu-pdu { h323-message-body setup : { protocolIdentifier { 0 0 8 2250 0 2 } sourceAddress { h323-ID : {"gwa-1@cisco.com"} !--- Setup is sent from gwa-1@cisco.com gateway. } sourceInfo { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } activeMC FALSE conferenceID '6AEF3A87165C11CC8040D661B74F9390'H conferenceGoal create : NULL callType pointToPoint : NULL sourceCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11032 } callIdentifier { guid '6AEF3A87165C11CC8041D661B74F9390'H } tokens !--- Setup includes the Clear Token (CAT). { { tokenOID { 1 2 840 113548 10 1 2 1 } timeStamp 731101147 challenge 'AFBAAFDF79446B9D8CE164DB8C111A87'H random 247 generalID {"gwa-1@cisco.com"} nonStandard { nonStandardIdentifier { 0 1 2 4 } data '2B93B7DBAFBAAFDF79446B9D8CE164DB8C111A87...'H } } } fastStart { '0000000C6013800A04000100AC100D0F4673'H, '400000060401004C6013801114000100AC100D0F...'H } mediaWaitForConnect FALSE canOverlapSend FALSE } h245Tunneling TRUE nonStandardControl { { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data 'E001020001041504039090A31803A983811E0285...'H } } } } RAW_BUFFER::= E0 01020001 04150403 9090A318 03A98381 1E028583 70058133 36353302 80060004 00000003 Mar 2 19:39:07.509: PDU DATA = 6147F378 value H323_UU_NonStdInfo ::= { version 2 protoParam qsigNonStdInfo : { iei 4 rawMesg '04039090A31803A983811E028583700581333635...'H } progIndParam progIndIEinfo : { progIndIE '00000003'H } } PDU DATA = 6147F378 value ARQnonStandardInfo ::= { sourceAlias { } sourceExtAlias { } } RAW_BUFFER::= 00 0000 Mar 2 19:39:07.517: RAW_BUFFER::= 61 000100C0 2B93B7DA 08003200 32003200 3200000A 00670077 0061002D 00320000 Mar 2 19:39:07.517: PDU DATA = 6147C2BC value RasMessage ::= admissionRequest : !--- An answer ARQ is sent to the gatekeeper to authenticate the caller. { requestSeqNum 22 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"81F5989C00000002"} destinationInfo { e164 : "2#3653" } srcInfo { e164 : "1#5336" } srcCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11032 } bandWidth 640 callReferenceValue 2 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '000000'H } conferenceID '6AEF3A87165C11CC8040D661B74F9390'H activeMC FALSE answerCall TRUE canMapAlias FALSE callIdentifier { guid '6AEF3A87165C11CC8041D661B74F9390'H } tokens !--- CAT is included. { { tokenOID { 0 4 0 1321 1 2 } timeStamp 731101147 challenge 'AFBAAFDF79446B9D8CE164DB8C111A87'H random 247 generalID {"gwa-1@cisco.com"} } } cryptoTokens { cryptoEPPwdHash : { alias h323-ID : {"gwa-2"} timeStamp 731101147 token { algorithmOID { 1 2 840 113549 2 5 } paramS { } hash "8479E7DE63AC17C6A46E9E19659568" } } } willSupplyUUIEs FALSE } RAW_BUFFER::= 27 98001500 F0003800 31004600 35003900 38003900 43003000 30003000 30003000 30003000 32010280 50698601 02804086 6900AC10 0D0F2B18 40028000 0240B500 00120300 00006AEF 3A87165C 11CC8040 D661B74F 939044E3 20010011 006AEF3A 87165C11 CC8041D6 61B74F93 9044014D 00060400 8A290102 C02B93B7 DA10AFBA AFDF7944 6B9D8CE1 64DB8C11 1A870200 F71E0067 00770061 002D0031 00400063 00690073 0063006F 002E0063 006F006D 00002E01 04040067 00770061 002D0032 C02B93B7 DA082A86 4886F70D 02050080 808479E7 0DE63AC1 7C6A46E9 E1965905 680100 Mar 2 19:39:07.533: h323chan_dgram_send:Sent UDP msg. Bytes sent: 228 to 172.16.13.35:1719 Mar 2 19:39:07.533: RASLib::GW_RASSendARQ: ARQ (seq# 22) sent to 172.16.13.35 Mar 2 19:39:07.549: h323chan_dgram_recvdata:rcvd from [172.16.13.35:1719] on sock[1] RAW_BUFFER::= 2B 00001540 028000AC 100D1706 B800EF1A 00C00100 020000 Mar 2 19:39:07.549: PDU DATA = 6147C2BC value RasMessage ::= admissionConfirm : !--- ACF is received from the gatekeeper. { requestSeqNum 22 bandWidth 640 callModel direct : NULL destCallSignalAddress ipAddress : { ip 'AC100D17'H port 1720 } irrFrequency 240 willRespondToIRR FALSE uuiesRequested { setup FALSE callProceeding FALSE connect FALSE alerting FALSE information FALSE releaseComplete FALSE facility FALSE progress FALSE empty FALSE } } Mar 2 19:39:07.553: ACF (seq# 22) rcvd Mar 2 19:39:07.553: cc_api_call_setup_ind (vdbPtr=0x61BC92EC, callInfo={called=2#3653,called_oct3=0x81,calling=1#5336,calling_oct3=0x81, calling_oct3a=0x0,subscriber_type_str=Unknown, fdest=1 peer_tag=5336, prog_ind=3},callID=0x6217CC64) Mar 2 19:39:07.553: cc_api_call_setup_ind type 0 , prot 1 Mar 2 19:39:07.553: cc_api_call_setup_ind (vdbPtr=0x61BC92EC, callInfo={called=2#3653, calling=1#5336, fdest=1 peer_tag=5336}, callID=0x6217CC64) Mar 2 19:39:07.553: cc_process_call_setup_ind (event=0x61E1EAFC) Mar 2 19:39:07.553: >>>>CCAPI handed cid 9 with tag 5336 to app "DEFAULT" Mar 2 19:39:07.553: sess_appl: ev(25=CC_EV_CALL_SETUP_IND), cid(9), disp(0) Mar 2 19:39:07.553: sess_appl: ev(SSA_EV_CALL_SETUP_IND), cid(9), disp(0) Mar 2 19:39:07.553: ssaCallSetupInd Mar 2 19:39:07.553: ccCallSetContext (callID=0x9, context=0x62447A28) Mar 2 19:39:07.553: ssaCallSetupInd cid(9), st(SSA_CS_MAPPING),oldst(0), ev(25)ev->e.evCallSetupInd.nCallInfo.finalDestFlag = 1 Mar 2 19:39:07.553: ssaCallSetupInd finalDest cllng(1#5336), clled(2#3653) Mar 2 19:39:07.553: ssaCallSetupInd cid(9), st(SSA_CS_CALL_SETTING),oldst(0), ev(25)dpMatchPeersMoreArg result= 0 Mar 2 19:39:07.557: ssaSetupPeer cid(9) peer list: tag(3653) called number (2#3653) Mar 2 19:39:07.557: ssaSetupPeer cid(9), destPat(2#3653), matched(5), prefix(21), peer(620F1EF0), peer->encapType (1) Mar 2 19:39:07.557: ccCallProceeding (callID=0x9, prog_ind=0x0) Mar 2 19:39:07.557: ccCallSetupRequest (Inbound call = 0x9, outbound peer =3653, dest=, params=0x61E296C0 mode=0, *callID=0x61E299D0, prog_ind = 3) Mar 2 19:39:07.557: ccCallSetupRequest numbering_type 0x81 Mar 2 19:39:07.557: dest pattern 2#3653, called 2#3653, digit_strip 1 Mar 2 19:39:07.557: callingNumber=1#5336, calledNumber=2#3653, redirectNumber=display_info= calling_oct3a=0 Mar 2 19:39:07.557: accountNumber=, finalDestFlag=1, guid=6aef.3a87.165c.11cc.8040.d661.b74f.9390 Mar 2 19:39:07.557: peer_tag=3653 Mar 2 19:39:07.557: ccIFCallSetupRequestPrivate: (vdbPtr=0x61E4473C, dest=, callParams={called=2#3653,called_oct3=0x81, calling=1#5336,calling_oct3=0x81, subscriber_type_str=Unknown, fdest=1, voice_peer_tag=3653},mode=0x0) vdbPtr type = 6 Mar 2 19:39:07.557: ccIFCallSetupRequestPrivate: (vdbPtr=0x61E4473C, dest=, callParams={called=2#3653, called_oct3 0x81, calling=1#5336,calling_oct3 0x81, fdest=1, voice_peer_tag=3653}, mode=0x0, xltrc=-4) Mar 2 19:39:07.557: ccSaveDialpeerTag (callID=0x9, dialpeer_tag= Mar 2 19:39:07.557: ccCallSetContext (callID=0xA, context=0x6244D9EC) Mar 2 19:39:07.557: ccCallReportDigits (callID=0x9, enable=0x0)
في نفس المختبر، يتم تحميل صورة IOS 12.2(6a) على OGW. عند إجراء مكالمة، يلاحظ أن OGW لا يزال يرسل رمز مميز واضح استنادا إلى كلمة المرور الخاصة به على الرغم من أنه لم يتم تكوين البوابة ل IVR لجمع الحساب/PIN. بالإضافة إلى ذلك، يقوم برنامج حماية البوابة الذي تم تكوينه لكافة المستويات بقبول هذا الاستدعاء. وثقت هذا في cisco بق id CSCdw43224 (يسجل زبون فقط).
كما تمت الإشارة مسبقا في هذا المستند، يتم توفير أمان المكالمات الشامل باستخدام رموز الوصول المميزة التي يتم إرسالها في حقل clearToken في رسائل RAS/H.225. عند تمكين هذا الأمان، تقوم عبارة المصدر بإعادة توجيه رمز الوصول المميز الذي تم تلقيه من البوابة في ACF إلى نقطة نهاية H.323 الوجهة في رسالة إعداد H.225. ثم تقوم نقطة نهاية H.323 هذه للوجهة بإعادة توجيه رمز الوصول المميز الذي تم تلقيه في رسالة "الإعداد" إلى برنامج حماية البوابة في طلب الدخول الخاص بها. ومن خلال القيام بذلك، فإنه يمنح برنامج حماية البوابة البعيدة القدرة على قبول المكالمات استنادا إلى صحة الرمز المميز للوصول. تصل محتويات الرمز المميز للوصول إلى الكيان الذي يقوم بتكوينه. لتقليل ثقوب الأمان وللوقاية من هجمات الدخيل، يمكن لبوابات الدخول ترميز معلومات محددة للوجهة في الرمز المميز للوصول. وهذا يعني أنه عند توفير نقاط النهاية البديلة في قائمة التحكم في الوصول (ACF)، يمكن أن توفر البوابة رمزا مميزا للوصول منفصلا لكل نقطة نهاية بديلة محددة.
عندما يحاول إنشاء اتصال لأول مرة، ترسل بوابة Cisco رمز الوصول المميز الذي إستلمته في حقل ClearToken من ACF مع العنوان في حقل DestCallSignalAddress. إذا لم تنجح هذه المحاولة وتشرع بوابة Cisco في محاولة إجراء إتصالات بنقطة نهاية بديلة، فإنها تستخدم الرمز المميز للوصول المقترن (إذا كان متوفرا) من قائمة نقاط النهاية البديلة. إذا لم تتضمن قائمة نقاط النهاية البديلة التي تم تلقيها في قائمة التحكم في الوصول (ACF) الرموز المميزة للوصول، ولكن قائمة التحكم في الوصول (ACF) تتضمن رمز مميز للوصول، فإن بوابة Cisco تتضمن هذا الرمز المميز للوصول في جميع محاولات الاتصال بنقطة نهاية بديلة.
حاليا، يتم دعم بروتوكول التسوية المفتوحة (OSP) وعلاماته المميزة فقط على بوابات Cisco. لا يوجد دعم على برنامج حماية البوابة. تتعرف البوابة على رموز OSP المميزة التي تم تلقيها من خادم التسوية وتدرجها في رسالة إعداد Q.931 إلى عبارة إنهاء.
لا يمكنك حاليا تكوين مستويات أمان مختلفة لكل نقطة نهاية أو منطقة. مستوى الأمان خاص بجميع المناطق التي يديرها برنامج حماية البوابة هذا. يمكن فتح طلب ميزة لمثل هذه المشكلة.
يوفر Interdomain Gatekeeper to Gatekeeper الأمان إمكانية التحقق من صحة طلبات IntraDomain و Interdomain Gatekeeper إلى Gatekeeper على أساس كل خطوة. هذا يعني أن صاحب البوابة الوجهة ينهي الهر ويولد آخر جديد إذا قرر صاحب البوابة إعادة توجيه LRQ إلى الأمام. إذا اكتشف برنامج حماية البوابة توقيع LRQ غير صالح، فإنه يستجيب بإرسال "رفض الموقع" (LRJ).
يقوم Originating Gatekeeper بإنشاء IZCT عندما يتم بدء LRQ أو يوشك إرسال ACF في حالة إجراء مكالمة داخل المنطقة. يتم إجتياز هذا الرمز المميز من خلال مسار التوجيه الخاص به. على طول المسار، يقوم كل "حارس بوابة" بتحديث معرف حماية الوجهة و/أو معرف حارس بوابة المصدر، إذا لزم الأمر، لعكس معلومات المنطقة. يقوم برنامج حماية البوابة الذي يتم إنهاؤه بإنشاء رمز مميز باستخدام كلمة المرور الخاصة به. يتم حمل هذا الرمز المميز مرة أخرى في رسائل تأكيد الموقع (LCF) وتمريره إلى OGW. يتضمن OGW هذا الرمز المميز في رسالة إعداد H.225. عندما يستلم TGW الرمز المميز، تتم إعادة توجيهه في ARQ ResponseCall والتحقق من صحته من قبل برنامج حماية البوابة (TGK) بدون أي حاجة إلى خادم RADIUS.
يعتمد نوع المصادقة على كلمة المرور بالتجزئة كما هو موضح في ITU H.235. وعلى وجه الخصوص، فإن طريقة التشفير هي MD5 باستخدام تجزئة كلمة المرور.
والغرض من هذا المشروع هو معرفة ما إذا كانت شركة LRQ قد وصلت من منطقة أجنبية، ومن أي منطقة، ومن أي ناقل. هو أيضا استعملت أن يمر رمز مميز إلى ال OGW في ال LCF من ال TGK. ضمن تنسيق IZCT، يلزم توفر هذه المعلومات:
srcCarrierID—تعريف حامل المصدر
dstCarrierID—تعريف حامل الوجهة
intCarrierID—تعريف الناقل الوسيط
srcZone—منطقة المصدر
dstZone—منطقة الوجهة
نوع interzone
intra_domain_cisco
Inter_Domain_Cisco
Intra_Domain_Term_NOT_Cisco
Inter_DOMAIN_ORIG_NOT_Cisco
تعمل هذه الميزة بشكل جيد دون أي حاجة إلى معرف حامل من البوابة أو خادم توجيه حساس لدى شركة الاتصالات (CSR). في هذه الحالة، تكون الحقول المتعلقة بمعرف الناقل فارغة. لا تتضمن الأمثلة هنا أي معرف حامل. للحصول على تدفق المكالمات التفصيلي ودعم الإصدار والنظام الأساسي وتكويناته، راجع تحسين أمان برنامج حماية البوابة بين المجالات.
تتطلب ميزة IZCT هذا التكوين على برنامج حماية البوابة.
Router(gk-config)# [no] security izct password
يجب أن تتكون كلمة المرور من ستة إلى ثمانية أحرف. تحديد المنطقة الموجودة في مجال خارجي مثل هذا:
Router(config-gk)# zone remote other-gatekeeper-name other-domain-name other-gatekeeper-ip-address [port-number] [cost cost-value [priority priority-value]] [foreign-domain]
يوضح هذا المخطط تدفق IZCT.
في هذا التكوين، تكون أسماء البوابات وحواسيب البوابات هي نفسها المستخدمة في مخطط تدفق مكالمات IZCT ولكن بحقيبة أقل. يتم شرح تدفق المكالمات بعد التكوين، مع توضيحات تصحيح الأخطاء.
لشرح ميزة IZCT وتدفق المكالمات، لا يحتوي المثال الأول على عبارة داخل المجال لأمان برنامج حماية البوابة. بعد ذلك، هناك أمثلة على عدم قدرة TGW على إنشاء IZCT بحيث يرفض TGK1 المكالمة. هذا لتوضيح أن الميزة تعمل كما هي مصممة. تستند جميع هذه التخطيطات إلى الطوبولوجيا في الرسم التخطيطي لتدفق مكالمات IZCT.
المثال 1: تدفق المكالمات ل Gatekeeper إلى أمان Gatekeeper فقط
يوضح هذا المثال التكوينات ذات الصلة لجميع البوابات وحافظات البوابات.
تكوين OGW | تكوين TGW |
---|---|
! hostname ogw !controller E1 3/0 pri-group timeslots 1-2,16 ! interface Ethernet0/0 ip address 172.16.13.15 255.255.255.224 half-duplex h323-gateway voip interface h323-gateway voip id ogk1 ipaddr 172.16.13.35 1718 h323-gateway voip h323-id ogw h323-gateway voip tech-prefix 1# ! voice-port 3/0:15 ! dial-peer voice 5336 pots incoming called-number . destination-pattern 5336 direct-inward-dial port 3/0:15 prefix 21 ! dial-peer voice 3653 voip incoming called-number . destination-pattern 3653 session target ras dtmf-relay h245-alphanumeric codec g711ulaw ! gateway ! ntp clock-period 17178791 ntp server 172.16.13.35 end |
hostname tgw ! controller E1 0 clock source line primary ds0-group 0 timeslots 1-2 type r2-digital r2-compelled ! interface Ethernet0 ip address 172.16.13.23 255.255.255.224 h323-gateway voip interface h323-gateway voip id tgk1 ipaddr 172.16.13.41 1718 h323-gateway voip h323-id tgw h323-gateway voip tech-prefix 2# ! voice-port 0:0 compand-type a-law ! dial-peer voice 3653 pots application test1 incoming called-number . destination-pattern 3653 port 0:0 prefix 21 ! dial-peer voice 5336 voip incoming called-number . destination-pattern 5336 session target ras dtmf-relay h245-alphanumeric codec g711ulaw ! gateway ! ntp clock-period 17179814 ntp server 172.16.13.35 end |
تكوين OGK1 | تكوين TGK1 |
---|---|
! hostname ogk1 ! interface Ethernet0/0 ip address 172.16.13.35 255.255.255.224 half-duplex ! gatekeeper zone local ogk1 domainA.com 172.16.13.35 zone remote ogk2 domainA.com 172.16.13.14 1719 zone prefix ogk2 36* zone prefix ogk1 53* security izct password 111222 gw-type-prefix 1#* default- technology no shutdown ! ! no scheduler max-task-time no scheduler allocate ntp master ! end |
! hostname tgk1 ! interface Ethernet0/0 ip address 172.16.13.41 255.255.255.224 ip directed-broadcast half-duplex ! gatekeeper zone local tgk1 domainB.com 172.16.13.41 zone remote tgk2 domainB.com 172.16.13.16 1719 zone prefix tgk1 36* zone prefix tgk2 53* security izct password 111222 gw-type-prefix 2#* default- technology no shutdown ! ntp clock-period 17179797 ntp server 172.16.13.35 ! end |
تكوين OGK2 | تكوين TGK2 |
---|---|
! hostname ogk2 ! interface Ethernet0/0 ip address 172.16.13.14 255.255.255.224 full-duplex ! gatekeeper zone local ogk2 domainA.com zone remote ogk1 domainA.com 172.16.13.35 1719 zone remote tgk2 domainB.com 172.16.13.16 1719 foreign-domain zone prefix tgk2 36* zone prefix ogk1 53* security izct password 111222 lrq forward-queries no shutdown ! ntp clock-period 17208242 ntp server 172.16.13.35 ! end |
! hostname tgk2 ! interface Ethernet0/0 ip address 172.16.13.16 255.255.255.224 half-duplex ! gatekeeper zone local tgk2 domainB.com zone remote tgk1 domainB.com 172.16.13.41 1719 zone remote ogk2 domainA.com 172.16.13.14 1719 foreign-domain zone prefix tgk1 36* zone prefix ogk2 53* security izct password 111222 lrq forward-queries no shutdown ! ntp clock-period 17179209 ntp server 172.16.13.35 ! end |
تستخدم هذه الأمثلة تصحيح الأخطاء لشرح تدفق المكالمات.
يتصل مستخدم على الناقل E بمستخدم على الناقل D.
Mar 4 15:31:19.989: cc_api_call_setup_ind (vdbPtr=0x6264ADF0, callInfo={called=3653, called_oct3=0x80,calling=4085272923,calling_oct3=0x21,calling_oct3a=0x80 calling_xlated=false,subscriber_type_str=RegularLine,fdest=1,peer_tag=5336, prog_ind=0},callID=0x6219F9F0) Mar 4 15:31:19.993: cc_api_call_setup_ind type 13 , prot 0 Mar 4 15:31:19.993: cc_process_call_setup_ind (event=0x6231A6B4) Mar 4 15:31:19.993: >>>>CCAPI handed cid 7 with tag 5336 to app "DEFAULT" Mar 4 15:31:19.993: sess_appl: ev(24=CC_EV_CALL_SETUP_IND), cid(7), disp(0) Mar 4 15:31:19.993: sess_appl: ev(SSA_EV_CALL_SETUP_IND), cid(7), disp(0) Mar 4 15:31:19.993: ssaCallSetupInd Mar 4 15:31:19.993: ccCallSetContext (callID=0x7, context=0x621533F0) Mar 4 15:31:19.997: ssaCallSetupInd cid(7), st(SSA_CS_MAPPING),oldst(0), ev(24) ev->e.evCallSetupInd.nCallInfo.finalDestFlag = 1 Mar 4 15:31:19.997: ssaCallSetupInd finalDest cllng(4085272923), clled(3653) Mar 4 15:31:19.997: ssaCallSetupInd cid(7), st(SSA_CS_CALL_SETTING),oldst(0), ev(24)dpMatchPeersMoreArg result= 0 Mar 4 15:31:19.997: ssaSetupPeer cid(7) peer list: tag(3653) called number (3653) Mar 4 15:31:19.997: ssaSetupPeer cid(7), destPat(3653), matched(4), prefix(), peer(626640B0), peer->encapType (2) Mar 4 15:31:19.997: ccCallProceeding (callID=0x7, prog_ind=0x0) Mar 4 15:31:19.997: ccCallSetupRequest (Inbound call = 0x7, outbound peer=3653, dest=, params=0x62327730 mode=0, *callID=0x62327A98, prog_ind = 0) Mar 4 15:31:19.997: ccCallSetupRequest numbering_type 0x80 Mar 4 15:31:19.997: ccCallSetupRequest encapType 2 clid_restrict_disable 1 null _orig_clg 0 clid_transparent 0 callingNumber 4085272923 Mar 4 15:31:19.997: dest pattern 3653, called 3653, digit_strip 0 Mar 4 15:31:19.997: callingNumber=4085272923, calledNumber=3653, redirectNumber = display_info= calling_oct3a=80 Mar 4 15:31:19.997: accountNumber=, finalDestFlag=1, guid=221b.686c.17cc.11cc.8010.a049.e052.4766 Mar 4 15:31:19.997: peer_tag=3653 Mar 4 15:31:19.997: ccIFCallSetupRequestPrivate: (vdbPtr=0x621B2360, dest=, callParams={called=3653,called_oct3=0x80, calling=4085272923,calling_oct3=0x21, calling_xlated=false, subscriber_type_str=RegularLine, fdest=1, voice_peer_tag=365 3},mode=0x0) vdbPtr type = 1 Mar 4 15:31:19.997: ccIFCallSetupRequestPrivate: (vdbPtr=0x621B2360, dest=, callParams={called=3653, called_oct3 0x80, calling=4085272923,calling_oct3 0x21, calling_xlated=false, fdest=1, voice_peer_tag=3653}, mode=0x0, xltrc=-5) Mar 4 15:31:20.001: ccSaveDialpeerTag (callID=0x7, dialpeer_tag=0xE45) Mar 4 15:31:20.001: ccCallSetContext (callID=0x8, context=0x6215388C) Mar 4 15:31:20.001: ccCallReportDigits (callID=0x7, enable=0x0)
بما أن اتصال العبارة الأصلية (tag=3653) تم تكوينه ل RAS، فإنه يرسل ARQ إلى OGK1.
Mar 4 15:31:20.001: H225 NONSTD OUTGOING PDU ::= value ARQnonStandardInfo ::= { sourceAlias { } sourceExtAlias { } callingOctet3a 128 interfaceSpecificBillingId "ISDN-VOICE" } Mar 4 15:31:20.005: H225 NONSTD OUTGOING ENCODE BUFFER::= 80 000008A0 01800B12 4953444E 2D564F49 4345 Mar 4 15:31:20.005: Mar 4 15:31:20.005: RAS OUTGOING PDU ::= value RasMessage ::= admissionRequest : !--- ARQ is sent out to ogk1. { requestSeqNum 1109 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"81567A4000000001"} destinationInfo { e164 : "3653" } srcInfo { e164 : "4085272923", h323-ID : {"ogw"} } bandWidth 640 callReferenceValue 4 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '80000008A001800B124953444E2D564F494345'H } conferenceID '221B686C17CC11CC8010A049E0524766'H activeMC FALSE answerCall FALSE canMapAlias TRUE callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } willSupplyUUIEs FALSE } Mar 4 15:31:20.013: RAS OUTGOING ENCODE BUFFER::= 27 88045400 F0003800 31003500 36003700 41003400 30003000 30003000 30003000 30003000 31010180 69860204 8073B85A 5C564002 006F0067 00774002 80000440 B5000012 13800000 08A00180 0B124953 444E2D56 4F494345 221B686C 17CC11CC 8010A049 E0524766 04E02001 80110022 1B686C17 CC11CC80 11A049E0 52476601 00 Mar 4 15:31:20.017: h323chan_dgram_send:Sent UDP msg. Bytes sent: 130 to 172.16.13.35:1719 Mar 4 15:31:20.017: RASLib::GW_RASSendARQ: ARQ (seq# 1109) sent to 172.16.13.35
عندما يستلم OGK1 ARQ، فإنه يحدد أن الوجهة تتم خدمتها بواسطة OGK2 للمنطقة البعيدة. ثم يحدد أن هناك حاجة إلى IZCT ( من خلال CLI: كلمة مرور إختبار الأمان <pwd>). ينتقل OGK1 لإنشاء IZCT قبل إرسال LRQ. ثم يرسل IZCT و LRQ إلى OGK2 ويرسل رسالة RIP مرة أخرى إلى OGW.
Mar 4 15:31:19.927: H225 NONSTD OUTGOING PDU ::= value LRQnonStandardInfo ::= { ttl 6 nonstd-callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } callingOctet3a 128 gatewaySrcInfo { e164 : "4085272923", h323-ID : {"ogw"} } } Mar 4 15:31:19.935: H225 NONSTD OUTGOING ENCODE BUFFER::= 82 86B01100 221B686C 17CC11CC 8011A049 E0524766 01801002 048073B8 5A5C5640 02006F00 670077 Mar 4 15:31:19.939: Mar 4 15:31:19.939: PDU ::= value IZCToken ::= !--- The gatekeeper creates and sends out the IZCT. { izctInterZoneType intraDomainCisco : NULL !--- The destination is in the same domain, it is intraDomainCisco type. izctSrcZone "ogk1" !--- The source zone is ogk1. ) Mar 4 15:31:19.943: ENCODE BUFFER::= 07 00C06F67 6B310473 72630464 73740469 6E74 Mar 4 15:31:19.947: Mar 4 15:31:19.947: RAS OUTGOING PDU ::= value RasMessage ::= locationRequest : !--- LRQ is sent out to ogk2. { requestSeqNum 2048 destinationInfo { e164 : "3653" } nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '8286B01100221B686C17CC11CC8011A049E05247...'H } replyAddress ipAddress : { ip 'AC100D23'H port 1719 } sourceInfo { h323-ID : {"ogk1"} } canMapAlias TRUE tokens !--- The IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '0700C06F676B31047372630464737404696E74'H } } } } Mar 4 15:31:19.967: RAS OUTGOING ENCODE BUFFER::= 4A 8007FF01 01806986 40B50000 12288286 B0110022 1B686C17 CC11CC80 11A049E0 52476601 80100204 8073B85A 5C56400 2 006F0067 007700AC 100D2306 B70BA00B 01400300 6F006700 6B003101 802B0100 80092A 86 4886F70C 0A010009 2A864886 F70C0A01 00130700 C06F676B 31047372 63046473 74046 96E 74 Mar 4 15:31:19.983: Mar 4 15:31:19.987: IPSOCK_RAS_sendto: msg length 122 from 172.16.13.35:1719 to 172.16.13.14: 1719 Mar 4 15:31:19.987: RASLib::RASSendLRQ: LRQ (seq# 2048) sent to 172.16.13.14 Mar 4 15:31:19.987: RAS OUTGOING PDU ::= value RasMessage ::= requestInProgress : !--- RIP message is sent back to OGW. { requestSeqNum 1109 delay 9000 } Mar 4 15:31:19.991: RAS OUTGOING ENCODE BUFFER::= 80 05000454 2327 Mar 4 15:31:19.991: Mar 4 15:31:19.991: IPSOCK_RAS_sendto: msg length 7 from 172.16.13.35:1719 to 172.16.13.15: 57076 Mar 4 15:31:19.991: RASLib::RASSendRIP: RIP (seq# 1109) sent to 172.16.13.15
عندما يستلم OGK2 LRQ، فإنه يتحقق من IZCT. من التكوين الذي يجد أن LRQ يحتاج إلى أن يحتوي أيضا على IZCT. يقوم OGK2 بعد ذلك بإنشاء IZCT جديد من خلال تغيير izctSrcZone و izctDstZone لتكون OGK2 وإعادة توجيه LRQ إلى TGK2. بعد أن يرسل ال LRQ إلى TGK2، هو يرسل رسالة RIP إلى OGK1.
إذا كانت البوابات جزءا من نظام مجموعة، فسيتم إستخدام اسم نظام المجموعة ل SrcZone أو DstZone.
Mar 4 15:31:20.051: RAS OUTGOING PDU ::= value RasMessage ::= requestInProgress : !--- RIP message is sent back to OGK1. { requestSeqNum 2048 delay 6000 } Mar 4 15:31:20.055: RAS OUTGOING ENCODE BUFFER::= 80 050007FF 176F Mar 4 15:31:20.055: Mar 4 15:31:20.055: IPSOCK_RAS_sendto: msg length 7 from 172.16.13.14:1719 to 172.16.13.35: 1719 Mar 4 15:31:20.059: RASLib::RASSendRIP: RIP (seq# 2048) sent to 172.16.13.35 Mar 4 15:31:20.059: H225 NONSTD OUTGOING PDU ::= value LRQnonStandardInfo ::= { ttl 5 nonstd-callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } callingOctet3a 128 gatewaySrcInfo { e164 : "4085272923", h323-ID : {"ogw"} } } Mar 4 15:31:20.063: H225 NONSTD OUTGOING ENCODE BUFFER::= 82 06B01100 221B686C 17CC11CC 8011A049 E0524766 01801002 048073B8 5A5C5640 02006F00 670077 Mar 4 15:31:20.072: Mar 4 15:31:20.072: PDU ::= value IZCToken ::= { izctInterZoneType intraDomainCisco : NULL !--- This is still intraDomain since message OGK1 is !--- not a foreign domain. izctSrcZone "ogk2" !--- ScrZone and DstZone become ogk2. izctDstZone "ogk2" } Mar 4 15:31:20.076: ENCODE BUFFER::= 47 00C06F67 6B32066F 676B3204 73726304 64737404 696E74 Mar 4 15:31:20.080: Mar 4 15:31:20.080: RAS OUTGOING PDU ::= value RasMessage ::= locationRequest : !--- The LRQ is forwarded to TGK2. { requestSeqNum 2048 destinationInfo { e164 : "3653" } nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '8206B01100221B686C17CC11CC8011A049E05247...'H } replyAddress ipAddress : { ip 'AC100D23'H port 1719 } sourceInfo { h323-ID : {"ogk1"} } canMapAlias TRUE tokens !--- IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '4700C06F676B32066F676B320473726304647374...'H } } } } Mar 4 15:31:20.104: RAS OUTGOING ENCODE BUFFER::= 4A 8007FF01 01806986 40B50000 12288206 B0110022 1B686C17 CC11CC80 11A049E0 52476601 80100204 8073B85A 5C564002 006F0067 007700AC 100D2306 B70BA00B 01400300 6F006700 6B003101 80300100 80092A86 4886F70C 0A010009 2A864886 F70C0A01 00184700 C06F676B 32066F67 6B320473 72630464 73740469 6E74 Mar 4 15:31:20.120: Mar 4 15:31:20.120: IPSOCK_RAS_sendto: msg length 127 from 172.16.13.14:1719 to 172.16.13.16: 1719 Mar 4 15:31:20.124: RASLib::RASSendLRQ: LRQ (seq# 2048) sent to 172.16.13.16
يحدد TGK2 أن LRQ يأتي من مجال خارجي. يقوم بتحديث dstZone الخاصة ب IZCT بالمعرف الخاص به و interZoneType ك inter_domain_cisco. ثم يقوم بإنشاء قط جديد ويمرر تحديث IZCT و LRQ إلى TGK1.
يعالج TGK2 المنطقة التي يتم منها تلقي LRQ كمنطقة مجال خارجي في أي من السيناريوهين التاليين:
لا تحتوي قائمة المنطقة البعيدة الخاصة ب TGK2 على المنطقة التي تم تلقي LRQ منها.
تحتوي قائمة المنطقة البعيدة الخاصة ب TGK2 على المنطقة التي يتم تلقي LRQ منها. تم وضع علامة على المنطقة بعلامة مجال خارجي.
ثم يرسل رسالة طلب قيد التقدم مرة أخرى إلى OGK1.
Mar 4 15:31:20.286: RAS OUTGOING PDU ::= value RasMessage ::= requestInProgress : !--- The RIP message is sent back to !--- OGK1 since lrq-forward queries are configured on OGK2 and TGK2. { requestSeqNum 2048 delay 6000 } Mar 4 15:31:20.286: RAS OUTGOING ENCODE BUFFER::= 80 050007FF 176F Mar 4 15:31:20.286: Mar 4 15:31:20.286: IPSOCK_RAS_sendto: msg length 7 from 172.16.13.16:1719 to 172.16.13.35: 1719 Mar 4 15:31:20.286: RASLib::RASSendRIP: RIP (seq# 2048) sent to 172.16.13.35 Mar 4 15:31:20.286: H225 NONSTD OUTGOING PDU ::= value LRQnonStandardInfo ::= { ttl 4 nonstd-callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } callingOctet3a 128 gatewaySrcInfo { e164 : "4085272923", h323-ID : {"ogw"} } } Mar 4 15:31:20.290: H225 NONSTD OUTGOING ENCODE BUFFER::= 81 86B01100 221B686C 17CC11CC 8011A049 E0524766 01801002 048073B8 5A5C5640 02006F00 670077 Mar 4 15:31:20.290: Mar 4 15:31:20.290: PDU ::= value IZCToken ::= !--- The IZCT information. { izctInterZoneType interDomainCisco : NULL !--- The zone type is interDomain since the OGK2 !--- in a foreign domain is configured in TGK2. izctSrcZone "ogk2" !--- SrcZone is still ogk2. izctDstZone "tgk2" !--- DstZone changed to tgk2. } Mar 4 15:31:20.294: ENCODE BUFFER::= 47 20C06F67 6B320674 676B3204 73726304 64737404 696E74 Mar 4 15:31:20.294: Mar 4 15:31:20.294: RAS OUTGOING PDU ::= value RasMessage ::= locationRequest : !--- LRQ is sent to TGK1. { requestSeqNum 2048 destinationInfo { e164 : "3653" } nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '8186B01100221B686C17CC11CC8011A049E05247...'H } replyAddress ipAddress : { ip 'AC100D23'H port 1719 } sourceInfo { h323-ID : {"ogk1"} } canMapAlias TRUE tokens !--- The IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '4720C06F676B320674676B320473726304647374...'H } } } } Mar 4 15:31:20.302: RAS OUTGOING ENCODE BUFFER::= 4A 8007FF01 01806986 40B50000 12288186 B0110022 1B686C17 CC11CC80 11A049E0 52476601 80100204 8073B85A 5C564002 006F0067 007700AC 100D2306 B70BA00B 01400300 6F006700 6B003101 80300100 80092A86 4886F70C 0A010009 2A864886 F70C0A01 00184720 C06F676B 32067467 6B320473 72630464 73740469 6E74 Mar 4 15:31:20.306: Mar 4 15:31:20.306: IPSOCK_RAS_sendto: msg length 127 from 172.16.13.16:1719 to 172.16.13.41: 1719 Mar 4 15:31:20.306: RASLib::RASSendLRQ: LRQ (seq# 2048) sent to 172.16.13.41
وعادة ما يقوم TGK1 بتحديث dstCarrierID الخاص ب IZCT إلى الناقل E، والذي يتم تحديده بواسطة عملية التوجيه. ومع ذلك، فبما أنه لا يتم إستخدام أي حاملات، فإنك لا ترى ذلك. يقوم TGK1 بإنشاء رمز مميز للتجزئة باستخدام كلمة مرور IZCT. إنه يرسل LCF مع تحديث IZCT فيه إلى OGK1. يتم إستخدام هذا izctHash لمصادقة ResponseCall ARQ الذي يستلمه TGK1 من TGW عندما يستقبل الأحدث رسالة إعداد VoIP من OGW.
Mar 4 15:31:20.351: PDU ::= value IZCToken ::= !--- IZCT with a hash is generated to be sent back to TGK2. { izctInterZoneType interDomainCisco : NULL izctSrcZone "ogk2" izctDstZone "tgk2" izctTimestamp 731259080 izctRandom 3 izctHash '5A7D5E18AA658A6A4B4709BA5ABEF2B9'H } Mar 4 15:31:20.355: ENCODE BUFFER::= 7F 20C06F67 6B320674 676B32C0 2B9620C7 0103105A 7D5E18AA 658A6A4B 4709BA5A BEF2B904 73726304 64737404 696E74 Mar 4 15:31:20.355: Mar 4 15:31:20.355: RAS OUTGOING PDU ::= value RasMessage ::= locationConfirm : !--- LCF is sent back to OGK1 since lrq-forward queries !--- are configured on OGK2 and TGK2. { requestSeqNum 2048 callSignalAddress ipAddress : { ip 'AC100D17'H port 1720 } rasAddress ipAddress : { ip 'AC100D17'H port 55762 } nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '000140020074006700770600740067006B003101...'H } destinationType { gateway { protocol { voice : { supportedPrefixes { } } } } mc FALSE undefinedNode FALSE } tokens !--- The IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '7F20C06F676B320674676B32C02B9620C7010310...'H } } } } Mar 4 15:31:20.367: RAS OUTGOING ENCODE BUFFER::= 4F 07FF00AC 100D1706 B800AC10 0D17D9D2 40B50000 122F0001 40020074 00670077 06007400 67006B00 31011001 40020074 00670077 00AC100D 1706B800 00000000 00000000 00104808 0880013C 05010000 48010080 092A8648 86F70C0A 0100092A 864886F7 0C0A0100 307F20C0 6F676B32 0674676B 32C02B96 20C70103 105A7D5E 18AA658A 6A4B4709 BA5ABEF2 B9047372 63046473 7404696E 74 Mar 4 15:31:20.371: Mar 4 15:31:20.371: IPSOCK_RAS_sendto: msg length 154 from 172.16.13.41:1719 to 172.16.13.35: 1719 Mar 4 15:31:20.371: RASLib::RASSendLCF: LCF (seq# 2048) sent to 172.16.13.35
تستخرج OGK1 IZCT من LCF وترسلها في ACF إلى OGW.
Mar 4 15:31:20.316: PDU ::= value IZCToken ::= !--- The extracted IZCT. { izctInterZoneType interDomainCisco : NULL izctSrcZone "ogk2" izctDstZone "tgk2" izctTimestamp 731259080 izctRandom 3 izctHash '5A7D5E18AA658A6A4B4709BA5ABEF2B9'H } Mar 4 15:31:20.324: ENCODE BUFFER::= 7F 20C06F67 6B320674 676B32C0 2B9620C7 0103105A 7D5E18AA 658A6A4B 4709BA5A BEF2B904 73726304 64737404 696E74 Mar 4 15:31:20.328: Mar 4 15:31:20.332: RAS OUTGOING PDU ::= value RasMessage ::= admissionConfirm : !--- ACF is sent back to OGW with the hashed IZCToken. { requestSeqNum 1109 bandWidth 640 callModel direct : NULL destCallSignalAddress ipAddress : { ip 'AC100D17'H port 1720 } irrFrequency 240 tokens !--- The IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '7F20C06F676B320674676B32C02B9620C7010310...'H } } } willRespondToIRR FALSE uuiesRequested { setup FALSE callProceeding FALSE connect FALSE alerting FALSE information FALSE releaseComplete FALSE facility FALSE progress FALSE empty FALSE } } Mar 4 15:31:20.352: RAS OUTGOING ENCODE BUFFER::= 2B 00045440 028000AC 100D1706 B800EF1A 08C04801 0080092A 864886F7 0C0A0100 092A8648 86F70C0A 0100307F 20C06F67 6B320674 676B32C0 2B9620C7 0103105A 7D5E18AA 658A6A4B 4709BA5A BEF2B904 73726304 64737404 696E7401 00020000 Mar 4 15:31:20.364: Mar 4 15:31:20.364: IPSOCK_RAS_sendto: msg length 97 from 172.16.13.35:1719 to 172.16.13.15: 57076 Mar 4 15:31:20.368: RASLib::RASSendACF: ACF (seq# 1109) sent to 172.16.13.15
يرسل OGW ال IZCT إلى TGW في رسالة إعداد H.225.
Mar 4 15:31:20.529: H225.0 OUTGOING PDU ::= value H323_UserInformation ::= { h323-uu-pdu { h323-message-body setup : !--- H.225 SETUP message is sent to TGW. { protocolIdentifier { 0 0 8 2250 0 2 } sourceAddress { h323-ID : {"ogw"} } sourceInfo { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } activeMC FALSE conferenceID '221B686C17CC11CC8010A049E0524766'H conferenceGoal create : NULL callType pointToPoint : NULL sourceCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11003 } callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } tokens !--- The hashed IZCT information is included in the setup message. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '7F20C06F676B320674676B32C02B9620C7010310...'H } } } fastStart { '0000000C6013800A04000100AC100D0F4125'H, '400000060401004C6013801114000100AC100D0F...'H } mediaWaitForConnect FALSE canOverlapSend FALSE } h245Tunneling TRUE nonStandardControl { { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '6001020001041F04038090A31803A983816C0C21...'H } } } }
يقوم TGW بتمرير IZCT إلى TGK1 في ARQ ResponseCall.
Mar 4 15:31:20.613: Mar 4 15:31:20.613: RAS OUTGOING PDU ::= value RasMessage ::= admissionRequest : !--- ARQ answerCall type is sent to TGK1. { requestSeqNum 78 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"617D829000000001"} destinationInfo { e164 : "3653" } srcInfo { e164 : "4085272923", h323-ID : {"ogw"} } srcCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11003 } bandWidth 1280 callReferenceValue 3 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '80000008800180'H } conferenceID '221B686C17CC11CC8010A049E0524766'H activeMC FALSE answerCall TRUE canMapAlias TRUE callIdentifier { guid '221B686C17CC11CC8011A049E0524766'H } tokens !--- The hashed IZCToken information is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '7F20C06F676B320674676B32C02B9620C7010310...'H } } } willSupplyUUIEs FALSE }
يقوم TGK1 بمصادقة IZCT للوجهة بنجاح. هذا لأن TGK1 يولد التجزئة في IZCT ويرسل ACF إلى TGW.
Mar 4 15:31:20.635: Mar 4 15:31:20.635: PDU ::= value IZCToken ::= !--- The extracted IZCT from the ARQ to be validated. { izctInterZoneType interDomainCisco : NULL izctSrcZone "ogk2" izctDstZone "tgk2" izctTimestamp 731259080 izctRandom 3 izctHash '5A7D5E18AA658A6A4B4709BA5ABEF2B9'H } Mar 4 15:31:20.639: RAS OUTGOING PDU ::= value RasMessage ::= admissionConfirm : !--- After the IZCT is validated, ACF is sent back to TGW. { requestSeqNum 78 bandWidth 1280 callModel direct : NULL destCallSignalAddress ipAddress : { ip 'AC100D17'H port 1720 } irrFrequency 240 willRespondToIRR FALSE uuiesRequested { setup FALSE callProceeding FALSE connect FALSE alerting FALSE information FALSE releaseComplete FALSE facility FALSE progress FALSE empty FALSE } }
يؤسس TGW المكالمة تجاه الناقل D بعد أن يستلم ACF.
مثال 2: فشل الاستدعاء لأن TGW غير قادر على إستخراج IZCT من رسالة الإعداد المستلمة.
يعتمد هذا المثال على نفس المخطط والتكوين مثل المثال 1. في هذا المثال، يتم تغيير برنامج TGW إلى إصدار لا يتم فيه دعم IZCT. في هذه الحالة، لا يتمكن TGW من إستخراج IZCT من رسالة الإعداد. وهذا يتسبب في رفض TGK1 للمكالمة بسبب قطع الاتصال لرفض الأمان.
يوضح هذا المثال رسالة الإعداد، ARQ، و ARJ على TGW فقط نظرا لأن تدفق المكالمات هو نفسه كمثال 1.
Mar 4 19:50:32.346: PDU DATA = 6147C2BC value H323_UserInformation ::= { h323-uu-pdu { h323-message-body setup : !--- H.225 SETUP message is received with a token included. { protocolIdentifier { 0 0 8 2250 0 2 } sourceAddress { h323-ID : {"ogw"} } sourceInfo { gateway { protocol { voice : { supportedPrefixes { { prefix e164 : "1#" } } } } } mc FALSE undefinedNode FALSE } activeMC FALSE conferenceID '56CA67C817F011CC8014A049E0524766'H conferenceGoal create : NULL callType pointToPoint : NULL sourceCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11004 } callIdentifier { guid '56CA67C817F011CC8015A049E0524766'H } tokens !--- Hashed IZCT is included. { { tokenOID { 1 2 840 113548 10 1 0 } nonStandard { nonStandardIdentifier { 1 2 840 113548 10 1 0 } data '7F20C06F676B320674676B32C02B965D85010410...'H } } } fastStart { '0000000C6013800A04000100AC100D0F45D9'H, '400000060401004C6013801114000100AC100D0F...'H } mediaWaitForConnect FALSE canOverlapSend FALSE } h245Tunneling TRUE nonStandardControl { { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '6001020001041F04038090A31803A983816C0C21...'H } } } } RAW_BUFFER::= 60 01020001 041F0403 8090A318 03A98381 6C0C2180 34303835 32373239 32337005 80333635 33 Mar 4 19:50:32.362: PDU DATA = 6147F378 value H323_UU_NonStdInfo ::= { version 2 protoParam qsigNonStdInfo : { iei 4 rawMesg '04038090A31803A983816C0C2180343038353237...'H } } PDU DATA = 6147F378 value ARQnonStandardInfo ::= { sourceAlias { } sourceExtAlias { } callingOctet3a 128 } RAW_BUFFER::= 80 00000880 0180 Mar 4 19:50:32.366: PDU DATA = 6147C2BC value RasMessage ::= admissionRequest : !--- ARQ is sent out. There is no token in it. { requestSeqNum 23 callType pointToPoint : NULL callModel direct : NULL endpointIdentifier {"617D829000000001"} destinationInfo { e164 : "3653" } srcInfo { e164 : "4085272923" } srcCallSignalAddress ipAddress : { ip 'AC100D0F'H port 11004 } bandWidth 640 callReferenceValue 1 nonStandardData { nonStandardIdentifier h221NonStandard : { t35CountryCode 181 t35Extension 0 manufacturerCode 18 } data '80000008800180'H } conferenceID '56CA67C817F011CC8014A049E0524766'H activeMC FALSE answerCall TRUE canMapAlias FALSE callIdentifier { guid '56CA67C817F011CC8015A049E0524766'H } willSupplyUUIEs FALSE } RAW_BUFFER::= 27 98001600 F0003600 31003700 44003800 32003900 30003000 30003000 30003000 30003000 31010180 69860104 8073B85A 5C5600AC 100D0F2A FC400280 000140B5 00001207 80000008 80018056 CA67C817 F011CC80 14A049E0 52476644 E0200100 110056CA 67C817F0 11CC8015 A049E052 47660100 Mar 4 19:50:32.374: h323chan_dgram_send:Sent UDP msg. Bytes sent: 117 to 172.16.13.41:1719 Mar 4 19:50:32.374: RASLib::GW_RASSendARQ: ARQ (seq# 23) sent to 172.16.13.41 Mar 4 19:50:32.378: h323chan_dgram_recvdata:rcvd from [172.16.13.41:1719] on sock[1] RAW_BUFFER::= 2C 00168001 00 Mar 4 19:50:32.378: PDU DATA = 6147C2BC value RasMessage ::= admissionReject : !--- ARJ is received with a reason of security denial. { requestSeqNum 23 rejectReason securityDenial : NULL } Mar 4 19:50:32.378: ARJ (seq# 23) rcvd