کانفیگ کردن IPv6 بر روی سرور مجازی لینوکس و ویندوز!

کانفیگ کردن IPv6 بر روی سرور مجازی

آنچه در مقاله می‌خوانید

IPv6 جدیدترین نسخه پروتکل IP است که کل اینترنت برای اتصال به مکان‌های مختلف به آن متکی هستند. IP مخفف پروتکل اینترنت است که چند دهه به‌عنوان یک استاندارد در نظر گرفته می‌شود. اگرچه IPv4 هنوز در بسیاری از مناطق جهان مورد استفاده قرار می‌گیرد، فضای آدرس IPv4 به‌سرعت در حال اتمام است و ظرفیت آن برای استقرار انبوهی از دستگاه‌های متصل به اینترنت در چند سال آینده جوابگو نخواهد بود. IPv6 دقیقا برای حل این مشکل به میدان آمده است. علاوه‌بر بهبودهای کلی در پروتکل، بارزترین مزیت استفاده از آدرس‌های IPv6 این است که فضای آدرس بسیار بزرگ‌تری را ارائه می‌دهد. درحالی‌که در IPv4 امکان ایجاد 2 به توان 32 آدرس مختلف امکان‌پذیر است (که برخی از آن‌ها نیز برای اهدافی خاص رزرو شده‌اند)، فضای ساخت آدرس در IPv6 عدد به‌ مراتب بزرگ‌تر 2 به توان 128 آدرس است که به‌طور چشم‌گیری بیش‌تر است.

IPv6 فرصت‌های زیادی را فراهم و بسیاری از مشکلات قدیمی را حل می‌کند، اما اگر هنوز از IPv4 استفاده می‌کنید برای مهاجرت به استاندارد جدیدتر باید برخی از تنظیمات شبکه فعلی خود را تغییر بدهید. در این مقاله قصد داریم نحوه کانفیگ کردن IPv6 بر روی خرید vps یا VPS را آموزش بدهیم.

کانفیگ کردن IPv6 بر روی سرور مجازی لینوکس

برای پیکربندی IPv6 بر روی سرور مجازی لینوکس چندین روش وجود دارد:

ifup / ifdown : روشی جدید برای کانفیگ کردن اینترفیس‌ها بر روی سرورهای مبتنی‌بر توزیع Debian

iproute : استفاده از دستور ip

ifconfig / route : ابزارهای اصلی کانفیگ شبکه

پیشنهاد می‌کنیم که از روش ifup / ifdown استفاده کنید.

نحوه فعال‌سازی و غیرفعال‌سازی IPv6

برای فعال‌سازی IPv6 مراحل زیر را دنبال کنید:

  • با دسترسی روت لاگین کنید.
  • سه خط زیر را به فایل «/etc/sysctl.conf» اضافه کنید:
net.ipv6.conf.default.disable_ipv6 = 0

net.ipv6.conf.all.disable_ipv6 = 0
  • فایل را ذخیره و کامپیوتر را با استفاده از دستور زیر ری‌استارت کنید:
$ sudo reboot

برای غیرفعال‌سازی IPv6 مراحل زیر را دنبال کنید:

  • با دسترسی روت لاگین کنید.
  • سه خط زیر را به فایل «/etc/sysctl.conf» اضافه کنید:
net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1
  • فایل را ذخیره و کامپیوتر را با استفاده از دستور زیر ریستارت کنید:
$ sudo reboot

 

توزیع‌های مبتنی‌بر Red Hat

اگر از یک سیستم مبتی‌بر Red Hat استفاده می‌کنید، می‌توانید با دنبال کردن گام‌های زیر، IPv6 را غیرفعال کنید:

  • پنجره ترمینال را باز کنید.
  • به‌عنوان کاربر روت وارد شوید.
  • دستورات زیر را تایپ کنید:
sysctl -w net.ipv6.conf.all.disable_ipv6=1

sysctl -w net.ipv6.conf.default.disable_ipv6=1

