آموزش تنظیم IPv4 و IPv6 در Centos
مقدمه
این راهنما گامبهگام برای پیکربندی IPv4 و IPv6 در CentOS 7 و CentOS 8 (و توزیعهای همتا که از NetworkManager و اسکریپتهای /etc/sysconfig/network-scripts استفاده میکنند) است. شامل روشهای فایلمحور (ifcfg)، ابزار NetworkManager (nmcli, nmtui)، تنظیمات موقتی با ip، بررسی وضعیت و رفع خطای رایج. دستورات هر سطر جدا و بدون پیشوند نوشته شدهاند.
پیشنیازها
– دسترسی ریشه یا کاربر با sudo
– بسته NetworkManager نصب و فعال (معمولی در CentOS 7/8)
– آدرسها، پیشوندها و گِیتویهای موردنظر آماده
بررسی اولیه وضعیت شبکه
sysctl -a | grep net.ipv6 ip addr ip -6 addr nmcli general status nmcli connection show
فعالسازی IPv6 در سطح هسته (در صورت غیرفعال بودن)
vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 sysctl -p
پشتیبانگیری از تنظیمات فعلی
cp -a /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0.bak nmcli connection export eth0 /root/eth0.nmconnection
روشها بهصورت جداگانه برای هر نسخه
#CentOS 7
1) پیکربندی استاتیک با فایلهای ifcfg
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none HWADDR=aa:bb:cc:dd:ee:ff IPADDR=192.0.2.10 PREFIX=24 GATEWAY=192.0.2.1 DNS1=8.8.8.8 DNS2=8.8.4.4 IPV6INIT=yes IPV6_AUTOCONF=no IPV6ADDR=2001:db8:100::10/64 IPV6_DEFAULTGW=2001:db8:100::1 IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_PRIVACY=no
نکات ifcfg:
– برای IPv4 از IPADDR و PREFIX (یا NETMASK) استفاده کنید.
– برای IPv6 استاتیک از IPV6ADDR با پسوند /پریفیکس و IPV6_DEFAULTGW برای گِیتوی.
– برای استفاده از SLAAC یا DHCPv6 مقدار IPV6_AUTOCONF را تنظیم کنید.
اعمال تغییرات:
systemctl restart network systemctl restart NetworkManager nmcli connection reload nmcli connection up eth0
2) پیکربندی با nmcli (خط فرمان)
nmcli connection show nmcli connection add type ethernet ifname eth0 con-name static-eth0 ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1 ipv4.dns "8.8.8.8 8.8.4.4" nmcli connection modify static-eth0 +ipv6.addresses 2001:db8:100::10/64 nmcli connection modify static-eth0 ipv6.gateway 2001:db8:100::1 nmcli connection modify static-eth0 ipv6.method manual nmcli connection up static-eth0
نکات nmcli:
– استفاده از ipv4.addresses و ipv6.addresses با پیشوند.
– ipv6.method میتواند auto, manual, disabled یا ignore باشد.
3) پیکربندی موقت (بدون تغییر فایل) با ip
ip addr add 192.0.2.10/24 dev eth0 ip route add default via 192.0.2.1 dev eth0 ip -6 addr add 2001:db8:100::10/64 dev eth0 ip -6 route add default via 2001:db8:100::1 dev eth0
نکات:
– این تغییرات تا ریبوت باقی میمانند مگر در فایلها ذخیره شوند.
– برای حذف: ip addr del … و ip route del …
4) بررسی و عیبیابی
ip addr show dev eth0 ip -6 addr show dev eth0 ip route show ip -6 route show ping -c 4 8.8.8.8 ping6 -c 4 2001:4860:4860::8888 systemctl status NetworkManager journalctl -u NetworkManager -b
نکات رفع خطا:
– اگر رابط بالا نمیآید، NM_CONTROLLED را بررسی کنید.
– بررسی MAC (HWADDR) در ifcfg با ip link show.
– مسیر و گِیتوی را با ip route بررسی کنید.
#CentOS 8
توجه: CentOS 8 معمولاً از NetworkManager بهعنوان مدیریتکننده شبکه استفاده میکند. اسکریپتهای ifcfg ممکن است در برخی نصبها غیرفعال یا حذف شده باشند؛ توصیه میشود از nmcli یا nmtui استفاده شود مگر نیاز مشخص به فایل ifcfg باشد.
1) پیکربندی با nmcli (توصیه شده)
nmcli connection show nmcli connection add type ethernet ifname eth0 con-name static-eth0 ipv4.method manual ipv4.addresses 198.51.100.10/24 ipv4.gateway 198.51.100.1 ipv4.dns "1.1.1.1 8.8.8.8" nmcli connection modify static-eth0 +ipv6.addresses 2001:db8:200::10/64 nmcli connection modify static-eth0 ipv6.gateway 2001:db8:200::1 nmcli connection modify static-eth0 ipv6.method manual nmcli connection up static-eth0
نکات:
– در CentOS 8 از NetworkManager/Keyfile نیز استفاده میشود؛ nmcli تغییرات را مدیریت میکند.
– برای DHCPv6 از ipv6.method auto استفاده کنید.
2) استفاده از nmtui (رابط متنی تعاملی)
nmtui
گزینهٔ Edit a connection را انتخاب کنید
ارتباط مورد نظر را انتخاب کنید و Edit را بزنید
IPv4 configuration را روی Manual بگذارید و آدرسها را وارد کنید
IPv6 configuration را روی Manual یا Automatic قرار دهید و تنظیمات را ذخیره کنید
Save و Activate کنید
3) فایلهای ifcfg (در صورت نیاز)
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=yes IPADDR=198.51.100.10 PREFIX=24 GATEWAY=198.51.100.1 DNS1=1.1.1.1 IPV6INIT=yes IPV6_AUTOCONF=no IPV6ADDR=2001:db8:200::10/64 IPV6_DEFAULTGW=2001:db8:200::1
اعمال تغییرات:
nmcli connection reload nmcli connection up eth0 systemctl restart NetworkManager
4) پیکربندی موقت با ip
ip addr add 198.51.100.10/24 dev eth0 ip route add default via 198.51.100.1 dev eth0 ip -6 addr add 2001:db8:200::10/64 dev eth0 ip -6 route add default via 2001:db8:200::1 dev eth0
5) بررسی و عیبیابی
ip addr show dev eth0 ip -6 addr show dev eth0 ip route show ip -6 route show ping -c 4 1.1.1.1 ping6 -c 4 2001:4860:4860::8888 systemctl status NetworkManager journalctl -u NetworkManager -b
نکات ویژه IPv6
– لینک-لوکال گِیتوی: اگر گِیتوی لینک-لوکال است، پسوند رابط را اضافه کنید:
ip -6 route add default via fe80::1 dev eth0
یا در فایل ifcfg:
IPV6_DEFAULTGW=fe80::1%eth0
– SLAAC vs DHCPv6:
SLAAC را با IPV6_AUTOCONF=yes فعال کنید
DHCPv6 را معمولاً با ابزارهای DHCPv6 client (مثل dhclient -6 یا dhcpcd) مدیریت کنید
nmcli برای DHCPv6 مقدار ipv6.method را auto قرار میدهد
– Privacy Extensions:
برای فعال/غیرفعال کردن:
sysctl -w net.ipv6.conf.all.use_tempaddr=0
یا در فایل /etc/sysctl.conf:
net.ipv6.conf.all.use_tempaddr = 0 sysctl -p
DNS برای IPv6
/resolv.conf معمولی یا NetworkManager میتواند DNS را تنظیم کند.
vi /etc/resolv.conf nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844
در nmcli:
nmcli connection modify static-eth0 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
Persist کردن تنظیمات مسیرهای خاص
برای افزودن مسیر استاتیک IPv4 در ifcfg:
vi /etc/sysconfig/network-scripts/route-eth0 192.0.2.0/24 via 192.0.2.1 dev eth0
برای IPv6:
vi /etc/sysconfig/network-scripts/route6-eth0 2001:db8:abcd::/64 via 2001:db8:abcd::1 dev eth0
امنیت و فایروال
firewalld در CentOS 7/8 رایج است؛ مطمئن شوید که پورتها و دسترسیهای ICMPv6 لازم باز باشند.
firewall-cmd --permanent --add-rich-rule 'rule family="ipv6" source address="2001:db8:100::/64" accept' firewall-cmd --reload
برای اجازه به ICMPv6:
firewall-cmd --permanent --add-icmp-block-inversion firewall-cmd --permanent --add-icmp-block=router-solicitation firewall-cmd --reload
(تنظیمات ICMPv6 را با دقت انجام دهید؛ بسیاری از سرویسهای IPv6 به ICMPv6 نیاز دارند.)
سناریوهای رایج و مثالها
مثال 1 — فقط IPv4 استاتیک (CentOS 7/8 با nmcli)
nmcli connection add type ethernet ifname eth0 con-name ipv4-only ipv4.method manual ipv4.addresses 203.0.113.10/24 ipv4.gateway 203.0.113.1 ipv4.dns "8.8.8.8" nmcli connection up ipv4-only
مثال 2 — IPv4 DHCP و IPv6 از طریق SLAAC (automatic)
nmcli connection add type ethernet ifname eth0 con-name dhcp4_slaac ipv4.method auto ipv6.method auto nmcli connection up dhcp4_slaac
مثال 3 — IPv4 استاتیک و DHCPv6
nmcli connection add type ethernet ifname eth0 con-name ipv4static_dhcp6 ipv4.method manual ipv4.addresses 198.51.100.10/24 ipv4.gateway 198.51.100.1 nmcli connection modify ipv4static_dhcp6 ipv6.method auto nmcli connection up ipv4static_dhcp6
نکات عملی و خطایابی عمیق
– اگر پس از راهاندازی دوباره رابط، IPv6 کار نمیکند، بررسی کنید که روتر محل سرویسدهنده آدرسدهی را اعلان میکند (RA). از tcpdump برای بررسی RA استفاده کنید:
tcpdump -i eth0 icmp6 and 'ip6[40] == 134'
– بررسی sysctl برای پارامترهای مرتبط با forwarding:
sysctl net.ipv6.conf.all.forwarding
برای فعال کردن:
sysctl -w net.ipv6.conf.all.forwarding=1
و در /etc/sysctl.conf برای ماندگاری:
net.ipv6.conf.all.forwarding = 1 sysctl -p
– بررسی سرویس NetworkManager logs برای خطا:
journalctl -u NetworkManager -f
– اگر فایل ifcfg تداخلی با NetworkManager دارد، از NM_CONTROLLED=no برای مدیریت دستی یا NM_CONTROLLED=yes برای اجازه به NetworkManager استفاده کنید.
خلاصهٔ چکلیست سریع
– آدرسها و پیشوندها را صحیح وارد کنید.
– گِیتوی IPv6 لینک-لوکال نیاز به %interface دارد.
– تغییرات موقت با ip قابل آزمایشاند.
– از nmcli/nmtui برای تنظیمات مدیریتی استفاده کنید.
– sysctl را برای فعالسازی IPv6 بررسی و تنظیم کنید.
– firewall و ICMPv6 را مطابق نیاز باز کنید.
– لاگها و tcpdump برای عیبیابی استفاده کنید.





قوانین ارسال دیدگاه
لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.