iT邦幫忙

0

急徵在網通廠服務的站友....

鵝因為公司的產品要搞IPv6Ready的Logo,被逼著一定要做完那堆測試,目前的狀況是鵝用認證單位指定的環境/工具去測就是有一部份測不過,而且更誇張的是測試工具出的報告有自相矛盾的地方....

1:ICMPv6部份,報告說第9/10項是fail的....

2:但是點進標示fail的項目,judgement又說是pass的疑惑....

鵝後來推測出問題出在哪了,因為認證單位指定的測試工具(TN)是在FreeBSD上裝user space的AP負責產生test pattern給被測物(NUT),再用sniffer(libpcap)的方式抓回user space分析,而不是一般由OS的TCP/IP stack負責相關工作(所以那個TN很難搞汗),像那個ICMPv6的第9/10項是由TN產生UDP port 9000的packet給NUT,因為NUT並沒有listen UDP port 9000,所以應該會回ICMP port unreachable,可是鵝把packet dump下來看到TN產生的packet並不像document所描述的,難怪NUT沒有回應,那測了半天到底是在測TN還是在測NUT啊OrzOrz....

1 個回答

2
leoman0704
iT邦新手 5 級 ‧ 2014-04-08 10:28:09
最佳解答

就我個人的理解是
TN 送出一個IPv6 的IP位置是link local address 封包類型 UDP port 9000 到NUT
而NUT 由於沒有聆聽這個封包,所以會回應ICMPv6 port unreachable

  1. 可能Debug 要看一下TN 送出的封包是不是對的,這部分要看當初架設環境是否有錯
  2. 另外再NUT上面看有沒有開啟IPv6 的ip6tables是不是被過濾掉,然後用tcpdump看封包是不是真的有收到
  3. 在看NUT上面的回應的ICMPv6 的內容是否有夾帶 當初被 TN送出的這個封包

以上是個人經驗

cmwang iT邦高手 1 級 ‧ 2014-04-08 12:16:27 檢舉

leoman0704提到:

  1. 可能Debug 要看一下TN 送出的封包是不是對的,這部分要看當初架設環境是否有錯
  2. 另外再NUT上面看有沒有開啟IPv6 的ip6tables是不是被過濾掉,然後用tcpdump看封包是不是真的有收到

謝了,我用sniffer看那個封包看來像是包在IPv6裡的IPv4(而不是送給NUT的IPv6),所以被NUT直接丟掉了,不過認證單位只給了很空汎的建議(不要用server卡,不要在VM測,不要過switch),Document也只說TN是架在Freebsd8上的,鵝照其建議兜,TN送出來的封包都不如預期了,那接下來該怎麼測啊Orz....

先前測試時印象中是可以只指定測是這個測項,不要每次都重新全測全部
你有找到重點 那顆第十號封包 就是TN送出來的ipv6封包,裡面會夾帶一顆ipv4的封包
EUT在收到這顆第10號時,必須要回應一個ipv6 Destination unreachable 封包 Dstport = 9000
依照經驗這是要回頭看Kernel ipv6 icmp模組去修改source,你的環境是沒有問題的

我要發表回答

立即登入回答