さくらインターネットで取得したドメインのDNS設定を変更する。

さくらインターネットで契約したWEBサーバーがありそれを運営していたのですが、事情により別会社のWEBサーバーに乗り換えることにしました。ドメインは今までと同じものを使用します。ドメインに紐づくIPアドレスを別会社のWEBサーバーにしてあげないと、さくらインターネットのWEBサーバーにアクセスしてしまうのでDNSの設定変更をします。

今はこういう感じです。さくらインターネットでドメイン契約とサーバー契約をしています。

それをこんな風にします。さくらインターネットのサーバー契約は解約して、別会社でサーバーを契約します。さくらインターネットのドメイン契約はそのままです。

別会社でのWEBサーバー構築とデータ移行は完了しているものとして、DNSの設定を変更します。さくらインターネットのサポートページにドメインのゾーン編集の記載がありますので、それと同じやり方です。

さくらインターネットの会員ページからログインします。

会員メニューのトップページになりますので左側の契約中のドメイン一覧をクリックします。

ドメイン一覧のページにあるドメインメニューをクリックします。

別ウィンドウで管理ドメインとネームサーバの一覧が表示されますので該当ドメインのゾーン編集をクリックします。

現在の設定が表示されます。ピンク枠のところがドメインに紐づくIPアドレスとなりますので、この変更をする必要があります。変更ボタンをクリックします。

エントリの追加と変更ができるようになります。入力する内容は以下です。

エントリ名・・「@」を記載
種別・・「IPアドレス(A)」を選択
値・・新しいIPアドレスを記載
DNSチェック・・「する」を選択
TTLの指定・・チェックしない

記載できたら変更ボタンをクリックします。

編集した内容が表示されます。もともとあったAレコードは「削除済み」となっています。ピンク枠のところに前画面で入力したIPアドレスが表示されます。この状態ではまだDNS設定は完了していません。データ送信をクリックします。

ピンク枠のところに新しいIPアドレスが表示されていれば設定変更は完了です。

さくらインターネットのサポートページには「ドメインのゾーン情報を変更すると、情報の反映までに数時間~48時間必要な場合があります」と記載がありました。実際にやってみたのですが、PCとスマホで確認すると、だいたい1時間半〜2時間で向き先が変わりました。ブラウザでドメインにアクセスして旧・新のどちらのサーバーの画面が表示されたかを確認しました(旧のサーバーはメンテナンス中画面を表示するようにしています)。環境によって異なるかと思いますが、おおまかな目安になるでしょうか。

LinuxでSMBパケットをキャプチャしてダイアレクトのやりとりを見てみた。

Linux(ubuntu)からwindows10の共有フォルダにアクセスして、そのときに流れるSMBパケットをwiresharkでキャプチャしてみました。SMBのダイアレクトのやりとりを見るためです。ダイアレクトとはSMBのバージョン識別に使われるもので、ダイアレクトをやりとりしてどのバージョンのSMBでファイル共有をするかをサーバーとクライアントの双方で決めます。SMBのバージョンについては前回の記事を見てください。

ubuntuにはlibsmbclientがインストール済みです。libsmbclientというのはSMBのクライアントソフトです。windowsの共有フォルダにアクセスするにはlibsmbclientが必要です。

libsmbclientはubuntuをインストールしたときから入っているようです(libsmbclientを意図的にインストールした記憶がないので)。

ubuntuからwindowsの共有フォルダへのアクセスはubuntuのファイルアプリから行います。ファイルアプリを開き「他の場所」を選択し下部にある「サーバー接続」に「smb://windowsのIPアドレス」を入力して接続ボタンを押下します。

windowsログインのアカウント、ワークグループ、パスワードを求められたら入力してください。windows側の共有フォルダの設定によります。

そのときのSMBパケットをwiresharkでキャプチャしたものです。wiresharkのフィルタでプロトコルをSMBとSMB2のパケットに絞っています。SMBプロトコルはSMBのバージョンが1.0のもの、SMB2プロトコルはSMBのバージョンが2.0以降のものです。

キャプチャの結果を見てみるとSMBのネゴシエートプロトコルで4回のやりとりをしています。

・Negotiate Protocol Request(SMB)
・Negotiate Protocol Response(SMB2)
・Negotiate Protocol Request(SMB2)
・Negotiate Protocol Response(SMB2)

それぞれの内容を見てみます。まずは上から1つ目です。SMBでは445ポートを使っているようです。

SMBパケットの中にリクエストダイアレクトのブロックがあります。ubuntuからSMBで使用できるダイアレクトを提示しています。いくつかあるのですが調べたところ以下の意味です(わかったものだけですが)。

・NT LM 0.12 (SMB1.0の意味合い)
・SMB 2.002 (SMB2.0の意味合い)
・SMB 2.??? (SMB2.1以降の意味合い)

これに対しwindowsからのレスポンスが2つ目です。

ダイアレクトが0x02ffとなっています。ubuntuからwindowsへのリクエスト時は16進数を使っていなかったのですがレスポンス時は16進数になっています。そもそもSMBプロトコルでリクエストしたのにレスポンスはSMB2プロトコルになっています。これは接続元がSMB2.1以降に対応していて(ダイアレクトでSMB 2.???を提示していて)接続先もSMB2.1以降に対応していれば、SMB2プロトコルを使って改めてネゴシエートを行う仕様になっているからです。SMBのネゴシエートで4回のやりとりがあるのはこのためです。

3つ目のキャプチャ結果を見てみます。

ubuntuからwindowsに再度ダイアレクトを提示しています。16進数表示でいくつかあるのですがSMBのバージョンを表していると思われます。

・0x0202(SMB2.0の意味合い)
・0x0210(SMB2.1の意味合い)
・0x0300(SMB3.0の意味合い)
・0x0311(SMB3.1.1の意味合い)

最後に4つ目のキャプチャ結果です。

windowsでダイアレクトの0x0311を選択しています。windows10はSMB3.1.1に対応しているのでそれが選ばれたわけです。windowsのファイル共有ではSMBのネゴシエートでお互いに利用可能な最上位のバージョンを決めています。