ホーム » 「IPv6」タグがついた投稿

タグアーカイブ: IPv6

システム

最近の投稿

アーカイブ

カテゴリー

なんちゃってIPv6でトラブル

自宅では、IPv6 でインターネットにつながらない状態の癖に、IPv6 の運用実験として色々な設定をしている。

しかし、最近繋がらないページなどが時々出ていて、どうも IPv6 サイトが原因だと予測はしていた。

今回、病院に入っていて家に不在の時に限って、ママがゲームサイトに繋がらないと文句を言ってきた。今までは動いていたのだが、ゲームサイトにも IPv6 化が進んでいる中で、ゲームサービスが IPv6対応になったんだろうな。おかげで IPv4 しかつながらないネットワーク環境のくせに、スマホがインターネットに IPv6 で繋ごうとするのが原因。

自宅では、IPv6 対応のために、DHCPサーバで IPv6 アドレス配布の設定をしていた。しかしこれが誤解のもと。実は IPv6 アドレスの自動設定機能の radvd を動かしていて、この設定は動いていないと思っていたが、実は radvd の設定が生きていた。

このため、DHCPv6の設定を消しても、radvd が相変わらずスマホに IPv6 ルータ情報をアナウンスするため、IPv6 で外に繋がらない状態となっていた。

ということで、/etc/radvd.conf を別名で残しつつ、”sudo aptitude purge radvd” で radvd の機能を止めた。

he.net を使った IPv6 トンネル

IPv6 の導入の実験として、IPv6トンネルを無料で利用できる he.net を使って設定してみた。

現在、自宅サーバ自体を IPv6 対応することはできたけど、サーバ配下のパソコンもこのトンネルを使うようにできていないので、まだ目標の半分。

he.netへの登録

Hurricane Electric(he.net)の接続方法を紹介しているサイトの記事を見ながら、he.net に利用者登録をして、トンネルの割り当てを受ける。

トンネル起動の設定

he.netのサイトで、上記の登録が終わると、”Example of Configuration”のタブで、OSを選べば、接続するための設定ファイルのサンプルが表示される。

ただ、Debian/Ubuntu を選ぶと、/etc/network/interfaces 用の設定が示された。自宅サーバは systemd を使っているので、このままでは使えない。ほかのサイトで調べて、最終的に以下に落ち着いた。

(( /etc/systemd/system/he-ipv6.service ))
[Unit]
Description=he.net IPv6 tunnel
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/ip tunnel add he-ipv6 mode sit remote 74.82.xx.xx local 192.168.yy.yy ttl 255
ExecStart=/bin/ip link set he-ipv6 up mtu 1480
ExecStartPost=/bin/sleep 0.3 ; /bin/ip -6 route add ::/0 dev he-ipv6
Execstop=-/bin/ip -6 route del ::/0 dev he-ipv6
ExecStop=/bin/ip link set he-ipv6 down
ExecStop=/bin/ip tunnel del he-ipv6

[Install]
WantedBy=multi-user.target

systemd の サービス として設定するために、he-ipv6.service ファイルを作成する。

systemd ではサービスの処理を起動/停止するためのコマンドは、ExecStart / ExecStop に記載する。

“ip tunnel add” の remote 欄は、割り当てられたhe.net のIPアドレス、localには自分のグローバルアドレスを指定する。ただし、自宅サイトはルータ内にサーバがあるので、ポートフォワードされたプライベートのアドレスを指定する。

トンネル開通後のIPv6のデフォルトゲートウェイを設定する “ip -6 route add” の実行は、少し間を置かないと失敗するようなので、若干の sleep を挟んだ。ExecStart 行は、通常1行1コマンドしか使えないが、ExecStartPost は、複数コマンドが書けるので、こういう時には便利。

ExecStop でのデフォルトゲートウェイ削除の処理 “ip -6 route del ::/0″では、前述のsleepが無い場合、エラーが出ることがあるので、コマンドの先頭に”-“をつけエラーで止まらないようにしておいた。

