DNSのSOAのSerialをリセットする方法
DNSのシリアル値をあやまって大きな値に設定した場合、その値から別の値に一度変更し、設定したい値へ戻す方法です。
この方法は、コンテンツサーバ側はすぐに変わっても、設定次第ではキャッシュサーバなどではすぐに変わりません。ご注意ください。
多少計算が必要ですが、javascriptで簡単に計算できるようにしておきました。
やり方
誤った値を元に計算して仮のシリアル値を求めてから設定する必要があります。
簡単には以下の式で出せます。
計算式
n = x+(2^31)-1 nが2^32を超えているならさらに以下をやると出る n=n-(2^32) つまり、2^32である4294967296より大きな値を設定するがunsigned intの最大値を超えると0に戻るので、 2^32をひけば、設定した値よりも”小さくて”、”大きな”値となるので元の値に戻せます。
例題
期待値: 2012083101 誤った値: 3012083101 5159566748 = 3012083101 + (2^31) -1 4294967296より大きな値なのでさらに以下をする 864599452 = 5159566748 - (2^32) 864599452が一時的に設定する時に使うシリアル値です。 一度この値に設定し、暫く経って(理想はrefreshより経った後?)から再度期待する値に設定すれば元に戻れます。
簡単計算機
Javascriptで簡単に計算できるようにしてみました。
ただ、適当なので心配な方は手動で計算してみてください