IPsec کا اضافی بوجھ: موڈ، NAT-T اور الگورتھم سب اسے بدلتے ہیں
ایک شائع شدہ اضافی بوجھ کی تعداد ایک راستے پر ایک انکیپسولیشن بیان کرتی ہے۔ وہ ہیڈر جمع کریں جن پر آپ کا ٹنل واقعی اتفاق کرتا ہے، پھر راستہ ماپیں۔
کسی گائیڈ میں کہیں ایک عدد ہوتا ہے، عام طور پر ساٹھ سے اسی بائٹ کے درمیان، جسے کسی نے انٹرفیس MTU حاصل کرنے کے لیے 1500 سے گھٹایا تھا۔ وہ عدد ایک مخصوص راستے پر ایک مخصوص انکیپسولیشن بیان کرتا ہے۔ موڈ، بیرونی پتہ خاندان، سائفر یا NAT کی موجودگی بدلیں، اور حساب اب آپ کے ٹنل پر لاگو نہیں ہوتا۔
یہ عدد کسی دوسرے ٹنل سے آیا تھا
اضافی بوجھ تجریدی معنوں میں IPsec کی خصوصیت نہیں ہے۔ یہ اس پیکٹ کی خصوصیت ہے جو واقعی بنتا ہے: طے شدہ موڈ، بیرونی ہیڈر، حفاظتی ہیڈر، بھرائی، انٹیگریٹی فیلڈ اور ممکنہ طور پر ایک اضافی UDP لفافہ۔
IPv4 کے ساتھ اور NAT کے بغیر ٹرانسپورٹ موڈ کے لیے بتایا گیا عدد NAT عبور کے تحت IPv6 والے ٹنل موڈ سے چھوٹا پیکٹ بیان کرتا ہے۔ دونوں اپنے اپنے کیس کے لیے درست ہیں۔ ان میں سے کسی ایک کو کسی دوسری تعیناتی میں نقل کرنا ہی وہ راستہ ہے جس سے لوگ ایسے MTU تک پہنچتے ہیں جو بڑی منتقلیاں توڑ دیتا ہے۔ ناکامی خاموش ہے، کیونکہ چھوٹی درخواستیں چلتی رہتی ہیں۔
جو پرتیں واقعی موجود ہیں انہیں جمع کریں
بیرونی IP ہیڈر سے شروع کریں اور اندر کی طرف جائیں۔ ٹنل موڈ میں اصل پیکٹ اندر ہوتا ہے، اس لیے بیرونی ہیڈر تبدیلی نہیں بلکہ اضافہ ہے۔ RFC 4303 ESP ہیڈر، بھرائی اور اس کے بعد آنے والے انٹیگریٹی ڈیٹا کی وضاحت کرتا ہے۔
| Layer | What it adds | When it applies |
|---|---|---|
| Outer IP header | 20 bytes for IPv4, 40 for IPv6 | Always, and 40 rather than 20 if the outer path is v6 |
| ESP header | 8 bytes of SPI and sequence number | Always |
| Block cipher IV | 8 to 16 bytes depending on the transform | When the negotiated cipher uses one |
| Padding and trailer | Padding to the block size, plus two trailer bytes | Always, and the amount varies with payload length |
| Integrity data | 12 to 16 bytes for common authenticated ciphers | When integrity protection is negotiated |
| UDP encapsulation | 8 bytes | NAT traversal on port 4500, which is common for clients behind NAT |
ان قطاروں میں سے کوئی بھی تعیناتیوں کے درمیان مستقل نہیں، اور بھرائی والی قطار ایک ہی تعیناتی کے اندر بھی مستقل نہیں۔ ایک شائع شدہ اضافی بوجھ کا عدد مایوس کیوں کرتا ہے، اس کی پوری وجہ یہی ہے۔
دو سائٹیں ایک ہی ٹنل کے بارے میں متفق نہیں ہو سکتیں
محفوظ پیکٹ کو اب بھی بیرونی راستہ طے کرنا ہوتا ہے، اور بیرونی راستہ ہر جگہ یکساں نہیں۔ PPPoE رسائی لنک صاف Ethernet حصے سے کم اٹھاتا ہے۔ موبائل نیٹ ورک مزید سکڑ سکتا ہے، اور اپنی ٹریفک ٹنل کرنے والا فراہم کنندہ ایک اور انکیپسولیشن شامل کرتا ہے جس کا کسی نے ذکر نہیں کیا۔ جو ٹنل ایک لنک پر چلتا ہے اور دوسرے پر ناکام ہوتا ہے، وہ دوسرے لنک کی وضاحت کر رہا ہے، پروٹوکول کی نہیں۔
دونوں سمتیں بھی مختلف ہو سکتی ہیں۔ غیر متناسب راستہ آپ کو چلتا اپ لوڈ اور رکا ہوا ڈاؤن لوڈ دے سکتا ہے، جو رسائی کی بجائے پیکٹ کے سائز دیکھنے تک ایپلیکیشن کا مسئلہ لگتا ہے۔ چھوٹا ping کامیاب ہونا پورے سائز کے جواب کے بارے میں بہت کم ثابت کرتا ہے۔
گھٹانے کی بجائے ماپیں
راستے سے گزرنے والا سب سے بڑا ڈیٹاگرام تلاش کریں۔ پھر اس کا موازنہ انٹرفیس کے بتائے گئے قدر سے کریں:
ip link show eth0 | grep -o 'mtu [0-9]*' ip xfrm state list ping -M do -s 1400 198.51.100.7 ping -M do -s 1372 198.51.100.7 tcpdump -ni any -c 20 'esp or udp port 4500'
ping کا سائز کم کرتے جائیں تاکہ جواب آنا شروع ہوں، اور سب سے بڑی چلنے والی قدر کو اس راستے کا بجٹ سمجھیں۔ xfrm کی آؤٹ پٹ بتاتی ہے کہ کون سا موڈ اور کون سے الگورتھم طے ہوئے، اور یہی کسی بھی ایماندار حساب کا ان پٹ ہے۔ کیپچر تصدیق کرتا ہے کہ تار پر ESP ہے یا UDP میں لپٹا ESP، اور اس سے NAT کا سوال اندازے کے بغیر حل ہو جاتا ہے۔
کنٹرول پلیٹ کے لیے بھی ایک قدر مخصوص رکھیں۔ IKE ہینڈ شیک پیکٹ کی ساخت ڈیٹا پیکٹ سے مختلف ہوتی ہے، اس لیے ہینڈ شیک کیپچر سے حاصل کردہ سائز ڈیٹا پلیٹ کا MTU نہیں ہے۔
عدد کو اس کی جگہ رکھیں
ٹنل کے ذریعے TCP کے لیے، MSS کی حد عام طور پر سب سے کم مداخلت والا کنٹرول ہے، کیونکہ یہ ٹنل کو خود بدلے بغیر سروں کے بھیجے جانے والے حجم کو کم کرتا ہے۔ راستہ پر مبنی ٹنل کے لیے، ٹنل انٹرفیس کا MTU جان بوجھ کر مقرر کریں اور کیوں، یہ درج کریں۔ دونوں ایک ساتھ کر کے پھر ماپنے سے آپ کو یہ معلوم نہیں ہوتا کہ کس نے مدد کی۔
ٹکٹ میں طے شدہ موڈ، بیرونی خاندان، NAT کی حالت اور دہرایا جانے والا علامت ساتھ رکھیں۔ چار حقائق کا درج شدہ مجموعہ یاد رکھے گئے مستقل سے بہتر ہے، اور اگلی کلائنٹ اپ گریڈ تک قائم رہنے والا یہی واحد نسخہ ہے۔