質問: debianpptpを介してipv6トラフィックをハリケーンエレクトリックipv6トンネルにルーティングする debianマシンでハリケーンエレクトリックのサービスを使用してトンネルを設定しました。それは問題なく動作しているようです。私はできる ping6 ipv6.google.comそしてそれをlinksで開きます。また、マシンにpptpデーモンをセットアップしました(はい、pptpは安全ではありません。これは、主に実験目的です。 )mac osxを使用してこのpptpデーモンに接続すると、ipv4は正常に機能します。ただし、ipv6トラフィックのルーティングを機能させることができないようです。 os xはpptpを介してipv6アドレスを取得せず、ipv6ルーターの存在をアナウンスするためのデーモンのように見えるradvdを使用したアナウンスを無視します。明確にするために:radvdによって送信されたルーターアナウンスがosxマシンの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 /etc/pptpd.confoption /etc/ppp/pptpd-options localip 10.0.101.1 remoteip 10.0.101.2-200 / etc/ppp/pptpd-optionsname pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp nodefaultroute lock nobsdcomp ipv6 , / etc/ppp/chap-secretsivucica pptpd thepasswordhere 10.0.101.2 10.0.101.3 10.0.101.4 10.0.101.5 /etc/radvd.confinterface ppp0 { advsendadvert on; prefix 2001:dead:beef:f00d::/64 { }; }; 私はipv6転送をオンにしました:echo 1 > /proc/sys/net/ipv6/conf/all/forwarding はい、ppp0デバイスを再接続/再作成するたびにradvdを再起動しました。 :-)何が足りないのですか?
回答: したがって、セットアップにいくつかの問題があったことがわかりました。すべてを文書化しましょう!クライアントosmac os xは、ipv6 overpppを特に好みません。接続が確立されたら、以下を使用します。sudo ipconfig set ppp0 automatic-v6 sudo route add -inet6 default -interface ppp0 以前は、osxをルーターのアドバタイズに準拠させているようです。後者は、ipv6のデフォルトルートを追加します。 (今、routeの特定のフルーティーなモバイルオペレーティングシステムバージョンだけが-inet6を提供した場合、私は幸せな木製の少年になるでしょう。)また、os xは、ipv6を介してネゴシエートされるはずのアドレスをすべて無視し、ローカルアドレスのみを設定することに注意してください。これにより、osxへのルーティングが妨げられる可能性があります。一方、windows 8(すべてのシステムの!)は、pppを介して送信されたアドレスを問題なく取得し、ルーターアドバタイズメントに注意を払い、全体的に問題なく構成されています。 pptpはwindowsで本当にうまく機能します。サーバ私が最初に見逃したのは、ハリケーンエレクトリックのトンネルブローカーが実際に2つの/ 64プレフィックスを割り当てていることでした。 1つはクライアント専用で、もう1つは追加のクライアント(pptpクライアントなど)のルーティングを目的としています。さらにアドレス(またはプレフィックス!)が必要な場合は、次のことができます。/48プレフィックスを取得することもできます(ipv6では、これは「あなたの」使用のためのビットが多いことを意味します。heのプレフィックスは「48ビットのみ」を取ります。したがって、自動生成されたサフィックスの前に制御するビットがさらにいくつか提供されます。 macアドレス、またはランダムに作成されたもので、最後の64ビットを開始して引き継ぎます。理論的には、64ビットの余裕があっても小刻みに動くことができますが、windows8またはosxで奇妙な動作が見られたので、そうしませんでした。あまり頼りにしないでください。)radvdを直接構成してサーバーとして実行する代わりに、グローバルに構成しないでください。つまり、debianでサービスとして実行しないでください。代わりに、silmor.deで konrad rosenbaumの例 に従い、radvdがpppインターフェイスを作成した後にpppdを構成します。 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. pptpdをインストールします。 (もちろん、プロトコルとしての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 最後の行は私の質問のテキストとは異なることに注意してください。クライアントosによって尊重されるかどうかに関係なく、いくつかの静的アドレスを割り当てています。 (os xはそれらを無視しているようですが、windowsはそれらを使用します。) pptpのユーザーを作成します。 2番目の列は、pptpd-optionsのname引数に基づいてフィルタリングします。編集/etc/ppp/chap-secrets: ivucica pptpd ahypersecretpasswordinplaintext 10.0.101.2 10.0.101.3 10.0.101.4 手動でリストする代わりに、アドレスを*に置き換えることができるはずです。私はそれを試しませんでした。 pptpユーザーにいくつかのipv6プレフィックスを割り当てます。注:これは、konradのスクリプトから派生した以下にリストするスクリプトによってのみ使用されます。 編集/etc/ppp/ipv6-addr: ivucica:1234 littlejohnny:1235 新しいファイルを追加する/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 スクリプトをchmodして、pppdで実行可能にすることを忘れないでください。 chmod 755 /etc/ppp/ipv6-up.d/setupradvd スクリプトはradvd構成を/etc/ppp/ipv6-radvd/に吐き出します...フォルダーが存在することを確認してください! mkdir /etc/ppp/ipv6-radvd また、/etc/ppp/ipv6-down.d/setupradvdを追加します(そして実行可能にします!)-逐語的に取得 konradから : #!/bin/bash rap=/etc/ppp/ipv6-radvd/$ifname kill `cat $rap.pid` || true rm -f $rap.* そして chmod 755 /etc/ppp/ipv6-down.d/setupradvd 特にrtadvshouldがこれらの役割を果たす必要があるため、dhcpv6を使用してルーティング情報、アドレス、またはdns情報を配布することはテストしていません。また、mountain lionの時点では、 os xにはまだdhcpv6クライアントが付属していません (おそらく意図的に; 歯科医の10人に9人 ipv6の専門家のほとんどは、dhcpが悪であることに同意しています)。繰り返しになりますが、 pptpセキュリティ に関するmichaelのコメント;本番環境でopenvpnを使用することを検討してください。はい、konrad rosenbaumにも openvpnを介したipv6に関する素晴らしいチュートリアル があります。 :-)