IPv6またはIPv6を大衆に構成する

画像



更新:これらはすべて長い間書かれているため、スクリプトを使用する意味は大きく失われ、歴史のために残されています。

すべては、inadynを使用して設定できます。

構成ファイルの構文は次のようなものです。



dyndns_system ipv6tb@he.net

ユーザー名es1125cc87b23bfe1f3ba8923ca7f2ee

パスワードPASS-WORD

エイリアス10220



HabrahabrでのIPv6の設定に関する記事は既にあります 。たとえばherehereです。 そしてここ

私自身はversion6を読むことをお勧めします。これが必要な理由の例があります。



トンネルを上げるプロセスをより普遍的で自動化することにしました...

このために、2つの簡単なスクリプトを書きましたが、...、順番に見てみましょう。



トンネルブローカーとして、 ハリケーンエレクトリックを使用しています。



ハリケーンエレクトリックでは、最大5つのトンネルを作成し、

異なるOSでトンネルを上げるためのコマンドの既製の例を自動的に生成できる

URLでIPv4アドレスを更新できます。 (

独自のDNSサーバーがあります。



直接静的IPを持っている場合、スクリプトを書くことはおそらくないでしょうが、インターフェイスを取得して満足するだけです。

しかし、悲しいかな、私は直接動的IPを持っているので、直接静的IPを購入する方法はありません(プロバイダーはそれらを販売しません)。つまり、さらに2つのタスクがあります。



1)IPv4を置き換える場合、上げられたトンネルの終わりにIPv4を更新する必要があります

2)IPv4を置き換える場合、ブローカーにその変更を通知する必要があります。



さて、別のタスクとして、異なるLinuxシステムでIPv4ユニバーサルを変更する場合にトンネルを持ち上げて更新することは、そうでなければ、異なるシステムでのネットワーク設定のさまざまな構成にうんざりします。



特にENGに関するスクリプトにコメントを残しました。



最初のスクリプトは、IPv6トンネルを作成または削除します。 (開始/停止コマンドを使用)



変数を入力するための情報は、ページでブローカーとのトンネルを作成した後に取得できます



----------------- ipv6tunnelの変数の説明-------------------------- --------------------------------



#Name Tunnel-トンネルの名前。 どれでもかまいません。

HE_IPv6 = "he-ipv6"



#Server IPv4アドレス:-トンネルサーバーのIPアドレス。

IPV4_S = "216.66.80.90"



#クライアントIPv6アドレス:-トンネルの終わりのIPv6アドレス。

IPV6_C = "2001:470:aaaa:ccc :: 2/64"



#ダイレクトIPとのインターフェース

INT_WAN = "ppp0"



----------------- ipv6tunnel-script-start ---------------------------- --------------------------------------------

 #!/bin/bash # Create 6in4 tunnel endpoint script # for use with http://www.tunnelbroker.com (Hurricane Electric) # C 2010 icCE aka TuLiss (tuliss@gmail.com) # Distributed under the terms of the GNU General Public License v3 #Name Tunnel HE_IPv6="he-ipv6" #Server IPv4 address: IPV4_S="" #Client IPv6 address: IPV6_C="" #Interface Wan INT_WAN="ppp0" #Tunel ttl TUN_TTL="255" DESC="6in4" #WAN IP WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}') case "$1" in start) echo "Starting $DESC tunnel" ifconfig $HE_IPv6 &>/dev/null if [ $? -eq 0 ]; then echo "Tunnel $HE_IPv6 already exists" exit 1 fi ip tunnel add $HE_IPv6 mode sit remote $IPV4_S local $WAN_IP ttl $TUN_TTL ip link set $HE_IPv6 up ip addr add $IPV6_C dev $HE_IPv6 ip route add ::/0 dev $HE_IPv6 ;; stop) echo "Stopping $DESC tunnel" ifconfig $HE_IPv6 &>/dev/null if [ $? -ne 0 ]; then echo "Tunnel $HE_IPv6 does not exist" exit 1 fi ip link set $HE_IPv6 down ip tunnel del $HE_IPv6 ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 esac exit 0 
      





