ゾーンファイルのシリアル番号を誤ったときにマスターサーバだけで直す方法

2025/03/25 技術系 投稿者:

DNSのゾーンファイルのシリアル番号は、更新した日付を値として使用するのが一般的ですが、未来の日付など誤った値を設定してしまうこともあります。
そのようなときの選択肢は

  1. そのまま運用する
  2. どうにか正しい値に直す

このどちらかです。
そのまま運用するのが最も楽ですが、次に更新するときにそのことを覚えていないと、設定ミスにつながります。
1日や2日ほど未来にしてしまったくらいならすぐ追いつくのでまだ良いですが、年単位で誤っていると更新の度にずっと気を付けなければならないので、そういう場合はできれば正しい値に戻したいところです。
しかし、正しい値に戻すには一定の手順が必要です。
個人的にこの手順の理解に少し苦労したので、自分なりにまとめておこうと思います。

シリアル番号を直す手順

さっそく結論ですが、ゾーンファイルのシリアル番号を直す手順は次の通りです。
※DNSとしてはBINDを使用している想定です。
※スレーブ側のサーバを操作できる場合は、スレーブ側のゾーンファイルを一旦削除してしまう方がややこしくないので、スレーブサーバを操作できない、またはいじりたくないという場合の手順になります。

シリアル番号を直すための計算式

現在のシリアル(誤った値) + 2147483647 = A
A - 4294967296 = B

パターン1 Aが4294967296より小さい(Bの値が負)

①Aをシリアル番号として一旦設定して適用
②本来設定したかった値をシリアル番号として設定して適用

パターン2 Aが4294967296より大きい(Bの値が正)

①Bをシリアル番号として一旦設定して適用
②本来設定したかった値をシリアル番号として設定して適用

計算例

たとえば、現在のシリアル番号が2026032500だとします。
本来は2025032500に設定したかったのを誤って1年先の日付にしてしまいました。
この場合は次のようになります。

2026032500 + 2147483647 = 4173516147
4173516147 - 4294967296 = -121451149

パターン1なので、4173516147を一旦シリアル番号として設定して適用します。
次に、2025032500をシリアル番号として設定して適用します。
これで本来設定しようとしたシリアル番号になります。

ポイント

押さえておくところは次の3つです。

  1. シリアル番号として設定できる値には上限がある
  2. 上限を超える場合は0から数えなおし
  3. 更新したとき、シリアル番号が増えた(正しく更新された)と扱われる範囲には上限がある

シリアル番号の上限について

先に述べたようにシリアル番号には上限があり、無限に増えていくわけではありません。
察しの良い方はお気づきかもしれませんが、その上限が4294967296です。
※正確には、設定できる値としては0~4294967295です。
ちなみに、なんでこの値かというと、シリアル番号が32ビットだからです。
この辺りの小難しい話はなんとなく頭の片隅に置いておくくらいで良いと思います。

では、シリアル番号が上限に達したゾーンファイルは更新できないのか、というとそうでもありません。
シリアル番号が上限を超える場合、また0から数えなおしになります。
※ただし、0は普通無効な値として使われないので、実際には上限値の次には1を設定します。
たとえば、シリアル番号の範囲が0~11までだった場合次のようになります。

このように、シリアル番号はループするようになっているので、今より前の値にするには、つまり1周回って戻ってくればいいわけです。

シリアル番号が「大きくなった」の定義

ゾーンファイルのシリアル番号は更新したら値を大きくするというのが基本的なルールです。
元々のシリアル番号と比較して、値が大きくなっている必要があります。
1000だったものを1001にするのは問題ありませんが、999にするのはNGです。
しかし、上限を超える場合は0から数えなおしになるので、単純に値を比較して元の値より大きければOKというわけにもいきません。
上限値の4294967295と、次に来る1を単純に比較したら、誰が見ても1の方が小さいです。
ここで先ほどのポイント3つ目が出てきます。

シリアル番号が更新されるとき、元のシリアル番号に+2147483647までの値の範囲が「値が大きくなった」と定義されています。
こちらもなんでこの値かというと、+31ビットの値までを「値が大きくなった」という定義にしているからです。
なお、逆に-31ビットの値までが「小さくなった」という定義になっています。

たとえば、これを先ほどと同じく、シリアル番号の範囲が0~11までだった場合で考えてみます。
現在のシリアル番号が3の場合、次のようになります。

図で言うところの「+5までが大きい値」というのが、実際のところでは「+2147483647までが大きい値」ということになります。
ここまでの話を踏まえて、たとえば現在3のシリアル番号を1に戻すとしたら次のようになります。

3→8→1と、シリアル番号がぐるりと1周しているのが分かると思いますが、最初の見出しで述べた手順はこれをやっているということになります。
なお、図を見ると、「どちらでもない」値がありますが、実際の値で言うと+2147483648がこれになります。
この値にすると元々のシリアル番号と比較して、大きくなったのか小さくなったのか判別できないためNGです。
そのため、+2147483647までが大きい値とされる上限値となります。

まとめ

よくあるというと語弊がありますが、人のやることなので、シリアル番号を誤ってしてしまうことは普通にあります。
そのまま運用してもDNSの機能に問題はありませんが、更新時に気を付けることが増えるという意味で、管理上地味に差し障りがあります。
そういった場合のために、今回のようにシリアル番号を1周させれば戻せるというのは覚えておいて良いと思います。

カレンダー

     12
3456789
10111213141516
17181920212223
24252627282930
31      
     12
3456789
10111213141516
17181920212223
2425262728  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
   1234
567891011
12131415161718
19202122232425
26272829   
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
1234567
891011121314
15161718192021
22232425262728
       
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
     12
3456789
10111213141516
17181920212223
24252627282930
31      
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
     12
3456789
10111213141516
17181920212223
242526272829 
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
    123
45678910
11121314151617
18192021222324
25262728   
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
   1234
567891011
12131415161718
19202122232425
262728    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
1234567
891011121314
15161718192021
22232425262728
29      
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
U・Iターン転職しませんか?
群馬データセンター
群馬の法人ITサポートサービス Wide Net[ワイドネット]
Wide Netのクラウドバックアップ
クラウド型ファイル共有サービスRushDrive
ワイドオフィス
ネディアのSDGsへの取り組み