Iva*_*ica 5 networking vpn debian ipv6 pptp
我已经在 Debian 机器上使用 Hurricane Electric 的服务建立了一条隧道。它似乎工作正常;我可以ping6 ipv6.google.com
在links
.
我还在机器上设置了一个 PPTP 守护进程。(是的,我已经读到 PPTP 不安全;这主要用于实验目的。)当我使用 Mac OS X 连接到这个 PPTP 守护程序时,IPv4 工作正常。
但是,我似乎无法使 IPv6 流量路由正常工作。OS X 不会通过 PPTP 获取 IPv6 地址,并且会忽略使用 的公告radvd
,这似乎是宣布 IPv6 路由器存在的守护进程。澄清一下:我看到发送的路由器公告radvd
出现在 OS X 机器的 ppp0 界面上的 Wireshark 中。
总的来说,这不是生产也不是长期设置,只是我想开始工作的东西(否则我可能会在 ServerFault 上发帖)。所以我不在乎这样一个事实,如果机器重新启动,一半的设置会随之下降,直到手动重置。事实上,在这种情况下,这对我来说是一个加分项。
/etc/network/interfaces(片段)
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:dead:beef:f00d::2
netmask 64
endpoint 216.66.86.114
ttl 255
gateway 2001:dead:beef:f00d::1
Run Code Online (Sandbox Code Playgroud)
/etc/pptpd.conf
option /etc/ppp/pptpd-options
localip 10.0.101.1
remoteip 10.0.101.2-200
Run Code Online (Sandbox Code Playgroud)
/etc/ppp/pptpd-options
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp
ipv6 ,
Run Code Online (Sandbox Code Playgroud)
/etc/ppp/chap-secrets
ivucica pptpd THEPASSWORDHERE 10.0.101.2 10.0.101.3 10.0.101.4 10.0.101.5
Run Code Online (Sandbox Code Playgroud)
/etc/radvd.conf
interface ppp0
{
AdvSendAdvert on;
prefix 2001:dead:beef:f00d::/64
{
};
};
Run Code Online (Sandbox Code Playgroud)
我开启了ipv6转发:
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Run Code Online (Sandbox Code Playgroud)
是的,radvd
每当我重新连接/重新创建-ppp0-device 时,我都会重新启动。:-)
我错过了什么?
所以事实证明我的设置存在几个问题。让我们记录一切!
Mac OS X 并不特别喜欢基于 PPP 的 IPv6。建立连接后使用以下命令:
sudo ipconfig set ppp0 AUTOMATIC-V6
sudo route add -inet6 default -interface ppp0
Run Code Online (Sandbox Code Playgroud)
先前似乎使 OS X 坚持路由器广告;后者为 IPv6 添加了默认路由。(现在,如果只的某些-果味移动操作系统版本route
提供的-inet6
,我会成为一个快乐的木头人。)
另请注意,OS X 将忽略应该通过 IPv6 协商的任何地址,并仅设置本地地址。这可能会干扰到 OS X 的路由。
另一方面,Windows 8(所有系统!)很高兴地选择了通过 PPP 发送的地址,记录了路由器广告,并在整体上完美地配置了自己。PPTP 在 Windows 中确实很好用。
我错过的第一件事是 Hurricane Electric 的隧道代理实际上分配了两个 /64 前缀;一个应该仅供客户端使用,而另一个用于路由其他客户端(例如 PPTP 客户端)。如果您需要更多地址(或前缀!),您甚至可以获得 /48 前缀。(对于 IPv6,这意味着有更多位供“您”使用;HE 的前缀“仅”使用 48 位。因此,在自动生成的后缀(从 MAC 地址创建或什至随机创建)之前,这为您提供了更多的控制位, 启动并接管最后 64 位。理论上即使只有 64 位可用,您也可以摆动和子网,但我在 Windows 8 或 OS X 上看到过奇怪的行为,所以我不会太依赖它.)
而不是radvd
直接配置并将其作为服务器运行——只是不要全局配置它。也就是说,不要在 Debian 上将其作为服务运行。
相反,让我们按照Silmor.de 上的Konrad Rosenbaum 的示例进行操作,并radvd
在pppd
创建 PPP 接口后进行配置。
设置您的 IPv6 连接。我使用飓风电气;我已将其配置如下:
# hurricane electric tunnel
# based on: http://www.tunnelbroker.net/forums/index.php?topic=1642.0
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:UUUU:VVVV::2
netmask 64
endpoint 216.66.86.114
ttl 255
gateway 2001:470:UUUU:VVVV::1
## from http://lightyearsoftware.com/2011/02/configure-debian-as-an-ipv6-router/
# I did not set up the routing of the /64 nor the /48 prefix here, but
# this would ordinarily do it.
#up ip link set mtu 1280 dev he-ipv6
#up route -6 add 2001:470:WWWW:VVVV::/64 he-ipv6
# Note that Hurricane Electric provides different /64 IPv6 prefixes
# for the client (UUUU:VVVV) and routing (WWWW:VVVV).
# And the /48 prefix is very different altogether.
Run Code Online (Sandbox Code Playgroud)安装ppt。(当然,请注意 PPTP 作为协议的不安全性,并考虑使用 OpenVPN 或其他一些替代方案。)
编辑 /etc/ppp/pptpd-options
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp
ipv6 ::1,::2
Run Code Online (Sandbox Code Playgroud)
请注意,最后一行与我的问题中的文本不同。您正在分配一些静态地址,这些地址可能会被您的客户端操作系统尊重或不被尊重。(OS X 似乎忽略它们,但 Windows 使用它们。)
为 PPTP 创建用户。第二列过滤器基于 中的name
参数pptpd-options
。编辑/etc/ppp/chap-secrets
:
ivucica pptpd AHyperSecretPasswordInPlainText 10.0.101.2 10.0.101.3 10.0.101.4
Run Code Online (Sandbox Code Playgroud)
您应该能够替换地址*
而不是手动列出它们。我没有试过。
为您的 PPTP 用户分配一些 IPv6 前缀。注意:这仅由我将在下面列出的脚本使用,该脚本源自 Konrad 的脚本。
编辑/etc/ppp/ipv6-addr
:
ivucica:1234
littlejohnny:1235
Run Code Online (Sandbox Code Playgroud)添加新文件/etc/ppp/ipv6-up.d/setupradvd
:
#!/bin/bash
ADDR=$(grep ^$PEERNAME: /etc/ppp/ipv6-addr |cut -f 2 -d :)
if test x$ADDR == x ; then
echo "No IPv6 address found for user $PEERNAME"
exit 0
fi
# We'll assign the user a /64 prefix.
# I'm using a Hurricane Electric-assigned /48 prefix.
# Operating systems seem to expect to be able to assign the
# last 64 bits of the address (based on ethernet MAC address
# or some other identifier). So try to obtain a /48 prefix.
# If you only have a /64 bit prefix, you can try to assign a
# /80 prefix to your remote users. It works, but I'm only now
# trying to enable these users to have routing.
USERPREFIX=2001:470:XXXX:$ADDR
USERPREFIXSIZE=64
USERPREFIXOURADDRESS=1
USERPREFIXUSERADDRESS=2
# Add the address for your side of the tunnel to the PPP device.
ifconfig $IFNAME add $USERPREFIX::$USERPREFIXOURADDRESS/$USERPREFIXSIZE
# establish new route
# (when a packet is directed toward user subnet, send it to user ip)
route -6 add $USERPREFIX::/$USERPREFIXSIZE gw $USERPREFIX::$USERPREFIXUSERADDRESS
#generate radvd config
RAP=/etc/ppp/ipv6-radvd/$IFNAME
RA=$RAP.conf
echo interface $IFNAME >$RA
echo '{ AdvSendAdvert on; MinRtrAdvInterval 5; MaxRtrAdvInterval 100;' >>$RA
echo ' prefix' $USERPREFIX::/$USERPREFIXSIZE '{};' >>$RA
# Instead of your DNS...
#echo ' RDNSS $USERPREFIX::$USERPREFIXOURADDRESS {}; };' >>$RA
# ...try assigning the Google DNS :)
echo ' RDNSS 2001:4860:4860::8888 {}; }; ' >> $RA
# The creation of radvd configuration could be more readable, but whatever.
# Start radvd
/usr/sbin/radvd -C $RA -p $RAP.pid
exit 0
Run Code Online (Sandbox Code Playgroud)
不要忘记 chmod 脚本以使其可执行pppd
:
chmod 755 /etc/ppp/ipv6-up.d/setupradvd
Run Code Online (Sandbox Code Playgroud)该脚本将radvd
配置喷入/etc/ppp/ipv6-radvd/
……确保文件夹存在!
mkdir /etc/ppp/ipv6-radvd
Run Code Online (Sandbox Code Playgroud)还添加/etc/ppp/ipv6-down.d/setupradvd
(并使其可执行!) -从 Konrad逐字逐句地获取:
#!/bin/bash
RAP=/etc/ppp/ipv6-radvd/$IFNAME
kill `cat $RAP.pid` || true
rm -f $RAP.*
Run Code Online (Sandbox Code Playgroud)
和
chmod 755 /etc/ppp/ipv6-down.d/setupradvd
Run Code Online (Sandbox Code Playgroud)我还没有测试过使用 DHCPv6 来分发路由信息、地址或 DNS 信息,特别是因为rtadv
应该履行这些角色。这也无济于事,因为从 Mountain Lion 开始,OS X 仍然没有附带 DHCPv6 客户端(可能是故意的;大多数 IPv6 专家中十分之九的牙医都认为 DHCP 是邪恶的)。
再次请注意Michael 对 PPTP 安全性的评论;考虑在生产中使用 OpenVPN。
是的,Konrad Rosenbaum 也有一个关于 IPv6 over OpenVPN的很好的教程。:-)
归档时间: |
|
查看次数: |
5427 次 |
最近记录: |