sysctl -w net.ipv6.conf.tun0.disable_ipv6=1
  • برای فعال‌سازی مجدد IPv6 می‌توانید از دستورات زیر استفاده کنید:
sysctl -w net.ipv6.conf.all.disable_ipv6=0

sysctl -w net.ipv6.conf.default.disable_ipv6=0

sysctl -w net.ipv6.conf.tun0.disable_ipv6=0

sysctl -p

توزیع‌های مبتنی‌بر Debian

اگر از یک سرور مانند سرور مجازی ایران با توزیع دبیان استفاده می‌کنید، برای غیرفعال‌سازی IPv6 مراحل زیر را دنبال کنید:

  • پنجره ترمینال را باز کنید.
  • این دستور را تایپ کنید:
sudo nano /etc/sysctl.conf
  • دستورات زیر را به انتهای فایل اضافه کنید:
net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

net.ipv6.conf.tun0.disable_ipv6 = 1
  • فایل را ذخیره کنید و ببندید.
  • دستگاه را ریبوت کنید.
  • برای فعال‌سازی مجدد IPv6 کافیست دستوراتی که در مرحله قبلی به فایل sysctl.conf اضافه کردید را حذف و دستگاه را ریبوت کنید.

کانفیگ کردن IPv6 بر روی سرور مجازی ویندوز

اگر یک سرور مجازی امارات یا سایر لوکیشن‌ها را خریداری کرد‌ه‌اید و قصد دارید از آدرس‌های IPv6 استفاده کنید، در این بخش می‌توانید با پیکربندی IPv6 برای سیستم عامل ویندوز آشنا شوید.

فعال‌سازی و غیرفعال‌سازی IPv6

برای فعال‌سازی و غیرفعال‌سازی IPv6 در ویندوز مراحل زیر را دنبال کنید:

  • به بخش Settings ویندوز بروید.
  • بخش Network & Internet را انتخاب کنید.
  • در این پنجره از بخش Advanced network settings بر روی Change adapter options کلیک کنید.
  • در این پنجره، بر روی اتصال شبکه‌ای که قصد دارید IPv6 را برای آن فعال کنید دو بار کلیک کنید.

کانفیگ کردن IPv6 بر روی سرور مجازی

  • در پنجره‌ای که باز می‌شود، بر روی دکمه Properties کلیک کنید.
  • در نهایت، در پنجره Properties می‌توانید گزینه Internet Protocol version 6 را فعال یا غیرفعال کنید.
  • بر روی دکمه Ok کلیک کنید تا پنجره Properties بسته شود.
نکته: برای دسترسی سریع‌تر به آداپتورهای شبکه می‌توانید دکمه‌های Windows + R را بزنید، سپس دستور ncpa.cpl را تایپ کنید و اینتر را بزنید تا مستقیما به پنجره Network Connections بروید.

کانفیگ کردن اینترفیس

  • به بخش Settings ویندوز بروید.
  • بخش Network & Internet را انتخاب کنید.
  • در این پنجره از بخش Advanced network settings بر روی Change adapter options کلیک کنید.
  • در این پنجره، بر روی اتصال شبکه‌ای که قصد داریم IPv6 را برای آن فعال کنیم دو بار کلیک می‌کنیم.

کانفیگ کردن IPv6 بر روی سرور مجازی

  • در پنجره‌ای که باز می‌شود، بر روی دکمه Properties کلیک می‌کنیم.
  • با کلیک بر روی گزینه Internet Protocol version 6 دکمه Properties در قسمت پایینی فعال می‌شود.
  • بر روی دکمه Properties کلیک کنید تا به پنجره پیکربندی باز شود. در این پنجره باید گزینه «Use the following IPv6 address» را فعال کنید و سپس برای سه کادر زیر مقادیر مناسب را وارد کنید:
IPv6 address

Subnet prefix length

Default gateway

چطور از ابزارهای رایج برای آدرس‌های IPv6 استفاده کنیم؟

