|
| ||||||||
|
巻き戻し中。
|
|
2020-05-24(日) 引き続き工事中 [長年日記]
_ 冗長化
ルータの次はDNS鯖。
carpかvrrpか悩んだが、freevrrpdの切り替わり時にキックするスクリプトがpreかpostか分からないので、bindをインターフェース確立後に再起動したいけど上手くなさそう。
で、carp試してみたのだけど、どうやらNICにプロミスキャスモード設定してあると、マスターになろうと「俺マスター!」パケット出した瞬間に、自分のパケットを検知して「誰かおる!わしバックアップ」ってループするドリフのコントみたいな事になったので、やっぱvrrpにするw
_ freevrrpd
まず、「224.0.0.18」にipfw開けてないとダメだな。 ガッツリ閉じていた*1ので、socketに書けないってエラーで起動失敗してた。 bindを叩くスクリプトは、ifconfigでインターフェースにIPが付いたのを確認したら再起動するのをmaster_script.shからバックグラウンドで投げるようにした。#!/bin/sh TIMER=0 LIMIT=10.0 STEP=0.1 VIP="inet hoge.hoge.hoge.hoge" IF_CMD="/sbin/ifconfig" IF_NAME="ngeth0" GREP_CMD="/usr/bin/grep" BC_CMD="/usr/bin/bc" NAMED_RESTART="/etc/namedb/restart-named.sh" while [ "$TIMER" != "$LIMIT" ]; do $IF_CMD $IF_NAME | $GREP_CMD "$VIP" STAT=`echo $?` if [ $STAT = 0 ];then $NAMED_RESTART logger -is -t named_restarter2 "named delayed restart at $TIMER sec" exit fi sleep $STEP TIMER=`echo "scale=1; $TIMER + $STEP" | $BC_CMD` # echo $TIMER done logger -is -t named_restarter2 "could not restart named within time limit $LIMIT sec"
*1 デフォルトクローズなんで
_ ついでに
いままですっとTCPフォールバックがコネクションリセットされていた件を切り分けて解消。
ルータの前後に仮想端末付けて
「dig @鯖IP uekusa.jp +norec +dnssec +multi +vc +edns +noad」
で誰が引けて引けないのか確認。
結局ルータ跨がないやつしか引けないことが分かって、鯖のfirewallは無罪。
で、「貧者のCisco」Cisco841MのACLを何度眺めてもちゃんとTCP通してるのですよこれ。
でも、切り分けで敢えて明示的に先頭に「permit tcp any any eq 53 log」入れたら通るじゃん。
なんだこれ?
で、通ったなら一端logは大量になるのいやなので止めようと「permit tcp any any eq 53」に置き換えたら通らない。
え?おまえ、log止めると通さないってバグじゃんかよ!*1
しかも拡張ACLで53/tcpだけ引っ掛かってるぽい。
サポートに問い合わせてもいいのだけど、もうサポート期間切れてるし、わざわざお金払ってバグの報告してやるのもしゃくに障るw
ログ吐くの我慢すれば使えるし。
これが分かったおかげでここ一年悩んでた公開DNS鯖がTCPでクエリ受けられない問題が解消。
ようやく今年の DNS flag dayを生き残ることが出来るようになったw
*1 src/dstは指定もしてみたけどanyは関係なかった。
_ もういっちょ
バグ。
新しくしてもらったみかかルータのRX-600MIもACL変更すると予期しない行もしくはポートがdenyになるっぽくて再起動が必要。
たぶん、RT-S300SEのコンフィグを読み込ませてから変更したので、不整合もあるんだと思うのだけど、そもそも違う機種の設定ファイル読めちゃうのダメでしょ?
Tweets by RC31E | |||||||||
| |||||||||
|