rabbit-slide-znz-lilo-20260201 2026.2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: be118b7481a59724eaec0c2983b05c80cb4d6bc2dc320666c34720d16c90352e
4
+ data.tar.gz: f8028f63273e1b10fcfaf6e3efc77c30d97b4fe75a5c845f64d3b0efd56492eb
5
+ SHA512:
6
+ metadata.gz: 6e3382450ed9918f77cd2d420b2873926973b9f0555549684a90fa2fe2b8c0596f9aae5d89ebe74922d65a02cb75726e3458f6d101bba8eb47fcba6571c49b6e
7
+ data.tar.gz: 88496481702aba00c3175e850031bc9afb3e10d097f0be7a0e8680ecd07230d5234343aabeb6bde583dbd574a5240a1694c212ba7b1600fea3b064cda80ffd1a
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1024,768
2
+ headscale-tailscale.md
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # Headscale + Tailscale に移行中
2
+
3
+ [LILO&東海道らぐオフラインミーティング 2026-02-01](https://lilo.connpass.com/event/381726/)の発表資料です。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-lilo-20260201
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20260201.gem
data/README.md~ ADDED
@@ -0,0 +1,24 @@
1
+ # headsacle+tailscale
2
+
3
+ TODO: スライドの説明
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-lilo-20260201
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-lilo-20260201.gem
24
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: lilo-20260201
3
+ base_name: headscale-tailscale
4
+ tags:
5
+ - linux
6
+ presentation_date: '2026-02-01'
7
+ presentation_start_time:
8
+ presentation_end_time:
9
+ version: 2026.2.1.0
10
+ licenses: []
11
+ slideshare_id: headscale-tailscale-at-2026-02-01
12
+ speaker_deck_id: headscale-plus-tailscale-niyi-xing-zhong
13
+ vimeo_id:
14
+ youtube_id:
15
+ width: 1024
16
+ height: 768
17
+ source_code_uri:
18
+ author:
19
+ markup_language: :markdown
20
+ name: Kazuhiro NISHIYAMA
21
+ email: zn@mbf.nifty.com
22
+ rubygems_user: znz
23
+ slideshare_user: znzjp
24
+ speaker_deck_user: znz
@@ -0,0 +1,148 @@
1
+ # Headscale + Tailscale に移行中
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : LILO&東海道らぐオフラインミーティング
8
+
9
+ date
10
+ : 2026-02-01
11
+
12
+ allotted-time
13
+ : 16m
14
+
15
+ theme
16
+ : lightning-simple
17
+
18
+ # 経緯
19
+
20
+ - ほぼ使わなくなっていた OpenVPN のルート証明書の10年の期限が近付いた
21
+ - 古くなって使わなくなった VPN 設定を全体的に見直すチャンス
22
+ - WireGuard に移行していたが、LAN 内でも動的 IP 同士だと VPN 経由になってしまう
23
+ - Tailscale は自動で良い感じにしてくれる
24
+ - 固定 IP 同士でもすべてのペアで個別設定追加が大変
25
+
26
+ # Tailscale
27
+
28
+ - <https://tailscale.com/>
29
+ - The best secure connectivity platform for devs, IT, and security
30
+ - WireGuard ベースでメッシュネットワーク
31
+ - 個人なら 3 users, 100 devices まで無料
32
+ - tailscale.com のサーバーを使う場合
33
+
34
+ # Headscale
35
+
36
+ - <https://headscale.net/stable/>
37
+ - An open source, self-hosted implementation of the Tailscale control server
38
+ - Design goal
39
+ Headscale aims to implement a self-hosted, open source alternative to the Tailscale control server. Headscale's goal is to provide self-hosters and hobbyists with an open-source server they can use for their projects and labs. It implements a narrow scope, a single Tailscale network (tailnet), suitable for a personal use, or a small open-source organisation.
40
+
41
+ # 概念
42
+
43
+ - Control Server: Tailscale.com のサーバー or Headscale で自前
44
+ - Tailnet: キャリアグレード(CG)NAT用の `100.64.0.0/10` と `[fd7a:115c:a1e0::]/48` を使った VPN 網
45
+ - Tailscale ノード: Tailnet に接続する端末
46
+ - ユーザー: ノードが所属するユーザー
47
+ - タグ: ノードにつけられるタグ、ACL 設定に使っている
48
+
49
+ # Headscale or Tailscale.com
50
+
51
+ - `100.64.0.0/10` と `[fd7a:115c:a1e0::]/48` の変更に未対応で共存できない
52
+ - 大規模なら Tailscale.com 一択
53
+ - 小規模でサーバーを用意できるなら Headscale も選択肢に
54
+ - 困ったら消しやすそうなので Tailscale.com ではなく Headscale を選択
55
+
56
+ # Headscale 用サーバー準備
57
+
58
+ - 料金タイプ 512MB CPU 1Core, SSD 30GB
59
+ - 時間課金 512MB 750円/月
60
+ - 36ヶ月 325 円/月 → 296 円/月 60%オフ
61
+ - キャンペーン期間 2026年2月17日(火) 16:00まで <https://vps.conoha.jp/campaign/yearafteryear2025/>
62
+ - Ubuntu だと 1GB 以上になって高い
63
+ - 512MB にするために Debian を選択
64
+ - 12.05 (x86_64) まで (13 はない)
65
+ - 申込料金 10,637 円/3年
66
+
67
+ # Headscale インストール
68
+
69
+ - <https://headscale.net/stable/setup/install/official/>
70
+ - Official releases の Using packages for Debian/Ubuntu (recommended)
71
+ - v0.27.1 amd64 を deb でインストール
72
+
73
+ # サーバー設定
74
+
75
+ - hs.example.jp (自分のドメインのサブドメインの hs に設定)
76
+ - Headscale が Let's encrypt で HTTPS の証明書を自動設定
77
+
78
+ # ユーザー作成
79
+
80
+ - 特にポリシーが決まっていなかった
81
+ - 後でノードを別ユーザーに移動できるので、適当でも良い
82
+ - 端末のグループごとに作成してみた
83
+ - サーバーの場所: sakura, conoha, home
84
+ - 手元の端末: kazu
85
+
86
+ # ノード追加
87
+
88
+ - `headscale preauthkey create -u $user_id`
89
+ - tailscale インストール <https://tailscale.com/download/linux>
90
+ - Debian 13 は未対応、Ubuntu は 25.04 まで対応
91
+ - `sudo tailscale up --login-server=https://hs.example.jp --authkey $preauthkey`
92
+ - 必要に応じてオプション追加
93
+ - `--advertise-routes=192.168.11.0/24`
94
+ - `--advertise-tags tag:home,tag:zabbix-agent`
95
+
96
+ # ノード追加の注意点
97
+
98
+ - preauthkey はノードごとに作成
99
+ - macOS や Windows は `https://hs.exmaple.jp` を指定して追加
100
+ - ブラウザーが開くのでその指示に従って headscale で許可
101
+ - `--advertise-tags` は ACLs が影響
102
+ - `--advertise-routes` も headscale 側で許可が必要
103
+ - `headscale nodes approve-routes --identifier $node_id --routes 192.168.11.0/24`
104
+
105
+ # routes
106
+
107
+ - 家のラズパイ2台で同じ routes を設定
108
+ - 一度に1台だけ使われる
109
+ - 再起動などで Primary が自動で切り替わる
110
+
111
+ ```
112
+ # headscale nodes list-routes
113
+ ID | Hostname | Approved | Available | Serving (Primary)
114
+ 9 | raspi4b2 | 192.168.11.0/24 | 192.168.11.0/24 |
115
+ 10 | raspi4b3 | 192.168.11.0/24 | 192.168.11.0/24 | 192.168.11.0/24
116
+ ```
117
+
118
+ # exit node
119
+
120
+ - インターネットへの出口を変更
121
+ - 出先で家の回線からインターネット接続など
122
+ - `tailscale set --advertise-exit-node`
123
+ - `tailscale up` のときに指定し忘れても、後から `tailscale set` で設定可能
124
+ - `0.0.0.0/0` (と `::/0`) 宛の routes として headscale 側で許可が必要
125
+ - `headscale nodes approve-routes --identifier $node_id --routes 0.0.0.0/0`
126
+
127
+ # ACLs
128
+
129
+ - Tailscale の無料プランでは使えなさそう
130
+ - Tailscale では Grants の方が新しいが Headscale は未対応
131
+ - huJSON (コメントなどに対応した JSON) で記述
132
+
133
+ # ACLs で困った点
134
+
135
+ - ACLs で許可すると ufw で許可しなくても通る
136
+ - ノード間では通る
137
+ - routes で LAN の他機器への通信は ufw も影響
138
+ - ACLs で許可していないノードは `tailscale status` で出てこない?
139
+ - 見えない条件がいまいち把握できていない
140
+ - 最近家のネット回線が不安定になることがあるのでその影響かも?
141
+
142
+ # まとめ
143
+
144
+ - 個人用途なら Headscale で問題なさそう
145
+ - 無料で ACL を使いたいなら Headscale
146
+ - Headscale でも使える機能か悩みたくないなら Tailscale.com
147
+ - `tailscale ssh` などまだ試していない機能がある
148
+ - `tailscale serve` などは使えないのでは? と思っている(未確認)
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-lilo-20260201
3
+ version: !ruby/object:Gem::Version
4
+ version: 2026.2.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2026-02-01 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rabbit
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 2.0.2
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 2.0.2
26
+ description: "[LILO&東海道らぐオフラインミーティング 2026-02-01](https://lilo.connpass.com/event/381726/)の発表資料です。"
27
+ email:
28
+ - zn@mbf.nifty.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - ".rabbit"
34
+ - README.md
35
+ - README.md~
36
+ - Rakefile
37
+ - config.yaml
38
+ - headscale-tailscale.md
39
+ - pdf/lilo-20260201-headscale-tailscale.pdf
40
+ homepage: https://slide.rabbit-shocker.org/authors/znz/lilo-20260201/
41
+ licenses: []
42
+ metadata:
43
+ markup_language: markdown
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubygems_version: 4.0.3
59
+ specification_version: 4
60
+ summary: Headscale + Tailscale に移行中
61
+ test_files: []