برخی از ساده‌ترین ابزارهای مورد استفاده برای تشخیص مشکلات شبکه با تمرکز بر روی IPv4 ایجاد شده‌اند. برای رسیدگی به این موضوع، زمانی که قرار است با ترافیک IPv6 سروکار داشته باشیم، می‌توانیم از ابزارهای مشابهی که برای استاندارد IPv6 در نظر گرفته شده‌اند استفاده کنیم.

اول از همه، برای مشاهده آدرس‌های IPv6 پیکربندی‌شده فعلی خود برای سروری که از آن استفاده می‌کنید، می‌توانید از ابزار «iproute2» برای نشان دادن آدرس‌های پیکربندی‌شده فعلی استفاده کنید:

ip -6 addr show


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 2400:6180:0:d0::41f/64 scope global 

       valid_lft forever preferred_lft forever

    inet6 fe80::601:15ff:fe43:b201/64 scope link 

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000

    inet6 fe80::601:15ff:fe43:b202/64 scope link 

       valid_lft forever preferred_lft forever

برای نمایش جدول روتینگ IPv6 می‌توانید به شکل زیر از دستور «netstat» استفاده کنید:

netstat -A inet6 -rn


Kernel IPv6 routing table

Destination                    Next Hop                   Flag Met Ref Use If

2400:6180:0:d0::/64            ::                         U    256 0     1 eth0

fe80::/64                      ::                         U    256 0     0 eth1

fe80::/64                      ::                         U    256 0     0 eth0

::/0                           2400:6180:0:d0::1          UG   1024 0     0 eth0

::/0                           ::                         !n   -1  1    90 lo

::1/128                        ::                         Un   0   1    20 lo

2400:6180:0:d0::41f/128        ::                         Un   0   1    86 lo

fe80::601:15ff:fe43:b201/128   ::                         Un   0   1    75 lo

fe80::601:15ff:fe43:b202/128   ::                         Un   0   1     0 lo

ff00::/8                       ::                         U    256 0     0 eth1

ff00::/8                       ::                         U    256 0     0 eth0

::/0                           ::                         !n   -1  1    90 lo

اگر ابزارهای iproute2 را ترجیح می‌دهید، به‌سادگی می‌توانید با تایپ کردن دستور زیر، به اطلاعات مشابه دسترسی پیدا کنید:

ip -6 route show


2400:6180:0:d0::/64 dev eth0  proto kernel  metric 256 

fe80::/64 dev eth1  proto kernel  metric 256 

fe80::/64 dev eth0  proto kernel  metric 256 

default via 2400:6180:0:d0::1 dev eth0  metric 1024

اکنون که می‌دانید چگونه برخی از اطلاعات IPv6 خود را به‌دست آورید، بیایید کمی در مورد نحوه استفاده از برخی ابزارهایی که با IPv6 سازگاری دارند یاد بگیریم.

دستور پرکاربرد «ping» درواقع مخصوص IPv4 است. نسخه IPv6 این فرمان که دقیقا به همان صورت است اما برای آدرس‌های IPv6 نیز کار می‌کند به‌طور نه چندان غیرمنتظره‌ای «ping6» نام‌گذاری شده است! این دستور اینترفیس لوپ بک لوکال را پینگ می‌کند:

ping6 -c 3 ::1


PING ::1(::1) 56 data bytes

64 bytes from ::1: icmp_seq=1 ttl=64 time=0.021 ms

64 bytes from ::1: icmp_seq=2 ttl=64 time=0.028 ms

64 bytes from ::1: icmp_seq=3 ttl=64 time=0.022 ms


--- ::1 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 1998ms

rtt min/avg/max/mdev = 0.021/0.023/0.028/0.006 ms

همان‌طور که می‌بینید، این دستور دقیقا طبق انتظار کار می‌کند و تنها تفاوت آن در نسخه پروتکلی است که برای آدرس‌دهی استفاده می‌شود.

ابزار دیگری که ممکن است زیاد از آن استفاده کنید tracerroute است که معادل آن برای IPv6 نیز در دسترس است:

