ฉันจะเทลเน็ตไปยังโฮสต์ IPv6 โดยใช้ Mac OS X ได้อย่างไร


11

ฉันกำลังทดสอบ IPv6 บนเครือข่ายองค์กรและมีปัญหากับ OS X ด้วยคำสั่ง IPv6 ส่วนใหญ่เช่นtelnet -6หรือtraceroute6ฉันได้รับข้อผิดพลาด:

connect: No route to host

ตัวอย่างเช่นฉันมีเว็บเซิร์ฟเวอร์ สิ่งนี้ล้มเหลว:

$ telnet -6 fe80::… 80    # this fails

ฉันรู้ว่าเซิร์ฟเวอร์เข้าถึงได้เพราะping6งาน (โปรดทราบว่าฉันต้องใช้-Iอาร์กิวเมนต์):

$ ping6 -I en1 fe80::…    # this works

และฉันรู้ว่าเว็บเซิร์ฟเวอร์กำลังทำงานอยู่เพราะฉันสามารถ telnet เข้าใช้งานได้จาก Windows:

C:\> telnet fe80::… 80  # this works

ฉันสงสัยว่ามีการตั้งค่าสถานะบางอย่างหรืออาร์กิวเมนต์บรรทัดคำสั่งที่ฉันหายไป


ตกลงฉันจะกัด ทำไมไม่ใช้ IPv4 สำหรับเรื่องนั้นเหตุใด telnet จึงเปิดใช้งานด้วยซ้ำ
John Gardeniers

1
@John Nate กำลังพยายาม telnet ไปยังพอร์ต 80 เว็บเซิร์ฟเวอร์ของคุณจะเหงาและเหี่ยวแห้งถ้าคุณไม่คุยกับมันเป็นระยะ
เจอรัลด์รวงผึ้ง

2
@ John Gardeniers: ฉันกำลังทดลองกับ IPv6 เนื่องจากฉันคาดว่าจะต้องเริ่มใช้งานในอีก 12-18 เดือนข้างหน้า นอกจากนี้ดังที่ Gerald กล่าวว่าtelnet ลูกค้าเป็นเครื่องมือที่มีประโยชน์สำหรับการทดสอบการเชื่อมต่อพื้นฐานไปยังเว็บหรือเซิร์ฟเวอร์อีเมล ฉันไม่เห็นเซิร์ฟเวอร์ telnet ในเวลาอย่างน้อย 10 ปี
เนท

@ Gerald และ @Nate ฉันเห็น "ฉันจะ telnet ไปยังโฮสต์ IPv6 ได้อย่างไร" ซึ่งสำหรับฉันแล้วบอกว่าโปรโตคอล telnet ที่จุดใดที่ฉันมักจะสั่นและหยุดอ่าน แน่นอนว่าชื่อมีลักษณะคล้ายกับ "ฉันจะใช้โปรแกรม telnet เพื่อเชื่อมต่อ ... " ฉันจะอ่านคำถามทั้งหมด ขอโทษ
John Gardeniers

คำตอบ:


11

คำนำหน้า fe80 :: / 16 สำหรับที่อยู่ link-local และพวกมันพิเศษ ลองวิ่ง

netstat -nr

บน OS X และ

netsh int ipv6 show routes

บน Windows ใน OS X คุณจะเห็นเส้นทาง fe80 :: เส้นทางแยกกันสำหรับแต่ละอินเตอร์เฟสเช่น lo0 และ en1 Windows (XP อย่างน้อย) ดูเหมือนจะไม่ทำเช่นนั้น เนื่องจาก OS X มีหลายเส้นทางไปยังคำนำหน้าเดียวกันคุณต้องใช้ดัชนีโซนเพื่อชี้ปริมาณการใช้งานในทิศทางที่ถูกต้อง:

$ telnet -6 fe80::…%en1 80

ขอบคุณสิ่งนี้ได้ผล และขอขอบคุณสำหรับการอธิบายว่าทำไมจึงทำงานบน Windows แต่ไม่ใช่ใน OS X
Nate

4

อินเทอร์เฟซสามารถและมักจะมีหลายที่อยู่ IPv6 ที่อยู่ link-local จะถูกสร้างขึ้นโดยอัตโนมัติจากช่วง fe80 :: / 16 และไม่ได้กำหนดเส้นทาง (การเชื่อมต่อแบบจุดต่อจุด) ตามที่Gerald Combs กล่าวถึงคุณจะต้องระบุดัชนีโซนหากคุณไม่สามารถระบุอินเทอร์เฟซที่จะใช้

สำหรับการใช้งานปกติและการเชื่อมต่อนอกเหนือจากลิงค์ในตัวเครื่องคุณจะต้องเพิ่มที่อยู่ที่สามารถกำหนดเส้นทางได้ในอินเทอร์เฟซ ซึ่งสามารถทำได้โดยรับช่วง IPv6 ของคุณเองจาก ISP ของคุณ (หรือจากผู้ให้บริการช่องสัญญาณเช่น SixXS หรือ he.net) และกระจายไปยังอุปกรณ์ของคุณผ่านเราเตอร์โฆษณา DHCPv6 หรือด้วยตนเอง

หากคุณเป็นเพียงการทดสอบคุณสามารถใช้ช่วงพิเศษ "Unique Unicast" ของ fc00 :: / 7 ซึ่งควรใช้สำหรับสิ่งนี้ตาม RFC4193:

เอกสารนี้กำหนดรูปแบบที่อยู่ IPv6 unicast ที่ไม่ซ้ำกันทั่วโลกและมีไว้สำหรับการสื่อสารในท้องถิ่นมักจะอยู่ในเว็บไซต์ ที่อยู่เหล่านี้ไม่ได้คาดว่าจะสามารถส่งไปได้ทางอินเทอร์เน็ตทั่วโลก

ลองดูไซต์นี้ซึ่งช่วยให้คุณเริ่มต้นด้วยการสร้างช่วงสำหรับคุณ


ที่อยู่เฉพาะในท้องถิ่นจะเป็นขั้นตอนต่อไปของฉัน ขอบคุณสำหรับลิงค์ที่ยอดเยี่ยม!
เนท

0

ฉันเชื่อว่าคุณพบข้อผิดพลาดในลิงค์ท้องถิ่น fe80 :: ที่อยู่ มันใช้งานได้สำหรับฉันโดยใช้ที่อยู่สาธารณะของฉันแม้ว่ามันจะเป็นลิงก์ในเครื่อง

$ telnet -6 2001::xxx:: 80
Trying 2001::xxx::...
Connected to 2001::xxx::
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 30 Dec 2010 01:18:00 GMT
Server: Apache
Last-Modified: Sun, 30 May 2010 20:11:06 GMT
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html

Connection closed by foreign host.

ลองรับที่อยู่ v6 จริง


1
ที่อยู่ link-local ไม่ได้น้อยไปกว่าจริงแต่อาจมีประโยชน์น้อยกว่านี้ขึ้นอยู่กับกรณีการใช้งานของคุณ
เจอรัลด์รวงผึ้ง

A 2001 :: address ไม่ได้เป็นlink-local เป็นช่วงที่กำหนดเส้นทางได้และไม่ควรสับสนกับการจองลิงค์ภายในพื้นที่ fe80 :: / 16 โปรดอย่าใช้คำที่ไม่เหมาะสมเนื่องจากจะทำให้ผู้คนสับสน
Martijn Heemels

ฉันหมายถึงการเชื่อมโยงท้องถิ่นในขณะที่โฮสต์อยู่ในโดเมนออกอากาศอีเธอร์เน็ตเดียวกัน
bahamat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.