NURO光で bundle install できない問題を解決した話 （DNS設定変更）

## 発生した問題
dockerの環境で、railsをbundle installしたらエラーに。

```
/app# bundle install

Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 13.2.1
[省略]
Using activejob 7.0.8.7
--- ERROR REPORT TEMPLATE -------------------------------------------------------

NoMethodError: undefined method `size' for nil:NilClass
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader/entry.rb:139:in `read'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:365:in `block in digest'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:362:in `each'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:362:in `digest'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:664:in `verify_entry'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:683:in `block in verify_files'
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader.rb:65:in `each'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:682:in `verify_files'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:613:in `block (2 levels) in verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package/tar_reader.rb:27:in `new'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:610:in `block in verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `open'
  /usr/local/lib/ruby/3.2.0/rubygems/package/file_source.rb:29:in `with_read_io'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:609:in `verify'
  /usr/local/lib/ruby/3.2.0/rubygems/package.rb:590:in `spec'
  /usr/local/lib/ruby/3.2.0/rubygems/installer.rb:287:in `spec'
  /usr/local/lib/ruby/3.2.0/bundler/rubygems_gem_installer.rb:97:in `spec'
  /usr/local/lib/ruby/3.2.0/bundler/source/rubygems.rb:183:in `install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/gem_installer.rb:54:in `install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /usr/local/lib/ruby/3.2.0/bundler/installer/parallel_installer.rb:155:in `do_install'
  /usr/local/lib/ruby/3.2.0/bundler/installer/parallel_installer.rb:146:in `block in worker_pool'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:62:in `apply_func'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:57:in `block in process_queue'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:54:in `loop'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:54:in `process_queue'
  /usr/local/lib/ruby/3.2.0/bundler/worker.rb:90:in `block (2 levels) in create_threads'

```

どうやら、Bundler が gem をインストールする際に .gem パッケージの展開・検証をしているときに発生しているようです。

## 試したこと
dockerのボリュームを消したり、イメージを消したりしましたが、解決せず。

キャッシュを消して、wifiをポケットwifiに繋ぎ変えたらbundle installができました。
```
rm -rf vendor/cache
rm -rf /usr/local/bundle/cache
```

NURO光の工事をしてから初めてbundle installしたので、原因はネットワークか？
って気づくのにめちゃくちゃ時間かかりました。
レアケースかもしれないですが、記事が見つからなかったので解決策を残します。

## 解決方法
### **1. MacのDNS設定を変更**
`System Preferences` (系統設定) -> `Network` (ネットワーク) -> 接続中のWi-Fi -> `Advanced` (詳細) -> `DNS`

#### **設定したDNSサーバ**
- `192.168.1.1`  （NURO光ルータのローカルDNS）
- `8.8.8.8`  （Google Public DNS）
- `8.8.4.4`  （Google Public DNS）

#### **変更前に記載されていたDNS**
- `192.168.1.1`  （NURO光ルータのローカルDNS）
- `240d:f:xxxx:xxxx::xxxx` （NURO光のIPv6 DNSと思われる）

これを削除し、新しく `8.8.8.8` を追加しました。

### **2. `bundle install` を再試行**
DNS設定を変更した後、`bundle install` を実行すると、正常にGemがインストールされました。

## なぜこれで解決したのか
NURO光のデフォルトDNSがIPv6向けのものだったため、IPv4でのネットワーク接続に問題が起きていた可能性が高いらしいです。

`8.8.8.8` や `8.8.4.4` を追加することでGoogleのパブリックDNSを利用し、IPv4のネットワークも正常に活用できるようになったと思われます。