Rabbit Slide Show

Tokyo Debian Local Meeting Presentation 2025/03

2025-03-15

Description

Text

Page: 1

Debian Installerが
ミラー選択で
刺さる問題をどうにかする
Debian installerとnetcfgとIPv6の話
Kentaro Hayashi
ClearCode Inc.
2025年3月 東京エリア・関西合同Debian勉強会

Page: 2

スライドは
Rabbit Slide Showにて公開済み
Debian Installerがミラー選択で刺さる問題を解決する
https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-d-i-netcfg-202503

Page: 3

本日の内容
問題に気づいたきっかけ
Debian Installerの問題の切り分け
どう回避するのか
修正するにはどうするか

Page: 4

本日の内容
問題に気づいたきっかけ
Debian Installerの問題の切り分け
どう回避するのか
修正するにはどうするか

Page: 5

問題に気づいたきっかけ(1)
mozc: New upstream release available: 2.30.5544.102
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085173#40
😭
Mozcが2.28.4715.102+dfsg-2.3から2年くらい更新できてなかった問題
2024年11月 Debian勉強会「より新しい Mozc を Debian でも使いたい」
https://tokyodebian-team.pages.debian.net/2024-11.html

Page: 6

問題に気づいたきっかけ(2)
Mozc 2.29.5160.102+dfsg-1になんやかんやあって更新した
🎉
各種デスクトップ環境で問題ないか確認するのにインストールが必要

Page: 7

実際にどのようなことが起きるか
Weekly ISOイメージでGraphical Install
ベースシステムインストール後、Debianアーカイブミラーとして
deb.debian.orgを選択
😱
「ミラーを検査しています…」の画面から進まない

Page: 8

ミラー選択で刺さったときの
スクリーンショット

Page: 9

本日の内容
問題に気づいたきっかけ
Debian Installerの問題の切り分け
どう回避するのか
修正するにはどうするか

Page: 10

Debian Installerの問題の切り分け
Debian Installer(d-i)の内部では何が発生しているのか?
Ctrl+Alt+F2でコンソールに切り替え
pingが通るか確認してみる

Page: 11

ネットワークの疎通状況の
スクリーンショット

Page: 12

ネットワークの疎通状況
ping -4 deb.debian.org
✅ IPv4では疎通できる
ping -6 deb.debian.org
❌ IPv6では疎通できない
wget http://deb.debian.org (–connection-timeoutあり)
IPv6を優先して、IPv4へとフォールバックする挙動

Page: 13

d-iを構成する関連コンポーネント
https://salsa.debian.org/installer-team/
netcfg
ネットワークの設定
choose-mirror
ミラーの選択をユーザーにさせる

Page: 14

choose-mirrorの内部実装の前提
https://salsa.debian.org/installer-team/choose-mirror/-/blob/master/
choose-mirror.c?ref_type=heads#L274-295/
前提条件: choose-mirrorではwgetを使って選択したミラーからファイルを取
得し検証を実施する

Page: 15

wgetのオプションを制御する
コードの抜粋
char *get_wget_options(void) {
char *options;
if (wget_is_gnu()) {
options = strdup("--no-verbose");
if (strcasecmp(protocol, "https") == 0) {
debconf_get(debconf, "debian-installer/allow_unauthenticated_ssl");
if (strcmp(debconf->value, "true") == 0)
options = append(options, " --no-check-certificate");
}
} else {
if (strcasecmp(protocol, "https") == 0)
/* We shouldn't normally get here, but let's make it
* easier to debug in case somebody has hit us over
* the head with preseeding.
*/
fputs("busybox wget does not support https\n", stderr);
options = strdup("-q");
}
}
return options;

Page: 16

wgetのオプションを制御する
get_wget_options()の問題
get_wget_options()ではタイムアウトオプションを指定していない
ネットワークの問題はない前提
疎通できない場合、ただひたすら待つ
wgetはIPv6から優先的に接続を試みる
💀
IPv6で疎通できない場合、ただひたすら待つ

Page: 17

本日の内容
問題に気づいたきっかけ
Debian Installerの問題の切り分け
どう回避するのか
修正するにはどうするか

Page: 18

どう回避するのか
choose-mirrorでできること
wget –prefer-family=IPv4を指定したらIPv4を優先できる
wget –connect-timeoutでタイムアウトしたらフォールバックさせる
いずれも根本解決ではない

Page: 19

既知の問題だったりしないか?
https://www.virtualbox.org/ticket/22153
Bridge mode with WiFi interface: IPv6 does not work via router
VirtualBoxでブリッジ接続した場合に疎通できない問題がある

Page: 20

ひとまずの回避策
❌VirtualBox + ブリッジ接続(WiFi)
✅VirtualBox + NAT接続(WiFi)

Page: 21

VirtualBox + ブリッジ接続環境での
回避策
https://www.virtualbox.org/ticket/22153
Bridge mode with WiFi interface: IPv6 does not work via router
VirtualBoxでブリッジ接続した場合に疎通できない問題がある
ルーターのグローバルアドレスへpingする

Page: 22

回避策に関するデモ
インストーラーを起動し回避策(ping)を試す
d-i のmasterからビルドしたmini.iso (netboot-gtk)

Page: 23

本日の内容
問題に気づいたきっかけ
Debian Installerの問題の切り分け
どう回避するのか
修正するにはどうするか

Page: 24

修正するにはどうするか
choose-mirrorで頑張るのは筋が悪い
netcfgで次のような対策をとる
グローバルアドレスを頑張って取得して、pingする
ip -6 routeやip -6 neighの結果を抽出して対処
🤔
複数のネットワークアダプタ有効にされていたりすると面倒

Page: 25

修正版に関するデモ
インストーラーを起動し修正版(ping)を試す
d-i のmasterからビルドしたmini.iso (netboot-gtk)

Page: 26

さいごに
有線LANでのインストールが安定
WiFi環境でDebianインストールは
VirtualBox + ブリッジ接続は問題あり
VirtualBox + NAT接続が(現状)推奨
or IPv4のみのミラー(ftp.jp.debian.org)を選択するとよい

Other slides

DebConf20 DebConf20
2020-08-25