المقدمة
يصف هذا وثيقة الحاجة إلى جلسة عمل منفعة لنادل NAT (STUN)، النوع من شبكة عنوان ترجمة (NAT) فيما يتعلق بخوادم STUN، كيف NAT يسبب مشكلة في هذا إعداد والحل.
معلومات أساسية
الغرض الأساسي من أجهزة NAT هو السماح للأجهزة ذات عناوين IP الخاصة في شبكة منطقة محلية (LAN) بالاتصال بالأجهزة في مساحات العناوين العامة، مثل الإنترنت. ومع ذلك، فعلى الرغم من أنه من المفترض أن تسمح أجهزة NAT للمضيفين الداخليين بالاتصال بالمساحة العامة، إلا أن NAT يوفر صعوبة في إنشاء إتصالات UDP هذه عندما يتعلق الأمر بتطبيقات من نقطة إلى نقطة (P2P) مثل VoIP والألعاب و WebRTC ومشاركة الملفات حيث يحتاج المستخدمون النهائيون إلى العمل كعميل وخادم على حد سواء للحفاظ على الاتصال من نقطة إلى نقطة، فإن NAT يوفر صعوبة في إنشاء إتصالات UDP هذه. تكون تقنيات إجتياز NAT مطلوبة بشكل نموذجي لجعل هذه التطبيقات تعمل.
الحاجة إلى إجتياز NAT
إن الاتصال في الوقت الفعلي بالصوت والفيديو على الإنترنت هو الإتجاه السائد اليوم مع العديد من المراسلات الفورية (IM) التي تدعم مكالمات VoIP. إحدى العقبات الكبيرة التي واجهت تبني بروتوكول VoIP في بادئ الأمر هي أن معظم أجهزة الكمبيوتر أو الأجهزة الأخرى تقع خلف جدران الحماية وتستخدم عناوين IP الخاصة. عينت يتعدد عنوان خاص (عنوان ومنفذ) في الشبكة إلى عنوان عام وحيد بجدار حماية مع NAT. ولكن الجهاز الطرفي لا يعرف عنوانه العام، وبالتالي لا يمكنه تلقي حركة مرور الصوت من الطرف البعيد على العنوان الخاص الذي أعلن عنه في اتصال VoIP الخاص به.
عمليات الإصلاح الذاتي للعنوان الأحادي (UNSAF) هي عمليات تحاول فيها بعض نقاط النهاية المنشئة تحديد أو إصلاح العنوان (والمنفذ) الذي يعرف به نقطة نهاية أخرى أو على سبيل المثال، القدرة على إستخدام بيانات العنوان في تبادل البروتوكول أو الإعلان عن عنوان عام تتلقى منه الاتصالات.
ومن ثم، فإن إتصالات P2P قيد المناقشة هي عمليات UNSAF. إحدى الطرق الشائعة لإنشاء تطبيقات P2P لجلسات عمل نظير والاستمرار في كونها ملائمة ل NAT هي عندما تستخدم خادم نسخ قابل للتوجيه بشكل عام لأغراض التسجيل واكتشاف النظير.
أدوات مساعدة تبادل الجلسات ل NAT
وفقا لمعيار RFC 5389، يوفر بروتوكول الشجرة المتفرعة (STUN) أداة تتعامل مع بطاقات واجهة الشبكة (NAT). هو يوفر وسيلة لنقطة نهاية أن يحدد العنوان ومنفذ يعين ب nat أداة أن يماثل هو عنوان ومنفذ خاص. كما يوفر طريقة لنقطة نهاية لإبقاء ربط NAT حيا.
أنواع عمليات تنفيذ NAT
ولوحظ أن معاملة NAT لمخطط التنمية المستدامة تختلف فيما بين عمليات التنفيذ. العلاجات الأربعة التي لوحظت في عمليات التنفيذ هي:
مخروط كامل: NAT مخروط كامل واحد حيث كل طلب من ال نفسه داخلي عنوان ومنفذ عينت إلى ال نفسه عنوان ومنفذ خارجي. علاوة على ذلك، يمكن لأي مضيف خارجي إرسال حزمة إلى المضيف الداخلي، ويرسل حزمة إلى العنوان الخارجي الذي تم تعيينه.
مخروط مقيد: NAT مخروط مقيد هو واحد حيث كل الطلبات من ال نفسه داخلي عنوان ومنفذ عينت إلى ال نفسه خارجي عنوان ومنفذ. بخلاف NAT مخروط كامل، مضيف خارجي (مع عنوان x) يستطيع أرسلت ربط إلى المضيف داخلي فقط إن المضيف داخلي كان سابقا أرسلت ربط إلى عنوان x.
المخروط المقيد للمنفذ: يشبه NAT المخروط المقيد مخروط، غير أن القيد يتضمن أرقام المنافذ. وعلى وجه الخصوص، يمكن للمضيف الخارجي إرسال حزمة، مع مصدر عنوان X ومصدر منفذ P، إلى المضيف الداخلي فقط إذا كان المضيف الداخلي قد أرسل حزمة من قبل إلى عنوان IP X ومنفذ P.
متماثل: NAT متماثل واحد حيث كل طلب من ال نفسه داخلي عنوان ومنفذ إلى غاية خاص عنوان ومنفذ، عينت إلى ال نفسه خارجي عنوان ومنفذ. إن يرسل ال نفسه مضيف ربط مع ال نفسه مصدر عنوان ومنفذ، غير أن إلى غاية مختلف، يخطط مختلف استعملت. علاوة على ذلك، يمكن فقط للمضيف الخارجي الذي يستلم حزمة إرسال حزمة UDP مرة أخرى إلى المضيف الداخلي.
ضع في الاعتبار مخطط حيث يتصل المصدر (A، PA) (حيث A هو عنوان IP، و PA هو المنفذ المصدر) بالوجهة (B، Pb) و(C، PC) من خلال جهاز nat.
نوع تنفيذ NAT |
مصدر عام عندما تم توجيهه إلى (B، Pb) |
مصدر عام عندما يتم توجيهها إلى (C، جهاز كمبيوتر) |
يستطيع غاية (مثلا: (ب، ب) ) يرسل حركة مرور إلى (أ، ب)؟ |
مخروط كامل |
(x1،px1) |
(x1،px1) |
نعم |
مخروط مقيد |
(x1،px1) |
(x1،px1) |
فقط إذا (A، Pa) أرسلت الحركة لأول مرة إلى B |
مخروط مقيد للمنفذ |
(x1،px1) |
(x1،px1) |
فقط إذا كانت (A، PA) قد أرسلت الحركة لأول مرة إلى (B، Pb) |
تناظري |
(x1،px1) |
(x2،px2) |
فقط إذا كانت (A، PA) قد أرسلت الحركة لأول مرة إلى (B، Pb) |
المشاكل مع NAT Traversal و Symmetric NAT
تستجيب خوادم STUN لطلبات ربط STUN التي يرسلها عملاء STUN وتوفر منفذ IP/العميل العام. الآن، يتم إستخدام مجموعة العناوين/المنافذ هذه من قبل عميل STUN في إرسال إشارات اتصال نظير إلى نظير الخاص به. مهما، الآن أن EndHost يستعمل ال نفسه عنوان/ميناء خاص (دعونا نفترض أن يكون مرتبط إلى العام ip/ميناء يزود في الإستجابة STUN) ال nat يترجم هو إلى ال نفسه ip غير أن ميناء مختلف إن استعملت متماثل natتنفيذ. يؤدي هذا إلى قطع اتصال UDP لأن الإشارات أنشأت الاتصال استنادا إلى المنفذ السابق.
cisco ios ® مسحاج تخديد nat تنفيذ عندما هو ينجز ضرب متماثل افتراضيا. لذلك، من المتوقع أن ترى مشاكل اتصال UDP مع هذه الموجهات التي تؤدي NAT.
مهما، ال cisco IOS-XE مسحاج تخديد nat تنفيذ عندما ينجز ضرب ليس متماثل. عندما يرسل أنت إثنان تيار مختلف مع ال نفسه مصدر IP ومنفذ غير أن إلى غاية مختلف، المصدر يحصل NATs إلى ال نفسه داخل شامل IP ومنفذ.
حل المسألة
من هذا الوصف، يكون من الواضح أن المشكلة يستطيع كنت حللت إن أنت أنجزت مستقل تعيين.
طبقا ل RCFC 4787: مع تخطيط مستقل عن نقطة نهاية (EIM)، فإن NAT يعيد إستخدام تخطيط المنفذ للحزم التالية المرسلة من نفس عنوان IP ومنفذ داخلي (X:x) إلى أي عنوان IP ومنفذ خارجي.
من عميل، عندما يركض المضيف الداخلي الأمر nc -p 23456 10.0.0.4 4000 وnc -p 23456 10.0.0.5 5000، على إثنان محطة طرفية مختلف نافذة، هنا نتائج ترجمات nat إن يستعمل أنت EIM:
Pro Inside global Inside local Outside local Outside global
tcp 10.0.0.1:23456 192.168.0.2:23456 10.0.0.4:40000 10.0.0.4:40000
tcp 10.0.0.1:23456 192.168.0.2:23456 10.0.0.5:50000 10.0.0.5:50000
هنا أنت يستطيع رأيت أن مختلف حركة مرور يتدفق أن يتلقى ال نفسه مصدر عنوان ومنفذ يحصل ترجمت إلى ال نفسه عنوان/ميناء regardless of الغاية ميناء/عنوان.
على موجهات Cisco IOS، يمكنك تمكين تخصيص المنفذ المجمع لنقطة النهاية باستخدام الأمر ip nat service enable-sym-port.
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/15-mt/nat-15-mt-book/iadnat-fpg-port-alloc.html
ملخص
يكون تنفيذ Cisco IOS NAT متماثل بشكل افتراضي عندما يستعمل أنت أيسر عنوان ترجمة (ضرب) وهو يستطيع سببت إصدار عندما هو يمر p2P udp حركة مرور أن يتطلب نادل مثل STUN لمرور nat. تحتاج إلى تكوين EIM بشكل صريح على جهاز NAT لجعل هذا العمل.