#!/bin/bash # Create 6in4 tunnel endpoint script # for use with http://www.tunnelbroker.com (Hurricane Electric) # C 2010 icCE aka TuLiss (tuliss@gmail.com) # Distributed under the terms of the GNU General Public License v3 #Name Tunnel HE_IPv6="he-ipv6" #Server IPv4 address: IPV4_S="" #Client IPv6 address: IPV6_C="" #Interface Wan INT_WAN="ppp0" #Tunel ttl TUN_TTL="255" DESC="6in4" #WAN IP WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}') case "$1" in start) echo "Starting $DESC tunnel" ifconfig $HE_IPv6 &>/dev/null if [ $? -eq 0 ]; then echo "Tunnel $HE_IPv6 already exists" exit 1 fi ip tunnel add $HE_IPv6 mode sit remote $IPV4_S local $WAN_IP ttl $TUN_TTL ip link set $HE_IPv6 up ip addr add $IPV6_C dev $HE_IPv6 ip route add ::/0 dev $HE_IPv6 ;; stop) echo "Stopping $DESC tunnel" ifconfig $HE_IPv6 &>/dev/null if [ $? -ne 0 ]; then echo "Tunnel $HE_IPv6 does not exist" exit 1 fi ip link set $HE_IPv6 down ip tunnel del $HE_IPv6 ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 esac exit 0







----------------- ipv6tunnel-end-script ---------------------------- --------------------------------------------



2番目のスクリプト。新しいIPv4アドレスをブローカーに転送し、トンネルの終わりに更新できます。



----------------- ipv6updateの変数の説明-------------------------- --------------------------------



IPV4ADDR-動的IPがあるため、AUTOのままにします



MD5PASS-ブローカーページをmd5の形式で入力するときに使用されるパスワード。

パスワードをmd5に変換するには、次のコマンドを実行します。

echo -n 'yourpassword' | md5sum、結果の値。md5のパスワードになります。



USERID-ユーザーID。ブローカーWebサイトにアクセスするためのユーザーログインと混同しないでください。 IDは数字と文字の長いシーケンスであり、<Name:>の直後のページで確認できます。



GTUNID-トンネルID。「グローバルトンネルID」フィールドのトンネル設定ページに示されます



INT_WAN-直接IPとのインターフェース。



#Name Tunnel-トンネルの名前。 どれでもかまいません。 最初のスクリプトの名前と一致する必要があります。

HE_IPv6 = "he-ipv6"



----------------- start-script-ipv6update ---------------------------- -------------------------------------------

 #!/bin/bash # 6in4 tunnel endpoint update script # for use with http://www.tunnelbroker.com (Hurricane Electric) # C 2010 icCE aka TuLiss (tuliss@gmail.com) # Distributed under the terms of the GNU General Public License v3 #IPV4ADDR WHERE: # * set ipv4b='AUTO' if you want to set the variable to the requesting client's IP address. # * set ipv4b='your_public_ipv4_address' if you want to manully provide the address. IPV4ADDR="AUTO" #The MD5 Hash of your password # * Try echo -n 'yourpassword' | md5sum if you need to produce the MD5 Hash of your password MD5PASS="" #The UserID from the main page of the tunnelbroker (not your username) USERID="" #The Global Tunnel ID from the tunnel_details page GTUNID="" #Name IPV6 tunnel HE_IPv6="he-ipv6" #Interface Wan INT_WAN="ppp0" WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}') output=$(curl -ksSm30 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$IPV4ADDR&pass=$MD5PASS&user_id=$USERID&tunnel_id=$GTUNID") if [ "$output" == "That IPv4 endpoint is already in use." ]; then echo "That IPv4 endpoint is already in use. $WAN_IP" elif [ "$output" == "Your tunnel endpoint has been updated to: $WAN_IP" ]; then ip tunnel change $HE_IPv6 local $WAN_IP echo "$output" else echo "Houston, We've Got a Problem!" fi 
      





#!/bin/bash # 6in4 tunnel endpoint update script # for use with http://www.tunnelbroker.com (Hurricane Electric) # C 2010 icCE aka TuLiss (tuliss@gmail.com) # Distributed under the terms of the GNU General Public License v3 #IPV4ADDR WHERE: # * set ipv4b='AUTO' if you want to set the variable to the requesting client's IP address. # * set ipv4b='your_public_ipv4_address' if you want to manully provide the address. IPV4ADDR="AUTO" #The MD5 Hash of your password # * Try echo -n 'yourpassword' | md5sum if you need to produce the MD5 Hash of your password MD5PASS="" #The UserID from the main page of the tunnelbroker (not your username) USERID="" #The Global Tunnel ID from the tunnel_details page GTUNID="" #Name IPV6 tunnel HE_IPv6="he-ipv6" #Interface Wan INT_WAN="ppp0" WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}') output=$(curl -ksSm30 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=$IPV4ADDR&pass=$MD5PASS&user_id=$USERID&tunnel_id=$GTUNID") if [ "$output" == "That IPv4 endpoint is already in use." ]; then echo "That IPv4 endpoint is already in use. $WAN_IP" elif [ "$output" == "Your tunnel endpoint has been updated to: $WAN_IP" ]; then ip tunnel change $HE_IPv6 local $WAN_IP echo "$output" else echo "Houston, We've Got a Problem!" fi







