ใช้ Raspberry Pi เป็นเราเตอร์ IPv6 สำหรับเครือข่าย


6

ฉันประสบความสำเร็จในการตั้งค่า IPv6 สำหรับ Raspberry Pi ของฉันด้วย tunnelbroker.net อย่างไรก็ตามฉันต้องการแบ่งปัน / 64 ที่ฉันได้รับระหว่างอุปกรณ์อื่น ๆ ในเครือข่ายของฉัน เราเตอร์ของเครือข่ายคือ Virgin Media Super Hub (VMDG480) และไม่รองรับ IPv6

นี่คือ / etc / network / interfaces ของ Raspberry Pi:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.0.3
    gateway 192.168.0.1
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
    address 2001:470:1f09:4f8::2
    netmask 64
    endpoint 216.66.80.26
    local 192.168.0.3
    ttl 255
    gateway 2001:470:1f08:4f8::1

นี่คือข้อมูลที่ฉันได้รับจาก tunnelbroker:

 Client IPv6 Address: 2001:470:1f08:4f8::2/64
 Routed /64: 2001:470:1f09:4f8::/64
 Routed /48: 2001:470:6c92::/48

ฉันลองใช้ radvd, dibbler และ isc-dhcp-server - ไม่มีใครสามารถให้คอมพิวเตอร์เครื่องอื่นในเครือข่ายของฉันด้วยการเชื่อมต่อ IPv6 ใครสามารถช่วยส่องแสงสถานการณ์


ฉันคิดว่า Routed / 64 ควรเป็น 2001: 470: 1f0a: 4f8 :: / 64
Qian Chen

คำตอบ:


6

มันทำงานแตกต่างกันเล็กน้อย: คุณไม่แชร์ / 64 จากอุโมงค์คุณใช้ใหม่ / 64s จากเส้นทาง / 48 สำหรับเครือข่ายของคุณ กระบวนการ / 48 ช่วยให้คุณ2001:470: 6c92::/64(ซึ่งเป็น2001:470:6c92:0000::/64) 2001:470:6c92:ffff::/64ขึ้นไป นั่นให้คุณ 65536 / 64s ซึ่งโดยปกติจะเพียงพอที่จะให้แต่ละเครือข่ายของตนเอง / 64

ก่อนอื่นคุณจะต้องเปิดใช้งานการส่งต่อ IPv6 ในเคอร์เนลของคุณเพื่อให้ Raspberry Pi ของคุณทำหน้าที่เป็นเราเตอร์ เพิ่มบรรทัดนี้ไปที่/etc/sysctl.conf:

net.ipv6.conf.all.forwarding=1

มันอาจจะอยู่ในนั้นแล้ว แต่แสดงความคิดเห็น

จากนั้นคุณจะต้องกำหนดค่า IPv6 บนeth0อินเทอร์เฟซของคุณ เพิ่มสิ่งที่ชอบ:

iface eth0 inet6 static
    address 2001:470:6c92:1::1
    netmask 64

จากนั้นคุณกำหนดค่าradvd(เราเตอร์โฆษณาภูต) เพื่อให้ Raspberry Pi ของคุณโฆษณากับเครือข่ายท้องถิ่นที่มี IPv6 และมันจะทำหน้าที่เป็นเกตเวย์เริ่มต้น การกำหนดค่าพื้นฐาน/etc/radvd.confจะมีลักษณะดังนี้:

interface eth0
{
    AdvSendAdvert on;
    prefix 2001:470:6c92:1::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

โฆษณาว่าเป็นเกตเวย์เริ่มต้นและระบบอื่น ๆ อาจกำหนดค่าตัวเองโดยอัตโนมัติ

คำเตือน : ช่วงเวลาที่คุณเริ่มradvdระบบทั้งหมดใน LAN ของคุณจะได้รับที่อยู่ IPv6 และเกตเวย์เริ่มต้นของ IPv6 หากคุณไม่ได้กำหนดค่าไฟร์วอลล์ IPv6 บน Raspberry Pi ระบบทั้งหมดจะเชื่อมต่อโดยตรงกับอินเทอร์เน็ต IPv6 โปรดตรวจสอบว่าการกำหนดค่าของพวกเขามีความปลอดภัยในการทำงานเช่นนั้นหรือกำหนดค่าไฟร์วอลล์ IPv6 ในราสเบอร์รี่ Pi radvdก่อนเปิดใช้งาน

ถ้าคุณต้องการเฉพาะระบบที่เฉพาะเจาะจงที่จะใช้ราสเบอร์รี่ Pi สำหรับการเชื่อมต่อ IPv6 แล้วไม่radvdทำงาน เพียงแค่กำหนดค่า IPv6 ด้วยตนเองบนระบบเหล่านั้น ใช้ที่อยู่จาก2001:470:6c8b:1::/64. all-zeroes address คือ subnet-เร้าเตอร์ใด ๆ ที่อยู่ cast โดยการประชุมแม้ว่าฉันแทบจะไม่เคยเห็นสิ่งนี้ใช้ในทางปฏิบัติ ที่อยู่2001:470:6c92:1::1ที่ใช้สำหรับราสเบอร์รี่ Pi เพื่อให้คุณสามารถใช้อะไรจาก2001:470:6c92:1::2(= 2001:0470:6c92:0001:0000:0000:0000:0002) 2001:470:6c92:1:ffff:ffff:ffff:ffffเพื่อ กำหนดค่า2001:470:6c92:1::1เป็นเกตเวย์เริ่มต้นและคุณควรออนไลน์ :)

นอกจากนี้ยังมีคำแนะนำเกี่ยวกับhttps://wiki.ubuntu.com/IPv6#Configure_your_Ubuntu_box_as_a_IPv6_routerที่อาจใช้กับการกำหนดค่าของคุณ ดูที่ส่วน "ufw และการกำหนดเส้นทาง" มันเป็นพื้นบอกให้คุณเพิ่มบรรทัดต่อไปนี้ใน/etc/ufw/sysctl.conf:

net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1

ในการเปลี่ยนบรรทัดนี้เป็น/etc/default/ufw:

DEFAULT_FORWARD_POLICY="DROP"

และเพื่อเพิ่มบรรทัดต่อไปนี้/etc/ufw/before6.rules:

-A ufw6-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-forward -i eth0 -o he-ipv6 -m conntrack --ctstate NEW -j ACCEPT

ฉันทำงานนี้ไม่ได้ (ของฉัน / 48 เปลี่ยนเป็น 2001: 470: 6c92 :: / 48 แต่ฉันเพิ่งอัปเดตคำแนะนำของคุณให้ตรงกัน) radvd ไม่ได้มอบหมายอะไรให้กับคอมพิวเตอร์ Ubuntu ของฉันบนเครือข่ายเดียวกันและถ้าฉันใช้ NetworkManager เพื่อกำหนดค่า ipv6 อย่างที่คุณบอกฉันสามารถ ping เกตเวย์ แต่ไม่ใช่อินเทอร์เน็ต
whiskers75

ฉันใช้ ufw ดังนั้นฉันจึงเปิดใช้งานที่นั่น ❯ sudo sysctl net.ipv6.conf.all.forwardingส่งคืนค่าที่ตั้งไว้เป็น 1
whiskers75

มันเริ่มแล้ว หืมมมฉันได้DEFAULT_FORWARD_POLICY="DROP"ตั้งค่าใน / etc / default / ufw แล้วนั่นอาจเป็น ...
whiskers75

ย่อหน้าแรกผิดบางส่วน อุโมงค์ HE ให้สอง / 64 ของคุณ อันแรกของพวกเขาเป็นของอุโมงค์ มีการเลือก "ที่อยู่ IPv6 ลูกค้า" และคุณถูกต้องว่าไม่ควรใช้กับ Radvd อย่างไรก็ตามที่สอง / 64 ซึ่งเป็น "เส้นทาง / 64" นั้นสามารถใช้งานบน LAN ของคุณได้อย่างสมบูรณ์เพราะมันถูกส่งผ่านอุโมงค์ในลักษณะเดียวกับที่ / 48 คือ
grawity

0

ผมต้องเพิ่มipv6การ/etc/modulesครั้งแรกเพื่อเปิดใช้งาน IPv6 บางทีนี่อาจช่วยผู้อื่นได้เช่นกัน


lsmod | grep ipv6ควรจะบอกคุณถ้าคุณต้องการที่จะเพิ่มipv6ไป/etc/modulesหรือไม่
tdwong.star
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.