# サービスの登録
$ sudo systemctl enable he-ipv6.service
# サービスの起動
$ sudo systemctl start he-ipv6.service
# サービスの停止
$ sudo systemctl stop he-ipv6.service

ただし、後にも述べるように常時 IPv6 化は現状では問題があるので、systemctl enable は行わないでおく。

RAの設定(ルーティング広告)

ルータ周りの他のパソコンがグローバルなIPv6アドレスが割り当てられるように、RAの設定を行う。実は、リンクローカル”fe80::”での自宅内IPv6ネットワークの運用では、グローバルIPv6が無いので RA が不要だけど、IPv6の DNS をアナウンスが必要なので、今までは DHCPv6 を使っていた。でも、radvd.conf の設定を調べると、アナウンスするプレフィックス設定の欄を “prefix ::/64” と記載すれば、”fe80::”のリンクローカルはアナウンスされないようなので、radvd に変更。”RDNSS”の欄で、自宅内 IPv6 対応なDNSサーバを指定することで、IPv6経由で名前解決をできるようにしておく。

interface eth0
{
   AdvSendAdvert on;
   AdvManagedFlag on;
   AdvOtherConfigFlag on;
   
   # 非リンクローカルなアドレスだけアナウンス
   prefix ::/64
   {
      AdvOnLink on;
      AdvAutonomous on;
      AdvRouterAddr on;
   };

   # DNSは、リンクローカルなDNSサーバをアナウンス
   RDNSS fe80::xxxx:xxxx:xxxx:xxxx
   {
      AdvRDNSSLifetime 30;
   };
   DNSSL example.jp {
      AdvDNSSLLifetime 30;
   };
};

この段階で、IPv6 のファイアウォールの設定(ferm)の設定が間違っているのが判明したので、別途修正。

常時IPv6対外接続は問題あり

よく、IPv6 を使うとネット通信速度が速くなると言われているけど、現時点では IPv6 利用者が少ないので、上流が詰まらないだけ。今回のような、IPv4 を使ったIPv6トンネリングでは、IPv4 以上には速くなるはずもないし、IPv6 も無料でサービスを提供している he.net では、上流の輻輳もあるだろうし高速通信も期待できない。

このため、上記の IPv6 接続は単なる自分の勉強用で、必要な時だけ”systemctl start he-ipv6.service”でトンネル接続させる予定。。当面、常時 IPv6 運用はしないだろう。

SambaがWindowsのネットワークから見えない

サーバが、Windows10のエクスプローラのネットワークから見えない。

どうも、Windows側で、「Windowsの機能の有効化または無効化」で、”SMB 1.0/CIFS Client” の設定が必要みたいで、設定したけど、また見えなくなった。

参考となる記事を探していたけど、IPv6 の問題が指摘されていたものがあった。自宅では、IPv6 が一応使えるようにしてあるし、設定を見直し。

(( /etc/samba/smb.conf ))
[global]
  # CIFS標準の SMB1 では見えないようなので、SMB3 を使えるようにする
  client max protocol = SMB3
  # IPv6 からのアクセスを受け付けるようにする。
  hosts allow = 192.0.0.0/8 192.168.0.0/16 fe80::/10
  :
$ sudo /etc/init.d/smbd restart ; sudo /etc/init.d/nmbd restart

IPv6 用の hosts allow を加えたら、Windows から サーバが見えるようになった。

IPv6パススルーをOFF

自宅内では、外部とはつながっていないけど、IPv6 の管理を行っていて、それなりにうまく動いていると思っていた。(自宅内のみの、IPv6 DNS , DHCPv6 , ssh) しかし、久々に持ち帰った PC が、自宅サーバに繋がらない。原因は、根っこの自宅ルータが、IPv6 機能を持っていて RA 情報を流してくれるため、DHCPv6 を動かしているのに無視されている。

根っこのルータの配下につながっている、Buffalo のルータの IPv6 パススルーの設定をOFF にした。これで、自宅サーバの DHCPv6 情報を使ってくれるようになった。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト