mDNSが便利だった話(TimeMachineバックアップ)
さて、本日はネットワークネタである。
TP-Link AX50のリンクアグリゲーション機能はブリッジで稼働しているので使用できていない。AX50の導入過程で、Linuxサーバーのsambaが「おかしな挙動」をするようになってしまっていたことに気付いた。
普通にWindows PCやMacBookからsmbで接続すると、繋がるときと繋がらないときがあり、なんかおかしいなぁ、と思ってはいたのではあるが、その原因が分かったので紹介しておくのである。
原因はというと、CentOSにインストールしたsambaが2種類の設定で重複起動していただけという単純なもの。
ドメインコントローラー機能を盛り込んだ、後からインストールしたsambaが/usr/local/sambaの方に入っている。それとは別にyumでサクッとインストールした普通のsambaが/usrの方にも入っている。
ドメインコントローラー機能付きの/usr/local/sambaはもう使ってはいないのだが、なぜかデーモンが起動状態になり、おかしな挙動となっていた模様。
/usr/local/sambaの方は、winbindが有効になっていて、DNSが動いている。このDNSに今や使っていないネットワークのIPアドレスが登録されており、サーバー名でIPを名前解決すると間違えたアドレスが戻ってきて、接続できないエラーになる。
/usrの方のsambaに接続されると、NetBIOSかなんかで名前解決され、ちゃんと接続可になる。
これが「繋がるときと繋がらないときがある」の原因と判断。
/usr/local/sambaの方をsystemctlで停止したら、winbindも停止して、確実に接続できるようになった。やれやれ。
TimeMachineバックアップするためにmDNS導入
で、sambaが安定したので、MacBookのストレージデータをLinuxサーバーにTimeMachine機能でバックアップしようと考えたわけである。
MacのTimeMachineでsambaサーバーにバックアップするには、Linuxの方でmDNSを稼働させないとダメらしい。CentOSには標準で入っているのかな?avahiデーモンを起動したらmDNSが有効になった。avahiは別途インストールしたんだっけか?まぁ、細かいことはいいや。mDNSが使えるようになった。
mDNSは、DNSとは異なり、マルチキャストを使ったもの。マルチキャストなので、ネットワークセグメントの外では使えない。従って、ドメイン名は「.local」で固定になる。
試しにMacBookのターミナルからpingを打ってみるとちゃんと機能していることがわかった。
一応、断っておくが、「PC名」のところは、実際の名前にしないとダメですよ。
ping PC名.local
ちゃんと名前がIPアドレスに変換されている。
sshでもログインできるかやってみた。
ssh PC名.local
できたが、IPv6アドレスに変換された模様。まぁどっちでもいいか。
WindowsPCからもやってみる。
WindowsのpingはIPv6がデフォルトなのか、IPv6アドレスに変換された。
C:\Users\asai>ping MacBook名.local Pinging MacBook名.local [fe80::463:XXXXX:XXXXXXX] with 32 bytes of data: Reply from fe80::463:XXXX:XXXX:XXXXXXX: time=102ms Reply from fe80::463:XXXX:XXXX:XXXXXXX: time=16ms
IPv4でpingするには-4オプションを付ければOK
ping -4 MacBook名.local
IPv4のアドレスにも変換できている。いいじゃん。
さて、MacBookはWi-Fi接続である。Wi-Fiの場合DHCPで自動IPアドレス付与の方がなにかと便利、というか単にめんどうだから固定にしてないだけ。AX50の導入でルーター再起動したのでDHCPサーバーがリセットされ、今まで割り当てられていたIPから別のIPに変わってしまった。
MacBookでnodejsでの開発を行っているので、Windows PCからEdgeなどのブラウザでMacBookのnodejsサーバにWebアクセスすることが多い。MacBookのIPアドレスはDHCPで自動取得。IPアドレスを調べてからURLを叩く方法でWebアクセスしている。
そんなに変わらないからこれでOKか。とも思っていたのではあるが、今回変わってしまった。ちょっと面倒ではあったが、DHCPサーバのクライアント設定で、MACアドレスとIPアドレスの組を登録したので、元のIPには戻すことができた。
しかし、mDNSが使えるのであれば、URLで名前指定できるじゃん。DHCPサーバが飛んでアドレスが変わっても名前でアクセスできればOKじゃない。
これでもmDNSが有効ならちゃんとWebアクセスできる。いいじゃん。
早くいってよぉ。
TimeMachineバックアップする
smb.confでタイムマシン用の共有フォルダを作成して、sambaを再起動する。
元ネタは以下のサイト
CentOS7のsambaサーバーにTime Machineでバックアップをとる
/etc/samba/smb.conf
vfs objects = catia fruit streams_xattr fruit:metadata = netatalk fruit:encoding = native [TimeMachine] comment = Backup for Mac path = /home/timemachine writable = yes browsable = yes guest ok = yes fruit:time machine = yes fruit:time machine max size = 200G
TimeMachineのバックアップ先にLinuxのsambaを指定する。
システム環境設定...で画面を開いて、Time Machineのアイコンをクリック。
「バックアップディスクを選択...」のボタンをクリックする。
バックアップ先を選択する画面で、Linuxサーバーのsamba共有フォルダを選択。
ここに表示されない場合は、mDNSがうまく動いていない可能性大。
今回は成功しているのでサーバーの共有フォルダが見えているので、これを選択。
選択すると、次回のバックアップ:のところがカウントダウンされ始めた。
カウントが0になり、バックアップが始まるかと思いきや、接続に失敗。
おかしい。
ファインダーから普通にサーバー接続してみるもダメ。
えー、ちゃんと接続できていたけどなぁ...おかしいなぁ。
サーバーのログ/var/log/messagesを見るとエラーが出ている。
Jul 29 11:01:41 kernel: traps: smbd[31670] trap divide error ip:7f71e39678c5 sp:7ffe0714ae20 error:0 in fruit.so[7f71e395e000+1b000] Jul 29 11:01:44 kernel: traps: smbd[31674] trap divide error ip:7f71e39678c5 sp:7ffe0714ae20 error:0 in fruit.so[7f71e395e000+1b000]
どうも0割りみたい。fruit.soで発生している模様。fruitはTimeMachine用のsambaオプションモジュールだなきっと。
困ったときは、ネットで検索である。英語サイトのものしか発見できなかったが、max sizeがどうとか書いてある。試しにmax sizeの設定行をコメントアウト。
vfs objects = catia fruit streams_xattr fruit:metadata = netatalk fruit:encoding = native [TimeMachine] comment = Backup for Mac path = /home/timemachine writable = yes browsable = yes guest ok = yes fruit:time machine = yes # fruit:time machine max size = 200G
ビンゴ!
しかし、問題のエラーは出なくなった感じなのだが、別のエラーが発生。
Jul 29 11:03:43 smbd[31737]: [2021/07/29 11:03:43.687568, 0] ../../lib/util/access.c:365(allow_access) Jul 29 11:03:43 smbd[31737]: Denied connection from 240b:12:XXXX:XXXX............. (240b:12:XXXX:XXXXX..............)
今度はアクセス制限に引っかかっている感じ。IPアドレスがIPv6で表示されているので、IPv6でアクセスしているものと思われ。
えー、前はIPv4だったと思うけど。
当然ながら、smb.confでIPv4のネットワークには許可を出している。
interfaces = lo bind0 192.168.0.0/24 hosts allow = 127. 192.168.0.
ここに、IPv6のネットワークも追加しなければならないのであろう。
IPv6の場合は、全長128ビットでネットワーク部が64ビットなので、最初の4個までを指定すればOKかな。
interfaces = lo bind0 192.168.0.0/24 240b:12:XXXX:XXXX::/64 hosts allow = 127. 192.168.0. 240b:12:XXXX:XXXX::/64
interfacesの方は必要かどうかわからないが、一応設定してみた。XXXXの部分は伏せてあるので、実際の環境に合わせて変更して欲しい。そのまま入力してもダメなので注意。
これでsamba再起動、MacBookでは一度ログオフしてやってみると、ファインダーでの接続には成功した模様。
TimeMachineでやってみると...
見事バックアップが始まった。
とはいえ、それなりに時間はかかるようで、3時間になっている。
こういう時にWi-Fi 6でリンクアグリかマルチギガだといいんだけどねぇ...
関連記事
TP-LinkのWi-Fi 6ルーターを購入した話【前編】
BuffaloのWiFiルータはブリッジモードとルータモードでIPアドレスが異なるのでハマった
3チャネルボンディング(チーミング) 3ギガ出るかやってみた
Windows10 update(1809)でIntelチーミング復活 IntelNetコマンド使用
Windows10 october 2018 update(1809)でまたもやIntelチーミングがダメになる
Intelドライバでチーミング Windows10 Intel+Realtek リンクアグリ
Windows10でチーミングできなくなった Intelドライバ22.3を導入
ボンディング・チーミングのその後 NETGEARのインテリジェントL2SW
Ethernetのボンディング Linuxのサーバーマシンにbond0インターフェースを作成

NETGEAR Inc. JGS524E 【ライフタイム保証】 24ポート ギガビット アンマネージプラス・スイッチ JGS524E-200AJS
- 出版社/メーカー: ネットギア
- メディア: Personal Computers

インテル PRO/1000 PT デュアルポート サーバ・アダプタ EXPI9402PT
- 出版社/メーカー: インテル
- メディア: Personal Computers
投稿者プロフィール

-
システムエンジニア
喋れる言語:日本語、C言語、SQL、JavaScript
最新の投稿
コンピューター関係の記事2025年4月26日アイキャッチ画像にSQLアイコンとJSONアイコンが欲しい
コンピューター関係の記事2025年4月23日AdSense審査に無事パス
コンピューター関係の記事2025年4月22日SSブログ復活
コンピューター関係の記事2025年4月22日SSブログが無くなった余波は大きい