traceroute6 google.com


traceroute to google.com (2404:6800:4003:803::1006) from 2400:6180:0:d0::41f, 30 hops max, 24 byte packets

 1  2400:6180:0:d0:ffff:ffff:ffff:fff1 (2400:6180:0:d0:ffff:ffff:ffff:fff1)  0.993 ms  1.034 ms  0.791 ms

 2  2400:6180::501 (2400:6180::501)  0.613 ms  0.636 ms  0.557 ms

 3  2400:6180::302 (2400:6180::302)  0.604 ms  0.506 ms  0.561 ms

 4  10gigabitethernet1-1.core1.sin1.he.net (2001:de8:4::6939:1)  6.21 ms  10.869 ms  1.249 ms

 5  15169.sgw.equinix.com (2001:de8:4::1:5169:1)  1.522 ms  1.205 ms  1.165 ms

 6  2001:4860::1:0:337f (2001:4860::1:0:337f)  2.131 ms  2.164 ms  2.109 ms

 7  2001:4860:0:1::523 (2001:4860:0:1::523)  2.266 ms  2.18 ms  2.02 ms

 8  2404:6800:8000:1c::8 (2404:6800:8000:1c::8)  1.741 ms  1.846 ms  1.895 ms

ممکن است با دستور «tracepath» آشنایی داشته باشید. در زیر می‌توانید نحوه استفاده از آن را ببینید:

tracepath6 ::1




1?: [LOCALHOST]                        
0.045ms pmtu 65536

1:  ip6-localhost                                         
0.189ms reached

1:  ip6-localhost                                         
0.110ms reached

Resume: pmtu 65536 hops 1 back 64

اگر لازم است که هنگام ورود ترافیک به دستگاه، بر روی آن نظارت کنید، معمولا می‌توانید از برنامه tcpdump استفاده کنید. ما می توانیم نتایج این ابزار را با عبارت ipv6 یا proto ipv6 فیلتر کنیم تا فقط ترافیک IPv6 را نمایش دهد.

به‌عنوان مثال، ما می‌توانیم ترافیک IPv6 با جریان سریع را به‌راحتی اندازه‌گیری کنیم و به ابزار بگوییم که فقط اطلاعاتی را که ما به آن علاقه‌مندیم ثبت کند.

tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

بررسی اطلاعات IPv6 DNS

با استفاده از ابزارهای معمولی می‌توانید به‌راحتی اطلاعات DNS دامنه‌های خود را بررسی کنید. تفاوت اصلی این است که شما احتمالا رکوردهای AAAA را که برای آدرس‌های IPv6 هستند درخواست می‌کنید. این در حالیست که رکوردهای A فقط برای نگاشت IPv4 استفاده می‌شوند. برای بازیابی رکورد آدرس IPv6 برای یک دامنه، به‌سادگی می‌توانید رکورد AAAA را درخواست کنید. با دستور «host» می‌توانید این کار را به‌صورت زیر انجام دهید:

host -t AAAA google.com


google.com has IPv6 address 2404:6800:4003:803::1004

اگر استفاده از دستور «dig» را ترجیح می‌دهید، می‌توانید با سینتکس زیر از آن استفاده و نتایج مشابهی را دریافت کنید:

dig google.com AAAA


; <<>> DiG 9.8.1-P1 <<>> google.com AAAA

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14826

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:

;google.com. IN AAAA


;; ANSWER SECTION:

google.com. 299 IN AAAA 2404:6800:4003:803::1006


;; Query time: 5 msec

;; SERVER: 8.8.4.4#53(8.8.4.4)

;; WHEN: Tue Apr  1 13:59:23 2014

;; MSG SIZE  rcvd: 56

همان‌طور که می‌بینید هنگام استفاده از آدرس‌های IPv6، بررسی اینکه DNS به‌خوبی برای دامنه شما ثبت شده به همان سادگی استاندارد IPv4 است.

سرویس‌های شبکه با IPv6

اکثر خدمات شبکه رایج شما باید توانایی مدیریت ترافیک IPv6 را داشته باشند. گاهی اوقات، آن‌ها به فلگ‌ها یا سینتکس خاصی نیاز دارند و گاهی اوقات، آن‌ها یک شیوه جایگزین و مختص IPv6 را برای پیاده‌سازی ارائه می‌دهند.

پیکربندی SSH

برای SSH، ابزار daemon را می‌توان برای کار کردن با یک آدرس IPv6 پیکربندی کرد. به‌این‌منظور باید فایل پیکربندی (Configuration) را با دستوری زیر باز کنید:

sudo nano /etc/ssh/sshd_config

دستور «ListenAddress» مشخص می‌کند که کدام آدرس قرار است به SSH daemon پیوند بخورد. برای آدرس‌های IPv4، این دستور به شکل زیر نوشته می‌شود:

ListenAddress 111.111.111.111:22

در این دستور، SSH daemon به آدرس «111.111.111.111» روی پورت 22 مرتبط می‌شود. برای یک آدرس IPv6، شما می‌توانید همین کار را انجام دهید با این تفاوت که آدرس را باید در بین علامت «] [» قرار دهید:

ListenAddress [1341:8954:a389:33:ba33::1]:22

این دستور به SSH daemon می‌گوید به آدرس 1341:8954:a389:33:ba33::1 بر روی پورت 22 توجه کند. شما می‌توانید با دستور زیر از SSH daemon بخواهید به تمام آدرس‌های IPv6 موجود توجه کند:

ListenAddress ::

به‌خاطر داشته باشید که با استفاده از دستور زیر هربار که تغییراتی را ایجاد کردید، daemon را ری‌ستارت کنید:

sudo service ssh restart

در سمت کلاینت، اگر daemon ای که قرار است به آن متصل شوید طوری پیکربندی شده است که به آدرس‌های IPv4 و IPv6 توجه کند، می‌توانید با استفاده از فلگ «-6» کلاینت را مجبور کنید که فقط از آدرس‌های IPv6 استفاده کند. به دستور زیر توجه کنید:

ssh -6 [email protected]

پیکربندی وب سرور

مشابه SSH daemon، وب سرورها هم برای توجه به آدرس‌های IPv6 باید پیکربندی شوند. در Apache، شما می‌توانید سرور را به‌گونه‌ای پیکربندی کنید که به درخواست‌های ارائه‌شده بر روی یک آدرس IPv6 خاص پاسخ بدهد. این کار از طریق سینتکس زیر قابل انجام است:

Listen [1341:8954:a389:33:ba33::1]:80

این دستور به سرور می‌گوید که به این آدرس خاص بر روی پورت 80 توجه کند. ما می‌توانیم به شکل زیر این دستور را با یک آدرس IPv4 ترکیب کنیم تا انطعاف‌پذیری بیش‌تری داشته باشیم:

Listen 111.111.111.111:80

Listen [1341:8954:a389:33:ba33::1]:80

در عمل، اگر می‌خواهید به اتصالات تمامی اینترفیس‌های موجود در تمام پروتکل‌های تنظیم‌شده بر روی پورت 80 توجه کنید، باید از دستور زیر استفاده کنید:

Listen 80

در سطح virtualhost، شما می‌توانید به یک آدرس IPv6 خاص اشاره کنید. در اینجا می‌توانید ببینید که چطور امکان پیکربندی یک virtualhost برای سازگاری با آدرس‌های IPv4 و IPv6 وجود دارد:

<VirtualHost 111.111.111.111:80, [1341:8954:a389:33:ba33::1]:80>

    . . .

</VirtualHost>

به‌خاطر داشته باشید که برای اعمال تغییرات، سرویس را ری‌استارت کنید:

sudo service apache2 restart

اگر ترجیح می‌دهید از وب سرور Nginx به‌عنوان وب سرور استفاده کنید، می‌توانید پیکربندی مشابهی را انجام دهید. برای اینکه مشخص کنید Nginx فقط به یک آدرس IPv6 توجه کند، می‌توانید از دستور زیر استفاده کنید:

listen [1341:8954:a389:33:ba33::1]:80;

در لینوکس، این دستور درواقع ترافیک IPv4 بر روی پورت 80 را فعال می‌کند، چون درخواست‌های ارائه‌شده برای آدرس‌ IPv4 به‌طور خودکار به آدرس‌ IPv6 تبدیل می‌شود. به‌این‌ترتیب، نیازی نیست به‌طور مجزا و مانند زیر به یک آدرس IPv6 و IPv4 اشاره کنید:

listen [1341:8954:a389:33:ba33::1]:80;

listen 111.111.111.111:80;

با اجرای این دستور با خطایی مواجه می‌شوید که می‌گوید پورت 80 درحال‌حاضر بر روی سرور دیگری فعال است. اگر می‌خواهید به‌طور مجزا به آدرس‌ها اشاره کنید، ابتدا باید قابلیت تبدیل خودکار آدرس‌ها را با استفاده از دستور «sysctl» غیرفعال کنید:

sysctl -w net.ipv6.bindv6only=1

شما می‌توانید با دستور «/etc/sysctl.conf» مشخص کنید که هنگام بوت، این دستور به‌صورت خودکار اعمال شود:

sudo nano /etc/sysctl.conf




. . .

net.ipv6.bindv6only=1

پس از این، شما باید از یک پیکربندی مشابه نمونه قبلی که پیغام خطا گرفت استفاده کنید، با این تفاوت که یک فلگ «ipv6only=on» به آدرس IPv6 اضافه خواهد شد:

listen [1341:8954:a389:33:ba33::1]:80 ipv6only=on;

listen 111.111.111.111:80;

حالا باید Nginx را ری‌استارت کنید تا تغییرات اعمال شود.

sudo service nginx restart

 

پیکربندی فایروال

اگر برای پیکربندی قوانین فایروال از فرانت‌اندهای پیکربندی Netfilter مانند «iptables» استفاده می‌کردید، خوب است بدانید که برای آدرس‌های IPv6 نیز یک ابزار معادل تحت عنوان «ip6tables» در نظر گرفته شده است.

برای استفاده از این دستور کافیست به‌جای iptables از ip6tables استفاده کنید تا قوانین فیلتر کردن بسته‌های داده را مدیریت کنید. برای مثال، فهرست کردن قوانین IPv6 با استفاده از دستور زیر انجام می‌شود:

sudo ip6tables -L


Chain INPUT (policy ACCEPT)

target     prot opt source               destination         


Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         


Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

جمع‌بندی

در این مطلب تقریبا هر آنچه که برای کانفیگ کردن IPv6 بر روی یک سرور مجازی نیاز دارید را ارائه کردیم. امیدواریم که متوجه شده باشید انتقال به پروتکل IPv6 فرایند نسبتا ساده‌ای است که درعین‌حال مزایایی را در دسترس شما قرار می‌دهد.

شما باید به‌طور خاص هر سرویس شبکه‌ای را که استفاده می‌کنید بررسی کنید تا متوجه شوید آیا تغییرات پیکربندی اضافی برای استفاده صحیح از منابع IPv6 شما لازم است یا خیر. به‌هرحال، اگر مواردی که در این مقاله آموزشی ارائه شد دنبال کنید، اکنون باید قادر باشید از IPv6 در ابتدایی‌‌ترین ابزارها و سرویس‌های خود استفاده کنید.

5/5 - (1 امتیاز)
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

18 + یازده =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
فریمورک Django
آموزش برنامه نویسی

همه چیز درباره فریمورک Django و نحوه استفاده از آن

فریم ورک Django یک ابزار متن‌باز بر پایه زبان برنامه‌نویسی پایتون است که از آن برای ساخت انواع وب‌سایت‌ها و پلتفرم‌های پیچیده استفاده می‌شود. این

خدمات مبین هاست