配置 IPv6 路由
我有來自 SIXXS 的 IPv6 地址。我的主機通過 AICCU 隧道(“sixxs”介面)與 SIXXS 網路連接。我的主機地址是 2001 :::2,最後的主機地址是 2001 :::1。在我的主機上,IPv6 是完全可訪問的。我在虛擬機上配置 IPv6 網路時遇到問題。我使用VirtualBox,VM(Ubuntu)使用tap1(在br0橋接的主機上)
#!/bin/sh PATH=/sbin:/usr/bin:/bin:/usr/bin:/usr/sbin # create a tap tunctl -t tap1 ip link set up dev tap1 # create the bridge brctl addbr br0 brctl addif br0 tap1 # set the IP address and routing ip link set up dev br0 ip -6 route del 2001:6a0:200:172::/64 dev sixxs ip -6 route add 2001:6a0:200:172::1 dev sixxs ip -6 addr add 2001:6a0:200:172::2/64 dev br0 ip -6 route add 2001:6a0:200:172::2/64 dev br0
主機路由表:
2001:6a0:200:172::1 dev sixxs metric 1024 2001:6a0:200:172::/64 dev br0 proto kernel metric 256 2001:6a0:200:172::/64 dev br0 metric 1024 2000::/3 dev sixxs metric 1024 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev sixxs proto kernel metric 256 fe80::/64 dev br0 proto kernel metric 256 fe80::/64 dev tap1 proto kernel metric 256 default via 2001:6a0:200:172::1 dev sixxs metric 1024
Guest:eth1介面(與tap1相連):
auto eth1 iface eth1 inet6 static address 2001:6a0:200:172::3 netmask 64 gateway 2001:6a0:200:172::2
訪客:路由表
2001:6a0:200:172::/64 dev eth1 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth1 proto kernel metric 256 default via 2001:6a0:200:172::2 dev eth1 metric 1024
來賓 ping 主機,主機 ping 來賓,主機 ping 到 2001:6a0:200:172::1,但來賓不 ping 到 2001:6a0:200:172::1。來賓嘗試在主機上 ping(通過 tcdump)我可以擷取其數據包,但主機不會將它們發送到 2001:6a0:200:172::1。我在配置中錯過了什麼?
檢查命令的輸出
sysctl -a | grep ipv6 | grep forward
對於您要轉發的所有網路,這應該顯示值為 1。您應該能夠使用以下命令啟用轉發:
sysctl net.ipv6.conf.all.forwarding=1
我會認真考慮設置一個 iptables 防火牆,這樣您就不會完全向 IPv6 Internet 開放您的系統。與 IPv4 不同,您沒有阻止入站連接的 NAT 設備。Shorewall防火牆有一個 IPv6 版本,它應該為您提供一個簡單的防火牆設置。範例雙介面設置應該是一個很好的起點,可以設置為為您啟用轉發。
我關於在 OpenWRT (Linux) 路由器上設置 IPv6 的文章可能會給您一些指導。將您的主機配置為路由器。
編輯:我查看了 SixXS 文件並驗證了在隧道上只有 ::1(P0P 和 ::2(您的端點)地址是有效的。應該已經為您提供了一個“預設路由 /64”,您可以在您的網路上使用它. 為你的網橋分配一個地址。(傳統上 ::1 地址是路由器。)你可能想要配置一個
radvd
守護程序來宣佈內部網路上的路由。如果你使用radvd
你的虛擬盒子圖像應該自動配置一個地址和路由.如果要路由其他本地設備,則根據需要添加
eth1
或 eth0` 到網橋。