差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

linux:network:ipv6:ping:problem_on_centos7.3 [2018/01/14 01:20]
tony
linux:network:ipv6:ping:problem_on_centos7.3 [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​ipv6 ping6 linux centos7}} 
-====== ping ipv6在CentOS7.3上的問題 ====== 
-===== Problem ===== 
-在linux中,ping ipv6的主機可以使用ping6或ping -6。可以從許多網路文章中得知,ping FE80::/​64(link-local)位置必須加上網卡名稱,例如:​ 
-<code bash> 
-ping6 fe80::​28e8:​eeea:​c9c2:​4f04%eno1 
-ping6 fe80::​28e8:​eeea:​c9c2:​4f04 -I eno1 
-</​code>​ 
-否則會出現錯誤訊息connect:​ invalid argument;然而在CentOS/​RHEL7.3系統上,卻不需要加上網卡名稱就能夠執行指令。 
-===== How to resolve? ===== 
-首先我透過ping6 -V指令,查詢不同linux中ping的版本:​\\ 
-{{:​linux:​network:​ipv6:​ping:​ping_version.png|}}\\ 
-可以發現,RHEL7.3使用了20160308的版本。後來用yum更新了7.2版本的iputils套件到20160308-10,卻一樣需要加上網卡名稱才能ping link-local,最後注意到如果使用RHEL/​Centos7.3自帶的iputils rpm就不需要加網卡名稱,仔細看發現它的版本是20160308-8。\\ 
-\\ 
-後來我在測試多網卡的情況時,發現了以下現象:​\\ 
-{{:​linux:​network:​ipv6:​ping:​ping_i_bug_on_centos7.3.png|}}\\ 
--I參數指定網卡名稱沒作用。以我的例子來說,我指定了eno1,但它卻使用eno2去ping目標位置;我改透過以下指令才真的有使用eno1去ping目標位置:​ 
-<code bash> 
-ping6 fe80::​1c23:​4c59:​72c5:​f929%eno1 -c 2 
-</​code>​ 
-{{:​linux:​network:​ipv6:​ping:​ping6_with_interface_by_percentage.png|}}\\ 
-\\ 
-因此我推測在20160308那天,應該build了20160308-8與20160308-10兩個版本,而20160308-8是有問題的。這只是推測,對我們來說,我只需要一個可靠的方法就好;因此,對於ping ipv6比較安全的作法我會使用%而不使用-I:​ 
-<code bash> 
-ping6 [ipv6_addr]%[nic_name] 
-</​code>​ 
-有些人可能會使用ping加上-6取代ping6,但必須注意在比較舊的系統可能不支援這種方式。 
  
-=====    ===== 
----- 
-\\ 
-~~DISQUS~~