我正在使用 FreeBSD 10.1 并正在设置服务器。经过一些麻烦之后,我设法让 IPv6 运行起来。
我现在正在设置监狱,ezjail
并且我学会了如何设置工作风格和具有 IPv4 互联网访问的监狱。
然而,我无法让 IPv6 在监狱中工作,我也不知道为什么。
我在监狱中的 lo0 接口没有获得 IPv6 地址。
我缺少什么?
/etc/rc.conf
[…]
gateway_enable="YES"
ipv6_gateway_enable="YES"
[…]
/usr/local/etc/ezjail/test
[…]
export jail_test_ip="lo0|10.0.0.2,lo0|fe80::2"
[…]
ifconfig
[…]
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
inet 10.0.0.2 netmask 0xffffffff
inet6 fe80::2%lo0 prefixlen 128 scopeid 0x2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
[…]
监狱ifconfig
[…]
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet 10.0.0.2 netmask 0xffffffff
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
[…]
答案1
在服务器 rc.conf 中是:
ifconfig_re0_ipv6="inet6 accept_rtadv"
(如果您愿意,可以添加静态 ipv6 地址)在我的环境中,我的路由器向其他系统提供 IPv6 地址。
ifconfig
在服务器本身上:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
This is the server ip config
ether 22:22:22:22:22:22
inet6 fe80::1ae1:b1ff:fe11:1234%re0 prefixlen 64 scopeid 0x1
inet 172.16.0.200 netmask 0xffffffff broadcast 172.16.0.200
inet6 2001:123:4567:0:1234:1234:1234:1234 prefixlen 64 autoconf
inet 172.16.0.20 netmask 0xffffff00 broadcast 172.16.0.255
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
现在,配置/usr/local/etc/ezjail/anysystem
:
export jail_proxy_ip="172.16.0.200,2001:123:1234:0:1234:1234:1234:1234"
(逗号后不能有空格)
重新启动这个监狱,进入监狱控制台并运行ifconfig
。您将看到 1 个 ipv4 和 1 个 ipv6 地址。
uname -a:
FreeBSD 10.2-RELEASE r286666
我已经用鱿鱼监狱对此进行了测试,效果很好。