ابدأ الآن سيريا بروكسي syriaproxy أول خدمة بروكسي مختصة بسوريا

ما هو CGNAT؟

ترجمة العناوين على مستوى المشغّل (Carrier-Grade NAT) جهاز لدى مزود الخدمة يجعل مشتركين كثيرين يخرجون إلى الإنترنت بعنوان IPv4 عام واحد. يميّز الجهاز اتصالات كل مشترك بأرقام المنافذ، ويحفظ جدولاً يعيد به كل رد إلى صاحبه. وتعتمد عليه شبكات الجوال خاصةً، لأن عدد أجهزتها يفوق ما تملكه من عناوين.

لماذا ظهر

عنوان IPv4 طوله 32 بت، فلا يتجاوز عدد العناوين نحو 4.3 مليار. نفدت مخزونات السجلات الإقليمية من هذه العناوين، والانتقال إلى IPv6 لم يكتمل بعد، فلا يزال كثير من المواقع والشبكات يعتمد على IPv4.

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

وبعض المشغّلين يعطون الهاتف عنوان IPv6 وحده، ويترجمون حركة IPv4 عند حافة الشبكة. في الحالتين يبقى عنوان IPv4 العام الذي تراه المواقع مشتركاً بين كثيرين.

كيف يعمل، خطوة بخطوة

  1. يحصل هاتفك على عنوان داخلي من المشغّل، كثيراً ما يكون من الكتلة 100.64.0.0/10 أو من كتل RFC 1918 الخاصة.
  2. يفتح تطبيق على الهاتف اتصالاً بخادم على المنفذ 443، من منفذ مصدر يختاره النظام.
  3. تمر الحزمة الأولى بجهاز CGNAT، فيختار عنواناً عاماً ومنفذاً خارجياً لم يُستخدما، ويسجّل الربط بين الداخلي والخارجي.
  4. يستبدل الجهاز عنوان المصدر ومنفذه في الحزمة بالعنوان والمنفذ الخارجيين، ثم يرسلها إلى الإنترنت.
  5. يرد الخادم إلى العنوان العام والمنفذ الخارجي، فيبحث الجهاز في جدوله ويعيد الحزمة إلى هاتفك.
  6. إذا بقي الربط خاملاً مدة محددة حذفه الجهاز، وأُعيد المنفذ إلى المخزون.

هكذا قد يبدو جزء من جدول الربط لمشتركين يتصلان بالخادم نفسه في اللحظة نفسها:

inside             outside            destination
100.71.4.12:51034  203.0.113.7:20112  198.51.100.20:443
100.92.8.40:40211  203.0.113.7:20113  198.51.100.20:443

الخادم يرى عنواناً واحداً، 203.0.113.7، بمنفذين مختلفين. لا يملك أي وسيلة ليعرف من الحزم وحدها أنهما مشتركان مختلفان.

الكتلة 100.64.0.0/10

حجز المعيار RFC 6598 عام 2012 هذه الكتلة باسم «مساحة العناوين المشتركة» لاستخدام مزودي الخدمة. وهي تضم 4,194,304 عناوين، وتُستخدم أساساً لترقيم الوصلات بين أجهزة CGNAT وموجّهات المشتركين.

ينص المعيار على أنها مختلفة عن العناوين الخاصة في RFC 1918. والسبب أن موجّهك المنزلي قد يستخدم 192.168.1.0/24 داخلياً، فلو أعطاه المزود عنواناً من الكتلة نفسها لتعارض المساران. ولا يجوز تمرير حزم هذه الكتلة ولا مساراتها خارج حدود شبكة المزود.

في الشبكات المنزلية التي تعمل خلف CGNAT تحدث الترجمة مرتين: في موجّهك من العنوان الخاص إلى عنوان المزود الداخلي، ثم لدى المزود إلى العنوان العام.

ماذا يشترط المعيار على أجهزة CGNAT

جمع المعيار RFC 6888 المتطلبات العامة لهذه الأجهزة. أهمها لمستخدم الإنترنت ثلاثة:

آثار مشاركة العنوان

يصف المعيار RFC 6269 المشكلات التي تنتج عن مشاركة عنوان IPv4 بين مشتركين، وأبرزها:

كيف تعرف أنك خلف CGNAT

  1. افتح صفحة حالة الموجّه، وانظر إلى عنوان الواجهة الخارجية (WAN).
  2. قارنه بعنوانك العام كما تراه المواقع.
  3. إن كان عنوان الموجّه ضمن 100.64.0.0/10، أي من 100.64.0.0 إلى 100.127.255.255، فأنت في الغالب خلف CGNAT.
  4. إن كان ضمن كتل RFC 1918 واختلف عن العنوان العام، فهناك ترجمة أخرى قبل الإنترنت، لدى المزود أو في موجّه ثانٍ.

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

tracert -d 9.9.9.9      # Windows
traceroute -n 9.9.9.9   # Linux, macOS

ظهور عناوين من 100.64.0.0/10 في القفزات الأولى علامة على شبكة المزود الداخلية.

إن احتجت اتصالاً وارداً

syriaproxy وCGNAT

العناوين التي يخرج بها اتصالك عبر syriaproxy عناوين خلوية حقيقية من شبكة سيريتل للجيل الرابع داخل سوريا. ويتشاركها كثير من مشتركي سيريتل في الوقت نفسه خلف CGNAT. يبقى العنوان نفسه نحو ساعتين ثم تغيّره سيريتل، ويمكنك طلب عنوان جديد من حسابك متى شئت.

الفرق بين هذه العناوين وعناوين الخوادم في العنوان الخلوي وعنوان مركز البيانات.

أسئلة شائعة

هل يخفي CGNAT هويتي؟

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

هل يبطئ CGNAT الاتصال؟

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

لماذا أرى اختبارات التحقق من أنني إنسان أكثر على الجوال؟

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

هل يلغي IPv6 الحاجة إلى CGNAT؟

لحركة IPv6 نعم، فالعناوين تكفي كل جهاز. لكن ما دامت مواقع كثيرة تعمل بـIPv4 وحده، يبقى المشغّل محتاجاً إلى ترجمة حركة IPv4.

قارن عنوانك العام بعنوان موجّهك لتعرف إن كنت خلف ترجمة عناوين لدى المزود.