----------------- end-script-ipv6update ---------------------------- -------------------------------------------



スクリプトを保存し、実行可能にします。



最初のスクリプトを実行します。

#./ipv6tunnel start



すべてが順調であれば、次のように表示されます。

6in4トンネルを開始しています。



ifconfigは、he-ipv6トンネルが現れたかどうかを確認します。



he-ipv6リンクカプセル化:IPv6-in-IPv4

inet6 addr:fe80 :: xxxx:yyyy / 128範囲:リンク

inet6 addr:2001:470:aaaa:ccc :: 2/64範囲:一般



2番目のスクリプトを実行してIPv4を更新します

#./ipv6update

トンネルエンドポイントが次のように更新されました:your_IP



IPv4が変更されていない場合、以下を取得します。

そのIPv4エンドポイントはすでに使用されています。 your_IP



pingを試行しています。



ping6 ipv6.google.comまたはping6 freebsd.org



答えは次のとおりです。



PING ipv6.google.com(2a00:1450:8001 :: 63)56データバイト

2a00から64バイト:1450:8001 :: 63:icmp_seq = 1 ttl = 55 time = 74.2 ms

2a00から64バイト:1450:8001 :: 63:icmp_seq = 2 ttl = 55 time = 73.1 ms



これで、ipv6tunnelスクリプトをダウンロードに追加でき、ipv6updateをcronにインストールして喜ばせることができます。

私自身に代わって、IPアドレスへの変更を監視し、ipv6updateを実行するスクリプトを記述するのが最も正しいと言います。



>>>>>>>>>>>>>>>>>>>>ボーナス<<<<<<<<<<<<<<<<<<<<



ローカルネットワークへのIPv6の配布。



デフォルトでは、ハリケーンエレクトリックトンネルブローカーは2つ/ 64のマスクサブネットを提供します:1つはルーターとブローカーのトンネルサーバー間の通信に使用され、2つ目(アドレスが中央に1つ異なる、太字で表示)はローカルネットワーク、およびウェブインターフェースでは「Routed / 64」と呼ばれます。



例の単純化のために、ルーテッドサブネットが2001:470:aaab:ccc :: / 64であり、ローカルネットワークが接続されているインターフェイスがeth1であるとします。 また、ファイアウォールがオフになっていることにも注意してください。



/etc/sysctl.confにあるIPv6ルーティングを有効にします。



net.ipv6.conf.all.forwarding = 1

net.ipv6.conf.default.forwarding = 1



そうでない場合は、手で処方してください。



次に、/ etc / sysctl.confファイルからsysctl設定をロードします



#sysctl -p



LANに配布されたサブネットのIPv6アドレスは、ルーター自体のネットワークインターフェイスにも割り当てる必要があります。 任意のアドレスを選択できます。たとえば、ルーターの場合、:: 1のアドレスがよく使用されます。 ローカルネットワーク用に発行されたセグメントを、トンネルとブローカー間の通信用のセグメントと混同しないでください。



ip addr add 2001:470:aaab:ccc :: 1/64 dev eth1



クライアントコンピューターを構成します。



インターフェイスにethv IPv6を追加します。:2



ip addr add 2001:470:aaab:ccc :: 2/64 dev eth0



IPv6ネットワークのデフォルトルートを追加します。



ip -6 ro add :: / 0 2001経由:470:aaab:ccc :: 1 dev eth0



pingゲートウェイを作成してから、インターネット上で何らかのサービスを作成しようとしています。



次のようなIPv6ルーティングテーブルを表示できます。



route -A inet6 -nまたはip -6 ro sh



Windows 7の場合、ネットワーク接続パラメーター<インターネットプロトコルバージョン6>でアドレスを指定するだけで十分です。



HART Webサイトにアクセスして、IPv6をテストすることもできます。



ローカルネットワークでIPv6を発行するプロセスを簡素化するには、radvdまたはdhcpv6を使用できます。

それらを構成するのに十分な資料がインターネット上にあります。



質問がある場合は、チャネル#ipv6-ruで質問することができます(クリック、追加のクライアントを設定する必要はありません)

チャンネル#gentoo-ruの皆さんに感謝します



All Articles