การพยายามเปิดใช้งาน IPv6 ส่งผลให้เกิดข้อผิดพลาด“ ไม่มีเส้นทางสู่โฮสต์”


8

ฉันกำลังกำหนดค่าเครือข่ายสแต็คคู่บนเซิร์ฟเวอร์ KVM โดยใช้ที่อยู่ IPv4 และ IPv6 แบบคงที่ที่ตกแต่งโดยผู้ให้บริการของฉัน

ฉันป้อนที่อยู่เซิร์ฟเวอร์และเกตเวย์ทั้งหมดตามที่จำเป็นเมื่อติดตั้ง Ubuntu หลังจากนั้นฉันตรวจสอบ/etc/network/interfacesไฟล์และสังเกตว่า IPv6 stanza ขาดงาน (การifconfigดำเนินการยืนยันนี้) ดังนั้นฉันจึงเพิ่มบรรทัดที่เกี่ยวข้อง นี่คือไฟล์สุดท้าย:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 151.236.18.86
        netmask 255.255.255.0
        network 151.236.18.0
        broadcast 151.236.18.255
        gateway 151.236.18.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 91.227.204.227 91.227.205.227
        dns-search mydomainname.com
iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:b60:1000:151:236:18:86:0
        netmask 112
        gateway 2001:b60:1000::1
        dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
        dns-search mydomainname.com

จากนั้นฉันเริ่มระบบเครือข่ายใหม่ผ่านทางsudo /etc/init.d/networking stop && sudo /etc/init.d/networking restartและสังเกตเห็นว่าในขณะที่ IPv4 ทำงานอยู่การเชื่อมต่อ IPv6 ขาออกก็ไม่พร้อมใช้งาน (ฉันยังไม่ได้ตรวจสอบการเชื่อมต่อขาเข้า)

ifconfigและip -6 addrแสดงที่อยู่ IPv6 ที่เป็นที่รู้จัก:

eth0      Link encap:Ethernet  HWaddr 52:54:00:b1:27:87  
          inet addr:151.236.18.86  Bcast:151.236.18.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:feb1:2787/64 Scope:Link
          inet6 addr: 2001:b60:1000:151:236:18:86:0/112 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1126656 (1.1 MB)  TX bytes:763658 (763.6 KB)

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:b60:1000:151:236:18:86:0/112 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:feb1:2787/64 scope link 
       valid_lft forever preferred_lft forever

ในทางตรงกันข้ามไม่มีเส้นทางเริ่มต้นสำหรับ IPv6 stack:

$ ip -6 route
2001:b60:1000:151:236:18:86:0/112 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 

การพยายามเพิ่มเส้นทางที่หายไปนำไปสู่ข้อผิดพลาด "ไม่มีเส้นทางสู่โฮสต์":

$ sudo ip -6 route add default via 2001:b60:1000::1
RTNETLINK answers: No route to host

มีอะไรผิดปกติและฉันจะแก้ไขการกำหนดค่าเครือข่ายเพื่อให้สามารถใช้ IPv6 stack ได้อย่างไร

คำตอบ:


6

ภายในเครื่องเสมือนของคุณให้เรียกใช้สิ่งต่อไปนี้:

ping6 ff02::2%eth0

นี่ff02::2คือที่อยู่มัลติคาสต์ IPv6 "ทุกเราเตอร์" เราเตอร์บนลิงก์จะตอบสนองต่อการ ping ด้วยที่อยู่ของมันเอง ตัวอย่างเช่น:

64 bytes from fe80::56e6:fcff:fef4:66f1: icmp_seq=1 ttl=64 time=0.347 ms

จากนั้นคุณสามารถเพิ่มสิ่งนี้เป็นที่gatewayอยู่

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....

ฉันทำอย่างนั้นเราเตอร์ทั้งสามตอบกลับ (ไม่มีใครตรงกับที่อยู่เกตเวย์ของผู้ให้บริการของฉันให้ฉัน); ฉันเลือกอันที่มีเวลาแฝงต่ำสุดและเปลี่ยนการกำหนดค่าเครือข่าย ขณะนี้การแก้ไขชื่อใช้งานได้ แต่การเชื่อมต่อ IPv6 ไม่ได้ (ฉันออกping6 -c 3 ipv6.google.comDNS พบที่อยู่ แต่มีการสูญหายของแพ็กเก็ต 100%) ความคิดใด ๆ
Alessandro Menti

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

3

netmask ของคุณควรเป็น 64 ด้วย IPv6 ทุก LAN มักจะเป็น / 64 ฉันเดาว่าผู้ให้บริการของคุณอนุญาตให้คุณใช้ / 112 จาก / 64 แต่คุณควรกำหนดค่า a / 64 บนอินเทอร์เฟซ


ฉันกำหนดค่าสแต็ค IPv6 ใหม่ให้ใช้ / 64 netblock แต่น่าเสียดายที่ปัญหายังคงมีอาการเหมือนเดิม
เลสซานโดร Menti

ฉันขอโทษตอนนี้ฉันเห็นว่าโฮสต์ของคุณอยู่ในปี 2544: b60: 1000: 151 :: / 64 และเกตเวย์ของคุณในปี 2544: b60: 1000: 0 :: / 64 CDLAN จะต้องให้ข้อมูลที่ไม่ถูกต้องกับคุณหรือเครือข่าย IPv6 ของพวกเขายุ่งเหยิงและ / หรือเบี่ยงเบนจากการปฏิบัติตามมาตรฐาน ...
Sander Steffann

1
น่าเสียดายที่การเบี่ยงเบนแปลก ๆ นี้เป็นเรื่องธรรมดาสำหรับผู้ให้บริการ VPS
Michael Hampton

1

มันกลับกลายเป็นว่าความยาวหน้ากากเครือข่ายที่กำหนดให้ฉันโดยผู้ให้บริการไม่ถูกต้อง: 48หนึ่งที่เหมาะสมคือ เปลี่ยนมันได้หลอกลวง

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