تانل محبوب ۶to4 چیست ؟
از سال ۱۳۹۴ تا به حال چیزی حدود ۳۰ درصد از شرکت ها و ادارات ایرانی ، ارتباط های خودشون رو که در بستر لایه ۳ بوده از IPv4 به IPv6 تبدیل کردن .
میتونستن شبکه ها رو بکوبن و از اول روی بیس V6 بسازن ولی خب به طرز وحشتناکی شبکه ها Down میشد و مشکلات دیگه ای بوجود میاورد .
خب پس چیکار کردن ؟ اومدن از یک قابلیت محبوب تحت عنوان ۶to4 tunnel استفاده کردن .
خب این ۶to4 چطور کار میکنه ؟! این تانل تقریبا مثل تانل IPIP عمل میکنه اما با این تفاوت که روی بستر Ipv4 برای ما Ipv6 رو انتقال میده .
اگرم شما میخواید شبکه هایی که ارتباط مابینشون از Ipv4 تشکیل شده رو تبدیل کنید به یک شبکه ای که با IPv6 کار میکنه ۶to4 Tunnel برای شما یک گزینه عالیه . فرقی هم نداره شبکه داخلی به داخلی یا داخلی به خارجی .
به ویژه برای اتصال دو یا چند شبکه IPv6 از طریق شبکه ای که پشتیبانی IPv6 نداره خیلی کاربرد داره . ۲ روش مختلف برای مکانیسم ۶to4 وجود دارد. اگر آدرس راه دور پیکربندی نشده باشد، اگر ۱۶ بیت اول ۲۰۰۲ باشد، روتر یک بسته IPv6 رو مستقیماً روی IPv4 کپسوله و ارسال می کنه و از ۳۲ بیت بعدی به عنوان مقصد استفاده می کنه (آدرس IPv4 به هگزا تبدیل شده تبدیل میشه ). و در روش دوم، بسته IPv6 مستقیماً به ریموت آدرس IPv4 ارسال میشه .
پیاده سازی ۶to4 tunnel :
عکس زیر نمونه ای از کپسوله سازی تانل ۶to4 هست . (در حال حاضر کار نمیکنه)
ما به سادگی میتونیم بسته های IPv6 رو بر روی شبکه IPv4 با استفاده از آدرس اختصاصی ۱۶/::۲۰۰۲ مسیر یابی کنیم . همه نود هایی که دارای تانل ۶to4 هستند باید دارای آدرس های IPv4 قابل دسترسی باشن . پس اگر این تانل رو برای عبور از اینترنت میخوایم باید نود های ما دارای آدرس های IPv4 عمومی (Public) باشن .
کانفیگ Router 1 :
یک تانل ۶to4 می سازیم .
interface 6to4/
add name=6to4-tunnel1
حالا یک آدرس IPv6 با ۱۶ بیت اول (۲۰۰۲) و به عنوان ۳۲ بعدی IPv4 را در قالب hex (مبنای ۱۶) اختصاص میدیم .
به عنوان مثال اگر آدرس IP روتر در اینجا ۱۰٫۰٫۱٫۱ باشه ، آدرس IPv6 ما میشه :
ipv6 address/
add address=2002:A00:101: :/128 advertise=no interface=6to4-tunnel1
یک روت مینویسیم و مسیری بهش میدیم که به محدوده تانل ۶to4 اختصاص داده شده رو توی Interface 6to4 tunnel اضاف میکنیم .
ipv6 route/
add dst-address=2002: :/16 gateway=6to4-tunnel1
کانفیگ Router 2 :
یک تانل ۶to4 می سازیم .
interface 6to4/
add name=6to4-tunnel1
حالا یک آدرس IPv6 بهش اختصاص میدیم که با اصول کانفیگ روتر ۱ برابر باشه . و خب برای این روتر ۱۰٫۰٫۲٫۱ رو تبدیل میکنیم به :
ipv6 address/
add address=2002:A00:201::/128 advertise=no interface=6to4-tunnel1
نوشتن روت ۶to4 برای این قسمت هم لازم هست .
ipv6 route/
add dst-address=2002: :/16 gateway=6to4-tunnel1
خب پس از کانفیگ ، در صورتی که IP Address های v6 ما به درستی تولید شده باشن میتونیم اونها رو پینگ کنیم .
در Router 1 :
ping 2002:A00:201:: z/
مثالی برای Hurricane Electric Tunnel Broker :
این مثال ، نحوه دریافت IPv6 توسط Router OS روی بستر IPv4 با استفاده از تانل ۶to4 به ما نشون میده .
برای اینک بتونیم تانل رو ایجاد کنیم باید یک آدرس Ipv4 Public داشته باشیم و پینگ رو از Ipv4 tunnel broker فعال کنیم .
نکته : هنگامی مکه یک تانل با استفاده از Hurricane Electric Tunnel Broker ایجاد می کنیم ، پیشوند مسیر یابی (Prefix) /64 و یک سری اطلاعات اضافی برای راه اندازی تانل داده میشه .
در این مثال فرض کنید که Ipv4 public ما ۱۹۴٫۱۰۵٫۵۶٫۱۷۰ هست .
Hurricane Electric دستورات آماده جهت استفاده Router OS در بخش (Example Configuration) به ما ارائه میده :
interface 6to4/
add
comment
=
"Hurricane Electric IPv6 Tunnel Broker"
disabled
=no
local-address
=194.105.56.170
mtu
=1280
name
=sit1
remote-address
=216.66.80.90
ipv6 route/
add
comment
=
""
disabled
=no
distance
=1
dst-address
=2000::/3
gateway
=2001:470:27:37e::1
scope
=30
target-scope
=10
ipv6 address/
add
address
=2001:470:27:37e::2/64
advertise
=no
disabled
=no
eui-64
=no
interface
=sit1
این دستورات خودشون تانل رو راه اندازی میکنن و Router میتونه به Host های IPv6 متصل بشه ، اما دستگاه های کاربر نهایی مانند Computer و Mobile همچنان اتصال Ipv6 ندارن .
برای اینکه بتونیم آدرس های v6 رو به مشتریان خودمون اراعه بدیم ، باید Prefix Ipv6 خودمون رو به Internal interface اضافه کنیم . (by default Bridge-local)
/ipv6 address add address=2001:470:28:37e:: interface=bridge-local advertise=yes
حالا نوبت فعال کردن DNS server advertising هست .
ipv6 nd set [ find default=yes ] advertise-dns=yes/
و در نهایت سرور های DNS IPv6 رو اضافه میکنیم که DNS Server های Public گوگل هستن. همچنین میتونم از سرور هایی که توسط Hurricane Electric ارائه شده ، استفاده کنیم .
ip dns set allow-remote-requests=yes servers=2001:4860:4860::8888,2001:4860:4860::8844/
در آخر هم اتصال IPv6 خودمون رو برقرار میکنیم و در اسینجا باید اتصال IPv6 داشته باشیم .
سایتی هست تحت عنوان http://ipv6-test.com که میتونیم ازش برای اتصال آزمایش استفاده کنیم .