بررسی تدابیر امنیتی در IPV6
(بخش اول)
چنانكه اغلب ما اطلاع داريم، در حال حاضر از نگارش چهارم پروتكل IP براي آدرسدهي در اينترنت استفاده ميشود. همچنين ميدانيم كه به دليل عدم توانايي اين نگارش از پروتكل IP در تأمين آدرسهاي موردنياز، نگارش ششم آن نيز معرفي شده است. پروتكل IPv4 به همراه ابزارهايي مانند NAT/PAT، پراكسيها، گيتويها و... هنوزهم در صحنه حضور دارد، اما پيچيدگي شبكهها هرروز افزايش مييابد و اين واقعيت بهطور معمول به افزايش دشواري فرآيند اشكالزدايي منجر ميشود. پروتكل IPv6 مشكل فضاي آدرسها را برطرف ميكند.
چنانكه اغلب ما اطلاع داريم، در حال حاضر از نگارش چهارم پروتكل IP براي آدرسدهي در اينترنت استفاده ميشود. همچنين ميدانيم كه به دليل عدم توانايي اين نگارش از پروتكل IP در تأمين آدرسهاي موردنياز، نگارش ششم آن نيز معرفي شده است. پروتكل IPv4 به همراه ابزارهايي مانند NAT/PAT، پراكسيها، گيتويها و... هنوزهم در صحنه حضور دارد، اما پيچيدگي شبكهها هرروز افزايش مييابد و اين واقعيت بهطور معمول به افزايش دشواري فرآيند اشكالزدايي منجر ميشود. پروتكل IPv6 مشكل فضاي آدرسها را برطرف ميكند، گيتويها درخواستهاي كمتري را دريافت ميكنند و پيچيدگيهاي امنيتي بازنشاني اتصالات end-to-end كاهش مييابد. هدف اين مقاله كمك به خواننده براي درك بهتر پروتكل IPv6 و ترافيك شبكه در هنگام كار با ميزبانهاي اين پروتكل است. همچنين مطالب اين مقاله هنگام تحليل رفتاربدافزارها نيز كاربرد دارد (در قسمت «پشتيباني سيستمعاملها» علاوهبر بررسي نحوه پشتيباني سيستمعاملهاي مختلف از IPv6 بهطورخاص به اين موضوع پرداخته شده است). اغلب پلتفرمها و سيستمعاملها از IPv6 پشتيباني ميكنند و در صورت فعال نبودن اين قابليت با اجراي يك دستور ساده ميتوان آن را فعال كرد.
معرفي
تاكنون بستههاي ترميمي IPv6 براي بدافزارهاي متعددي ارائهشدهاند. روباتهاي IRC مانند Eggdrop (محبوبترين روبات اپنسورس IRC در جهان) بهگونهاي تطبيقيافتهاند كه سايتهاي IRC مبتنيبر IPv6 را بهعنوان سايتهاي كنترلي مورد استفاده قرار دهند. به اين ترتيب، يك بدافزار به منظور برقراري يك تونل ارتباطي براي عبور از ساختارهاي امنيتي مختص به IPv4 ميتواند IPv6 را روي IPv4 فعال كند. در سپتامبر سال 2005 يك جاسوسافزار موسوم به Rbot.AXS شناسايي شد. اين بدافزار از IRC مبتني برIPv6 (سرنامIPv6 Internet Relay Chat) به عنوان درپشتي استفاده ميكرد. چنين بدافزاري ميتواند خود را نصب كرده و پس از فعالسازي IPv6 روي ميزبان يك در پشتي باز كند و از طريق يك تونل IPv6 با يك سرور IPv6 IRC ارتباط برقرار كند. به عنوان يك مثال ديگر ميتوان به حمله IIS ISAPI Overflow اشاره كرد كه توسط كرم Code Red به كار گرفته شد. در اين مورد حمله مبتنيبر IPv4 در ترافيك شبكه IPv6 جاسازي شده بود. با توجه به اين كه مؤسسه IANA تاريخ اتمام آدرسهاي آزاد IPv4 را چهارم مي سال 2011 پيشبيني كرده است (http://inetcore.com/project/ipv4ec/index_en.html (http://inetcore.com/project/ipv4ec/index_en.html)). اين پرسش مطرح ميشود كه آيا بايد درباره IPv6 هوشيار باشيم؟ البته پاسخ مثبت است، اما از ديدگاه امنيتي كدام جنبه فناوري IPv6 از اهميت بيشتري برخوردار است؟ اگر سيستمهاي شما IPv6 را اجرا ميكنند، به دليل اجراي آن در شبكه بايد به عنوان بخشي از تدابير امنيتي از نقاطضعف مختص اين پروتكل آگاه باشيد؛ اگر شبكه شما از IPv6 استفاده نميكند، بهتر است پروتكل را غيرفعال كنيد، زيرا در غير اينصورت زمينه اجراي حملههاي امنيتي را براي مهاجمان فراهم كردهايد. با جستوجوي عبارت زير در گوگل اطلاعات مفيدي را درباره نقاط ضعف شناسايي شده IPv6 به دست ميآوريد:site:securityfocus.com inurl:bid ipv6
IPv4 در برابر IPv6
كاملاً به جا است كه ابتدا درباره هِدِرهاي IP صحبت كنيم. اگر مايل هستيد ترافيك IPv6 را شناسايي و رفتار آن را تحليل كنيد، به ياد داشته باشيد كه هِدِر IPv4 (بسته به تنظيمات IP) بين بيست تا شصت بايت طول دارد، در حالي كه هِدِر IPv6 داراي طول ثابت چهل بايت است. تمام گزينهها به هِدِرهاي ضميمه منتقل شدهاند؛ در واقع بايت شماره 9 از هِدِر IPv4 كه با نام IP Protocol شناخته ميشود، در IPv6 با عنوان Next Header ارائه شده است. هدر IPv6 حاوي فهرست انطباقي checksum نيست. پروتكل IPv6 داراي سه نوع آدرس unicast، anycast و multicast است. به همين دليل، آدرسهاي مربوط به انتشار آدرسها حذف شدهاند. يك آدرس IPv6 متشكل از 128 بيت است، در حالي كه آدرسهاي IPv4 از 32 بيت تشكيل شدهاند. آدرسهاي IPv6 در هشت گروه شانزده بيتي مرتب شدهاند كه توسط كاراكتر " : " از يكديگر مجزا ميشوند و هرگروه شانزده بيتي توسط چهار رقم در مبناي شانزده نمايش داده ميشود. با وجود اين، امكان تلخيص آدرس با روشهاي مختلف فراهم شده است. به عنوان مثال، گروههاي پيدرپي مقادير صفر را ميتوان با يك جفت " :" نشان داد، اما تنها يك بار امكان انجام اين كار وجود دارد. بنابراين، يك آدرس مجاز IPv6 به صورت زير است:
mascalzone@mymac $ ifconfig en0 | grep inet
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4
inet 10.10.225.198 netmask 0xfffffc00 broadcast 10.10.227.255
توجه كنيد كه آدرس كامل 128 بيتي بهصورت زير است:
fe80: 0000:0000:0000:021b:63ff:fe96:7353
نخستين بخش آدرس IPv6 كه به صورت (شانزده بيت ماسك شبكه) شانزده بيت، دو بايت، شانزده بيت نمايش داده ميشود، به طور معمول طبقه و دامنه آدرس را مشخص ميكند:
عبارت fe80::/16 پيشوند پيوندهاي محلي بوده و بيانگر اين است كه آدرس تنها در حيطه محلي يك پيوند مشخص اعتبار دارد.
از from 2000::/16 تا 3fff::/16 به آدرسهاي جهاني قابل مسيريابي تخصيص يافته است.
آدرس 2001::/16 به نقل و انتقال اينترنتي IPv6 تخصيص يافته است.
آدرس 3ffe::/16 درحال حاضر به بستر آزمايشي 6Bone اختصاص يافته است.
آدرس 2002::/16 براي تونلهاي خودكارSIT 6 به 4 به كار گرفته شده است.
آدرسهاي موجود در بازه 2001:0DB8::/32 در كتابهاي فني، مقالهها و محتواي آموزشي مورد استفاده قرار ميگيرد و به منظور اجتناب از سردرگم شدن كاربران و بروز اشتباه در آدرسدهي، هرگز از آدرسهاي اين محدوده در اينترنت عمومي استفاده نميشود.
علاوهبر موارد مذكور مجموعهاي از آدرسهاي ويژه IPv6 به شرح زير وجود دارند:
- آدرس بازگشتي IPv6 (كه در IPv4 به صورت 127.0.0.1 بود) بهصورت ::1. نمايش داده ميشود.
- كاراكترهاي :: به معناي عدم تخصيص آدرس بوده و از آنها ميتوان براي تعيين هر آدرسي استفاده كرد.
- آدرسهاي مربوط به تونل پويا و خودكار IPv6 روي IPv4 كه بهصورت آدرسهاي سازگار با IPv4 طراحي شدهاند و امكان ارسال اطلاعات را با استفاده از IPv6 روي شبكههاي IPv4 بهگونهاي شفاف فراهم ميكنند. به عنوان مثال اين آدرسها بهصورت ::192.168.1.1 نمايش داده ميشوند (دنباله چهار بايت آخر يك آدرس IPv6 را مانند آدرسهاي IPv4 ميتوان بهصورت اعشاري و در قالب كلي x:x:x:x:x:x:y.y.y.y نوشت كه در آن كاراكترهاي x نشاندهنده 6 گروه بالارتبه از ارقام مبناي 16 و كاراكترهاي y نشاندهنده ارقام اعشاري مربوط به چهار گروه پايينرتبه هشتتايي از آدرسIPv4 است).
-آدرسهاي مورداستفاده براي نمايش خودكار آدرسهاي IPv4 روي IPv6 كه امكان فعاليت ميزبانهاي اختصاصي IPv4 را روي شبكههاي IPv6 فراهم ميكنند. اين آدرسها بهصورت آدرسهاي نگاشت شده IPv4 طراحي شدهاند و بهصورت ::FFFF: نمايش داده ميشوند.
- پيشوندهاي خاص IPv6 كه در جدول 1 فهرست آنها را مشاهده ميكنيد.
انتظار ميرود خواننده با نحوه ايجاد يك آدرس IPv4 (بهصورت ايستا يا با استفاده از يك سرور DHCP) آشنا باشد. در IPv6 روشهاي متعددي براي ايجاد آدرس IP وجود دارد. به مانند IPv4 روش ايستاي توليد آدرسها هنوزهم وجود دارد و با عنوان Manual شناخته ميشود. در اين شيوه مدير شبكه آدرس طولاني IPv6 را بهصورت دستي وارد ميكند؛ در واقع ديگر نميتوان بهسادگي آدرسهاي IP را بهخاطر سپرد و به همين دليل ويژگي جديد Auto Configuration معرفيشد. ساير روشهاي ايجاد يك آدرس IP نيز شامل Autonomous ،Semi Autonomous ،Stateless Server و Stateful Server ميشوند. شيوه Autonomous امكان ايجاد يك آدرس IP را بدون نياز به تعامل با ساير سيستمها فراهم ميكند. در اين شيوه آدرس IP بهصورت خودبهخودي تخصيص مييابد (پيشوند محلي پيوند fe8:: مانند آدرس پيكربندي خودكار در IPv4 است كه به صورت 169.254.0.0 بود). در ادامه پيوند بين آدرس IPv6 كه بهصورت خودبهخودي تخصيصيافته و آدرس MAC مربوط به كارت شبكه را مورد بررسي قرار ميدهيم.
شيوه Autonomous (بهدليل احتمال تداخل آدرسها) امكان فعاليت سيستم را خارج از شبكه محلي فراهم نميكند. بنابراين، براي اتصال به اينترنت و مسيريابي مناسب، شيوه Semi Autonomous معرفي شد؛ در اين شيوه سيستم آدرسها را با تركيب اطلاعات خارجي مانند اطلاعات دريافتي از روتر (پيشوند 2000:: مربوط به شناسايي روتر) ايجاد ميكند. چنانكه گفته شد، دو شيوه ديگر آدرسدهي نيز با عنوان Stateless Server و Stateful Server (با پيشوند 2000:: شناخته ميشوند. در اين شيوهها سرور DHCP آدرس IP را تأمين ميكند؛ در شيوه Stateful وضعيت آدرس نيز تثبيت ميشود، اما در شيوه Statetless اين آدرسها حفظ نميشوند.
15.png
پيشوندهاي اختصاصي IPv6
علاوهبر آدرس محلي پيوند، نوع ديگري از آدرس موسوم به آدرس محلي سايت وجود دارد. ميزبانهاي IPv6 هنگام اتصال به يك شبكه مسيريابي شده IPv6 با استفاده از پيغام شناسايي روتر ICMPv6 كه به آدرس multicast تمام روترها (جدول 2) ارسال ميشود ميتوانند بهطور خودكار پيكربندي شوند. به اين ترتيب، اگر روتري با پيكربندي IPv6 موجود باشد، با ارسال يك بسته اطلاعاتي حاوي پارامترهاي پيكربندي لايه شبكه، به درخواست مذكور پاسخ ميگويد و در نتيجه يك آدرس محلي سايت ايجاد ميشود. يك ميزبان ميتواند از يك سرور DHCPv6 براي تحصيل يك آدرس محلي سايت بهره بگيرد. همچنين ميتوان آن را به ترتيب مذكور در بالا بهصورت دستي پيكربندي كرد.
بهطور خلاصه، قابليتهاي اوليه سطح 2 پروتكل IPv6 شامل موارد زير است:
پروتكل ICMPv6
پروتكل Neighbor Discovery
پروتكل ICMPv6 امكان استفاده ميزبانها و روترها را از IPv6 براي گزارش خطاها و ارسال پيغامهاي وضعيت فراهم ميكند. مكانيزم MLD (سرنام Multicast Listener Discovery) براي شناسايي گيرندگان multicast روي پيوند مستقيم كاربرد دارد. مكانيزم MLD مجموعهاي از پيغامهاي سهتايي ICMPv6 را مورد استفاده قرار ميدهد و جايگزين پروتكلIGMP (سرنام Internet Group Management Protocol) در IPv4 شده است. پروتكل Neighbor Discovery نيز بهمنظور مديريت ارتباطات گرهبهگره روي يك پيوند بهكار گرفته ميشود. اين پروتكل مجموعهاي از پيغامهاي پنجتايي ICMPv6 را مورد استفاده قرارميدهند و در اصل جايگزين Address Resolution Protocol در IPv4 شده است.
قالب EUI-64
بهمنظور توليد يك آدرس منحصر بهفرد IPv6 پيشوند fe80:: در آدرسهاي محلي پيوند با يك آدرس MAC با قالب EUI-64 ادامه مييابد. اين الگوريتم از آدرس MAC كارت شبكه بهمنظور توليد چنين آدرسي بهره ميگيرد. بهعنوان نمونه به آدرس IPv6 زير توجه كنيد:13.png
14.png
برخي از آدرسهاي مورد استفاده IPv6
در ادامه نحوه عملكرد الگوريتم را تشريح ميكنيم:
ابتدا آدرس MAC به دو قسمت 00:1b:63 و 96:73:53 تقسيم ميشود، سپس عبارت ff:fe در بين اين دوقسمت قرار ميگيرد:
00:1b:63:FF:FE:96:73:53
پس از آن بيت شماره 7 در نيمه دوم آدرس بهصورت زير معكوس ميشود:00:1b:63:FF:FE:96:73:53
(00 = 0000 0000 -> 0000 0010 = 02)
در نتيجه آدرس 02:1b:63:FF:FE:96:73:53 بهدست ميآيد. اكنون ارتباط آدرس IPv6 و MAC كاملاً مشهود است:
fe80::21b:63ff:fe96:7353
در آدرس فوق عبارت inet6 به IPv6 مربوط بوده و عبارت %en0 به دليل پيادهسازي KAME براي تخصيص آدرس IPv6 روي رابط en0 مربوط به يك سيستمعامل OS X مكينتاش بهوجود آمده است. مؤسسه IETF به دليل ملاحظات حريم خصوصي، اعلام كرده ميتوان يك آدرس را با استفاده از EUI تصادفي بهگونهاي انتخاب كرد كه هرگز با يك EUI با پيكربندي خودكار تداخل نكند. بنابراين، مديران شبكه براي اجتناب از ردگيري و Mapping يا نگاشت EUI ميتوانند از بهكارگيري EUI-64 با پيكربندي خودكار اجتناب كنند.
تونلها
بهمنظور كاهش پيچيدگي فرآيند انتقال به شبكههاي IPv6، از قابليتهاي تعاملي بين IPv4 و IPv6 استفاده ميشود. ميزبانهاي IPv4 ميتوانند از روش پيادهسازي دوگانه IP استفاده كنند. پروتكل IPv6 از آدرسهاي سازگاربا IPv4 پشتيبانيميكند. اين كار بهاسطه بهرهگيري از آدرسهاي اختصاصي IPv6 كه آدرسهاي IPv4 در آنها تعبيه شدهاند، انجام ميپذيرد. تونلسازي كه از اين پس مركز توجه تحليلگران خواهد بود، نقش مهمي را در انتشار بدافزارها خواهد داشت.
مكانيزمهاي تعاملي بين شبكهاي عبارتند از:
مكانيزم Encapsulation (tunneling)
مكانيزمهاي Simple Internet Transition (SIT) (RFC1933)
مكانيزم 6over4 (RFC2529)
مكانيزم 6to4 (RFC 3056)
مكانيزم Teredo (UDP port 3544).
مكانيزم Teredo امكان اتصال IPv6 بين گرههاي IPv6 و IPv4 را كه توسط يك يا چند NAT از يكديگر جداشدهاند، فراهم ميكند.
(به عنوان مثال، در سيستمهاي مايكروسافت، مكانيزم Teredo براي ويستا، Xp با Service Pack 2 و بالاتر و ويندوز سرور 2008)
مكانيزم Dual-Stack Transition Strategy
پروتكل Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) (RFC 4214) گرههاي Dual-Stack از پروتكل ISATAP براي شناسايي خودكار روترهاي IPv6 و بستههاي اطلاعاتي مربوط به تونلهاي IPv6 روي يك زيرساخت IPv4 بهرهميبرند. پروتكل ISATAP يك مكانيزم ساده براي نصب خودكار IPV6 در شبكههاي سازماني، سلولي و ارائهكنندگان خدمات اينترنت مبتني بر IPv4 است.
پيادهسازي دوگانه IP روي ميزبانها تكنيكي براي پشتيباني كامل از هردو پروتكل IPv4 و IPv6 است. پيادهسازي IPv6 روي IPv4 شامل تونلهاي نقطهبهنقطه است كه دراثر كپسولهشدن بستههاي اطلاعاتي IPv6 در هدرهاي IPv4 ساختهميشوند و از آنها براي انتقال اطلاعات در شبكه IPv4 استفاده ميشود. آدرس نقطهپاياني تونل IPv4 توسط اطلاعات پيكربندي موجود در گره كپسولهكننده اطلاعات شناسايي ميشود. تونلها ممكن است يكسويه يا دو سويه (پيوندهاي مجازي نقطه بهنقطه) باشند؛ ويژگي تونلسازي خودكار در پيادهسازي پروتكل IPv6 روي IPv4 مكانيزمي براي استفاده از آدرسهاي سازگاربا IPv4 بهمنظور تونلسازي خودكار بستههاي اطلاعاتي IPv6 روي شبكههاي IPv4 است.
آدرس نقطه انتهايي تونل IPv4 از طريق آدرس IPv4 تعبيه شده در آدرس مقصد بسته اطلاعاتي IPv6 كه با IPv4 سازگار است، شناسايي ميشود. در پايان نيز تونلسازي IPv6 روي IPv4 قرار دارد كه در آن آدرس نقطهپاياني تونل IPv4 با استفاده از پروتكل Neighbor Discovery شناسايي ميشود. در اين شيوه برخلاف تونلسازي پيكربندي شده، نيازي به پيكربندي آدرسها نيست و برخلاف تونلسازي خودكار، از آدرسهاي سازگار با IPv4 استفاده نميشود (در چنين سناريويي شبكه IPv4 از انتشار چندگانه (multicast) پشتيباني ميكند).
جعبه متن
منبع: شبکه
بررسی تدابیر امنیتی در IPV6
(بخش دوم)
چنانكه اغلب ما اطلاع داريم، در حال حاضر از نگارش چهارم پروتكل IP براي آدرسدهي در اينترنت استفاده ميشود. همچنين ميدانيم كه به دليل عدم توانايي اين نگارش از پروتكل IP در تأمين آدرسهاي موردنياز، نگارش ششم آن نيز معرفي شده است. پروتكل IPv4 به همراه ابزارهايي مانند NAT/PAT، پراكسيها، گيتويها و... هنوزهم در صحنه حضور دارد، اما پيچيدگي شبكهها هرروز افزايش مييابد و اين واقعيت بهطور معمول به افزايش دشواري فرآيند اشكالزدايي منجر ميشود. پروتكل IPv6 مشكل فضاي آدرسها را برطرف ميكند، گيتويها درخواستهاي كمتري را دريافت ميكنند و پيچيدگيهاي امنيتي بازنشاني اتصالات end-to-end كاهش مييابد. هدف اين مقاله كمك به خواننده براي درك بهتر پروتكل IPv6 و ترافيك شبكه در هنگام كار با ميزبانهاي اين پروتكل است. همچنين مطالب اين مقاله هنگام تحليل رفتاربدافزارها نيز كاربرد دارد (در قسمت «پشتيباني سيستمعاملها» علاوهبر بررسي نحوه پشتيباني سيستمعاملهاي مختلف از IPv6 بهطورخاص به اين موضوع پرداخته شده است). اغلب پلتفرمها و سيستمعاملها از IPv6 پشتيباني ميكنند و در صورت فعال نبودن اين قابليت با اجراي يك دستور ساده ميتوان آن را فعال كرد.
پشتيباني سيستمعاملها از IPv6
در ادامه نحوه پيادهسازي IPv6 را با استفاده از متداولترين سيستمعاملها بررسي ميكنيم. پروتكل IPv6 در اغلب پلتفرمها و سيستمعاملها پشتيبانيشدهاست و اغلب تنها لازم است يك دستور ساده به اجرا درآيد تا اين پروتكل فعال شود. در ادامه متداولترين ابزارهاي پيكربندي و اشكالزدايي IPv6 را بررسي ميكنيم (در صورت نياز به مشاوره به آدرس www.ipv6.org/impl/index.html (http://www.ipv6.org/impl/index.html) مراجعه كنيد).
لينوكس
در اغلب توزيعهاي لينوكس به طور پيشفرض از IPv6 پشتيباني شده است، با وجود اين، اگر IPv6 بهطور پيشفرض روي رابط eth فعال نشده، كافي است دستور زير را (به عنوانمثال در توزيع BackTrack Linux) اجرا كنيد:
root@bt: # modprobe ipv6
root@bt: # cat /proc/net/if_net6
00000000000000000000000000000001 01 80 10 80 lo
fe80000000000000020c29fffea089cf 02 40 20 80 eth0
براي تأييد شماره پورتهاي باز از دستور netstat -a -A inet6 استفاده كنيد. براي فهرستكردن تمام مسيرهاي IPv6 از دستور netstat -rnA inet6 يا ip -6 route استفادهكنيد. براي حصول اطمينان از عملكرد ميزبان به صورت يك روتر IPv6 فايل مختص شبكه يا رابط را با استفاده از دستور ifcfg-eth0 بررسي كنيد تا ببينيد هريك از اين فايلها حاوي عبارت IPV6FORWARDING=yes/no هستند ياخير؛ همچنين با استفاده از دستور sysctl فايل sysctl.conf را بررسي كنيد. براي اين كار كافي است دستور sysctl | grep ipv6 را اجرا كرده و خروجي را بررسي كنيد. وجود ديمن radvd به اين معني است كه ميزبان ميتواند پيغامهاي RA منطبق بر RFC 2461 را براي ساير ميزبانهاي موجود روي رابط LAN ارسال كند (فايل radvd.conf). با استفاده از دستور ip neighbor show ميتوان ميزان حافظه Cache مجاور را بررسي كرد. براي پاكسازي تمام اقلام ورودي كافي است دستور neighbor flush را اجرا كنيد. دستور iptunnel show تمام تونلهاي ميزبان را نشان ميدهد. اگر تونل از نوع IPv6 روي IPv4 (يا 6in4) باشد، به طور معمول، با اسامي sit0، sit1 و... نامگذاري ميشود و معمولاً روترهايي با آدرس 2002::/16 آن را ارسال ميكنند. در صورتي كه تونل از نوع كپسولسازي متداول اطلاعات باشد، معمولاً به صورت gre0 نامگذاري ميشود. اگر رابطهاي تونل از نوع IPv4 روي IPv4 باشند، با اسامي tun0 يا ipipo فهرست ميشوند. براي مشاهده رابطهاي روي سيستم از دستور ip link show و براي مشاهده آدرسهاي IP روي هر رابط از دستور ip addr show استفاده كنيد. براي بررسي وجود تونلهايي كه پس از راهاندازي دوباره سيستم ايجاد ميشوند بايد فايل پيكربندي شبكه را بازبيني كنيد. اگر دو عبارت زير در اين فايل وجود داشته باشد، تونلهاي 6to4 فعال شدهاند:
NETWORKING_IPV6="yes"
IPV6DEFAULTDEV="tun6to4"
براي اطلاع از فعال شدن اين نوع تونلها روي يك رابط خاص دستور ipcfg-eth0 را اجرا كنيد. دو عبارت زير نيز بيانگر فعال بودن تونلهاي 6to4 هستند:
IPV6INIT=yes
IPV6TO4INIT=yes
اگر لازم است يك تونل با پيكربندي دستي را از بين ببريد، از دستورات زير استفاده كنيد:
براي پاككردن تمام مسيرهاي مربوط به تونل دستور ip route delete default را از طريق next-hop-IPv6-addr اجرا كنيد.
براي پاككردن آدرس روي تونل از دستور زير استفاده كنيد:
ip address del IPv6-prefix dev tun0
براي پاككردن رابط تونل (tun0) از دستور ip tunnel delete name tun0 استفاده كنيد.
رابط ISATAP در صورت وجود بهصورت is0 نامگذاري شده است. اگر تونلي با اين نام در خروجي دستور ifconfig مشاهدهكرديد، با استفاده از دستور ip tunnel delete name is0 ميتوانيد آن را پاك كنيد. براي اطلاع از وجود ديوارآتش ip6tables و تشخيص نگارش آن روي سيستم از دستور ipv6tables –V استفاده كنيد. براي مشاهده محتواي جدول فيلترسازي كنوني دستور ipv6tables -L را اجرا كنيد. براي فعال و غيرفعال كردن فيلترسازي ip6tables كافي است سرويس ip6tables [stop | start] را اجرا كنيد.
سيستمعامل Mac OS X
در سيستمعامل Mac OS X لئوپارد (نگارش 10.5.x كلاينت و سرور) پروتكل IPv6 بهطور پيشفرض فعال شده است:
mascalzone@mymac $ ifconfig en0 | grep inet6
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4
بهمنظور پيكربندي IPv6 منوي System Preferences را باز كرده و روي گزينه Network كليك كنيد. سپس رابط شبكه را انتخاب و روي گزينه Advanced كليك كنيد. تنظيمات مقتضي را براي گزينه Configure IPv6 انتخاب كنيد. سيستمعامل Mac OS X براساس سيستمعامل BSD و با كرنل Mach ساخته شده و به همين دليل، مؤلفههاي شبكهسازي اين سيستمعامل ميراث لايه BSD است؛ بنابر اين ميتوان سرويسهاي TCP يا UDP را با استفاده از دستور netstat - a - f inet6 - p tcp يا netstat -a -f inet6 -p udp در يك ترمينال فهرست كرد. دستور netstat -s -f inet6 كه بيانگر وضعيت پروتكل است، اطلاعات بسياري را درباره ترافيك روي رابطها به همراه تعداد بستههاي اطلاعاتي IPv6 در اختيار كاربرميگذارد.
براي نمايش فهرست مسيرهاي IPv6 دستور netstat -nr -f inet6 را اجرا كنيد. وروديهاي فعلي حافظه cache مجاور (neighbor) را ميتوان با دستور ndp-a بررسي كرد و ndp-I ميتواند رابط پيشفرض مورد استفاده براي يافتن مجاورين (Neigbor discovery) را تعيين كند. همچنين دستور ndp- I eno ميتواند رابط eno را به عنوان پيشفرض يا defuult تنظيم كند. دستور ndp -c تمام وروديهاي فعلي را پاك كرد. (امكان بازسازي طبيعي آنها را فراهم ميكند.) سيستمعامل Mac OS X سه ابزار ip6 ، ip6config و ip6fw را نيز در اختيار كاربر ميگذارد. ابزار ip6 در واقع يك ابزار پيكربندي است كه براي فعال و غيرفعال كردن IPv6 روي رابطهاي فعال به صورت زير كاربرد دارد:
mascalzone@mymac $ ip6
Usage:
Start up IPv6 on ALL interfaces: -a
Shut down IPv6 on ALL interfaces: -x
Start up IPv6 on given interface: -u [interface]
Shut down IPv6 on given interface: -d [interface]
ابزار ip6config نيز براي تونلسازي IPv6 و 6to4 بهصورت زير كاربرد دارد:
mascalzone@mymac $ ip6config -h
Usage: /usr/sbin/ip6config
start-v6 all | stop-v6 all
start-v6 [interface] | stop-v6 [interface]
start-stf [interface] | stop-stf
start-rtadvd | stop-rtadvd
ابزار ip6fw در واقع يك ابزار كنترلي براي ديوار آتش IPv6 است (فهرست 1). دستور ifconfig stf0 فعال بودن يا نبودن يك تونل 6to4 را مشخص ميكند. هر آدرس 2002::/16 نيز سرنخي از فعال بودن تونل مذكور است. دستور ifconfig ist0 فعال بودن تونل ISATAP را مشخص ميكند و با دستور ifconfig ist0 deleteisataprtr ISATAP-address ميتوان تونل ISATAP را حذف كرد. ساير دستورات مربوط به تونلسازي عبارتند از:
ifconfig gif0 inet6 delete ipv6-prefix
ifconfig gif0 deletetunnel
ifconfig gif0 destroy
به فايلهاي 6to4.conf, rtadvd.conf واقع در پوشه /etc نيز نگاهي بياندازيد. دستور sysctl net.inet6 تمام تنظيمات مربوط به IPv6 مانند ارسال دوباره، ارسال، icmp و... را نمايش ميدهد. به عنوان مثال:
mascalzone@mymac $ sysctl net.inet6.ip6.forwarding
net.inet6.ip6.forwarding: 0
ويندوز XP
سيستمهاي مايكروسافت مجموعه وسيعي از تونلهاي ايستا و پويا را (شامل ISATAP، Teredo و 6to4 ) ايجاد ميكنند. در سيستمهاي ويندوز XP پروتكل IPv6 بهطور پيشفرض فعال نيست، اما بهسادگي ميتوان آن را فعال كرد. براي اين كار در سطر فرمان دستور زير را درج كنيد:
C:\>netsh interface ipv6 install
پس از نصب IPv6 با اجراي دستور ipconfig /all فعالبودن پروتكل را بررسيكنيد. به عنوان راهحل جايگزين ميتوانيد دستور زير را اجرا كنيد:
C:\>netsh interface ipv6 show address
ويندوز ويستا
در ويندوز ويستا امكان حذف IPv6 وجود ندارد و با اجراي يكي از اقدامات زير تنها ميتوان آن را غيرفعال كرد:
در پوشه Connections and Adapters با كليك راست روي تمام اتصالات و مبدلها مراجعه و به گزينه Properties علامت مربوط به مؤلفه Internet Protocol version 6 (TCP/IP) را از فهرست واقع در بخشThis connection uses the following items حذف كنيد. اين روش IPv6 را روي رابطها و اتصالات LAN غيرفعال ميكند، اما آن را روي رابطهاي تونل يا رابط loopback Ipv6 غيرفعال نميكند.
مدخل زير را در رجيستري ويندوز ايجاد كرده و به آن مقدار 0xFFFFFFFF را نسبت دهيد:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
اين شيوه IPv6 را در تمام رابطهاي LAN، اتصالات و رابطهاي تونل غيرفعال ميكند، اما رابط loopback IPv6 را غيرفعال نميكند. بهطور پيشفرض مقدار متغير DisabledComonents برابر عدد صفر است. متغير DisabledComonents يك bitmask است كه مقادير زير را كنترل كرده و كار خود را از اولين مقدار (Bit0) آغاز ميكند:
Bit 0- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي تونل IPv6 شامل ISATAP، 6to4 و Teredo غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.
Bit 1- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي مبتني بر 6to4 غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.
Bit 2- با تنظيم اين مقدار روي عدد 1، تمام رابطهاي مبتني بر ISATAP غير فعال ميشوند. مقدار پيشفرض آن 0 است
Bit 3- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي مبتني بر Tredo غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.
Bit 4- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي غير تونلي شامل رابطهاي LAN و رابطهاي مبتني بر PPP (سرنام Point-to-Point Protocol) غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.
Bit 5- با تنظيم اين مقدار روي عدد 1 جدول پيشوندهاي پيشفرض بهگونهاي تغيير ميكند كه هنگام تلاش براي برقراري اتصالات IPv4 نسبت به IPv6 مقدم باشد. مقدار پيشفرض اين متغير عدد صفر است.
بهمنظور تعيين مقدار متغير DisabledComponents براي مجموعه خاصي از بيتها يك عدد باينري متشكل از بيتها و مقادير مناسب آنها ايجاد شده و عدد حاصل به يك عدد در مبناي شانزده تبديل ميشود. به عنوان مثال، بهمنظور غيرفعالكردن رابطهاي 6to4 و Teredo در در عين حال حفظ تونلهاي IPv4 به IPv6 بايد عدد باينري 101010 را بسازيد. هنگامي كه اين عدد به مبناي شانزده تبديل شود، مقدار متغير DisabledComponents برابر 0x2A خواهد بود.