ฉันกำลังพยายามเพิ่มการสนับสนุนอุโมงค์ IPv6 ไปยังเซิร์ฟเวอร์ OpenVPN (เช่นลูกค้าสามารถเข้าถึงอินเทอร์เน็ต IPv6 ผ่าน VPN)
เราเตอร์ที่ใช้งาน OpenVPN (Netgear WNDR4500v1 ที่ใช้ Tomato v1.28-140) มี IPv6 ผ่าน Hurricane Electric (ทั้งเส้นทาง / 64 และเส้นทาง / 48) - 2001: xxxx: 7: 3b3 :: 2 เป็นที่อยู่ WAN IPv6 - 2001: xxxx: 8: 3b3 :: 1/64 ถูกกำหนดเส้นทางไปยัง LAN interface (br0) - 2001: xxxx: e1ca :: / 48 ถูกกำหนดเส้นทางไปยังส่วนต่อประสาน OpenVPN (tun21)
IPv6 ใช้งานได้จาก LAN ทดสอบ-ipv6.comส่งคืน 10/10
ฉันสามารถเชื่อมต่อจากไคลเอนต์ไปยังเซิร์ฟเวอร์ OpenVPN ผ่าน IPv4 หรือ IPv6 และไคลเอนต์ได้รับที่อยู่ v6 ซึ่งอยู่ในปี 2001: xxxx: e1ca :: / 48 นำหน้า อย่างไรก็ตามไคลเอนต์ไม่มีการเชื่อมต่อ IPv6 เลย ฉันได้ลองกับไคลเอนต์หลาย (Tunnelblick / macOS, OpenVPN สำหรับ Android, OpenVPN Connect / iOS) test-ipv6.com พูดว่า "ไม่พบที่อยู่ IPv6" นอกจากนี้ยังแสดงในบันทึกเซิร์ฟเวอร์:
SM-N910V/2610:xxxx:7f97 MULTI: bad source address from client [2610:xxxx:7f97], packet dropped
ฉันดูวิกิพีเดียของOpenVPN IPv6รวมถึงคู่มือของ Jacob D Evansท่ามกลางทรัพยากรอื่น ๆ การกำหนดค่าเซิร์ฟเวอร์ / ไคลเอ็นต์อยู่ด้านล่าง
กำหนดค่าเซิร์ฟเวอร์:
# Automatically generated configuration
daemon
server 192.168.2.0 255.255.255.0
proto udp
port 1194
dev tun21
cipher AES-256-CBC
comp-lzo adaptive
keepalive 15 60
verb 3
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
push "redirect-gateway def1"
tls-auth static.key 0
ca ca.crt
dh dh.pem
cert server.crt
key server.key
status-version 2
status status
# Custom Configuration
proto udp6
topology subnet
push "topology subnet"
server-ipv6 2001:xxxx:e1ca::/64
push "route-ipv6 2001:xxxx:8:3b3::/64"
push "route-ipv6 2001:xxxx:e1ca::/48"
push "comp-lzo adaptive"
verb 4
auth sha256
ลูกค้ากำหนดค่า:
client
dev tun
remote vpn.server.com 1194 udp6
float
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
key-direction 1
auth sha256
explicit-exit-notify
comp-lzo adaptive
pull
<ca>...</ca>
<cert>...</cert>
<key>...</key>
<tls-auth>...</tls-auth>
ip -6 route
ก่อนที่จะเชื่อมต่อกับ VPN:
2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium
fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 256 pref medium
default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium
ip -6 route
หลังจากเชื่อมต่อกับ VPN:
2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
2001:xxxx:8:3b3::/64 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium
2001:xxxx:e1ca::1 dev tun0 proto kernel metric 50 pref medium
2001:xxxx:e1ca::1 dev tun0 proto kernel metric 256 pref medium
2001:xxxx:e1ca::1000 dev tun0 proto kernel metric 50 pref medium
2001:xxxx:e1ca::/48 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium
2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium
fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 256 pref medium
default dev tun0 proto static metric 50 pref medium
default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium
ip -6 route
หลังจากรันคำสั่งที่โพสต์โดย @grawity ด้านล่าง:
default from 2001:xxxx:e1ca::/64 dev tun0 metric 1024 pref medium
default from 2610:xxxx::/64 via 2610:xxxx::1 dev enp0s3 metric 1024 pref medium
2001:xxxx:7:3b3::2 via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
2001:xxxx:8:3b3::/64 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium
2001:xxxx:e1ca::1 dev tun0 proto kernel metric 50 pref medium
2001:xxxx:e1ca::1 dev tun0 proto kernel metric 256 pref medium
2001:xxxx:e1ca::1000 dev tun0 proto kernel metric 50 pref medium
2001:xxxx:e1ca::/48 via 2001:xxxx:e1ca::1 dev tun0 proto static metric 50 pref medium
2610:xxxx::/64 dev enp0s3 proto ra metric 100 pref medium
fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto static metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 100 pref medium
fe80::/64 dev enp0s3 proto kernel metric 256 pref medium
default dev tun0 proto static metric 50 pref medium
default via fe80::6c5:a4ff:feea:9cc1 dev enp0s3 proto ra metric 100 pref medium
ใครมีความคิดเกี่ยวกับสิ่งที่เกิดขึ้น?
บันทึก OpenVPN: https://gist.github.com/abraha2d/f339ff163dd93e20ba3b499c69d6abe3
MULTI: bad source address
เป็นกุญแจสำคัญในการแก้ปัญหานี้ บางทีรายละเอียดการกำหนดค่าบางอย่างที่ฉันมองเห็น
ip route add ::/0 from 2001:xxxx:e1ca::/64 dev tun0
และ ip route add ::/0 from 2610:xxx/64 via <langw> dev eth0
.)