昨日設定したkamalで早速デプロイしようと思ったのだが、うまくいかなかった。

正確にはネットワークを何度か再試行してようやくといったところだが、今日はほぼ失敗してしまった。

私のPCは有線LANと、無線LANで2つのネットワークをそれぞれ接続している。 そのため例えば192.168.1.0/24192.168.2.0/24というようなアドレスがDHCPからひとつのPCに割り振られている。

普段は192.168.1.0/24のアドレス経由であればGitLabのDockerレジストリにアクセスできるのだが、今日は192.168.2.0/24のアドレスを使ってしまっていたらしい。

$ nslookup registry.lvh.me 192.168.2.1
Server:		192.168.2.1
Address:	192.168.2.1#53

Non-authoritative answer:
*** Can't find registry.lvh.me: No answer

ルーターの設定がよくないだけだと思うのだが、いくら設定しようとしても192.168.2.1のアドレスに名前解決しようとすると上記のようにGitLabのアドレスにたどり着けない。 しかし私のネットワークには192.168.2.2でDNSサーバーがいるので、192.168.2.1が自動的に置き換わればいいのだ。

192.168.1.0/24からアクセスするときは問題なく192.168.2.2にアクセスできる。 つまり192.168.2.1をネットワークの外側からアクセスするときは192.168.2.2を参照できるのが、内側でルーターがネットワークを定義するとなぜかうまくいかない。

というわけでいろいろと設定を試していたらPCのネットワークの優先度を変えてみるというアイディアにたどり着いた。 本来ならばルーター側の設定を変更したかったのだが、今回はうまくいかなかったので諦めた。

How to manage available wireless network priority?

この回答を参考にnm-connection-editorを実行してみた。

screenshot

有線ネットワークのpriorityを0、無線ネットワークのpriorityを100に設定した。 優先させたいネットワークの値は低ければ低いほどよいみたいだ。 今までリトライでうまくいったのもおそらくは有線と無線のアクセスが交互に行われていたのかもしれない。

すると今日は一度もデプロイできなかったのにすんなりデプロイすることができた。 ルーターの方の設定も見直せたらよいのだが、しばらくはこの方法を使おうと思う。 もともと有線ネットワークを使ってほしかったのは意図したところなので。