アーカイブ

Archive for 2016年9月

初代ポケモン用 固定長配列ビューア

ゲーム内通信交換テーブルを読むのにちょっと苦戦したのが悔しかったので、
そういう系の固定長配列を一発でみやすく整形するツール作りました。

ポケモン一覧や道具欄も一応固定長配列なので、ちゃんと構造を入力してやれば出せます。

ダウンロードはサイトの下の方から。

extractor

9/27 追記
既知の不具合
ver1.10 技名「じごくぐるま 」が「じごくぐるま」になってしまっています・・・ ver1.2 修正済み

10/2 追記 ver1.2
・各列のヘッダに任意のラベルを付けられるように修正
・csv/タブ区切り/HTMLでの出力に対応
・技名「じごくぐるま 」のスペースが抜けていた不具合を修正

11/7 追記 ver1.21
・ラベルを空にしているとクラッシュするバグを修正
・保存ボタンがウインドウサイズ変更時に追従しないバグを修正

機能追加予定
・リストを差し替え可能にする
・金銀に送ったときのポケモンリストも入れる
・出力結果をcsvとかhtmlで出せるようにする

広告
カテゴリー:セレクトバグ

お名前.comのCNAME設定上の馬鹿みたいな制約の回避策

お名前.comのレコード設定画面が馬鹿なので、「NSで委譲したサブドメインに対するCNAMEやMX」を設定しようとすると、A/AAAAレコードがないという理由でこける。

・やりたいこと

sub.example.com IN NS ns1.exmaple.com
cname.example.com IN CNAME host.sub.example.com

委譲先NSでhost.sub.example.comのAが登録されていようと、これが設定できない。
先日設定ミスしたときは「proxy-mikan.」なんて存在しないTLDへのCNAMEは向けられたくせに、
存在するサブドメインへCNAMEが作れないとは何のためのチェックなのか。

・回避策
チェックがザルなので、「設定画面上にhost.sub.example.comのA/AAAAレコードがあれば」通る。
いったん「無効」状態のhost.sub.example.comのダミーのレコードを作っておくと、
CNAMEやMXが設定できるようになる。
「無効」になっているレコードはDNS的に存在しないため、
cname.example.comを引くとちゃんとNSを返しているっぽい。
こんな適当な実装なら存在価値なし。全部通してしまえ。

正直なところ、こんなサービス使うのさっさとやめてしまいたい。

カテゴリー:未分類

DNATラウンドロビンではまる

msmrrenda.netのMXであるmailin.msmrrenda.netは、
グローバルアドレスを持っている2台のVPSから25/tcpをDNATし、
裏のメールサーバ2台に繋ぐ構成になっています。

これらは今まで1対1で対応していたのですが、
任意の組み合わせで落としたいなーと思ったのでDNATをラウンドロビン化しました。

問題. DNATに–toが複数指定できない
DNATの–toはレンジ指定に対応するが、二つのサーバのアドレスは隣接していないので不可。
–toを複数指定できるという記述が散見されるたものの、
iptables-extensions(8)によれば、2.6.11以降のカーネルでは対応していません。

Sep 10 15:49:38 chika iptables.init: iptables: Applying firewall rules: iptables-restore v1.4.21: DNAT: Multiple --to-destination not supported

もちろん、カンマ区切りもできない。

Sep 10 15:53:12 chika iptables.init: iptables: Applying firewall rules: iptables-restore v1.4.21: Bad IP address "192.168.2.27,192.168.2.227"

解法. しかたないので、mangleでコネクションにタグを付けてからnatでひっかける (重そう)

*mangle
-A PREROUTING -p tcp --dport 25 -m state --state NEW -m statistic --mode nth --every 2 --packet 0 -j CONNMARK --set-mark 1
-A PREROUTING -p tcp --dport 25 -m state --state NEW -m statistic --mode nth --every 2 --packet 1 -j CONNMARK --set-mark 2
COMMIT

*nat
-A PREROUTING -m tcp -p tcp --dport 25 -i eth0 -m connmark --mark 1 -j DNAT --to 192.168.2.27:25
-A PREROUTING -m tcp -p tcp --dport 25 -i eth0 -m connmark --mark 2 -j DNAT --to 192.168.2.227:25
COMMIT

重そうですが、まあそんなにがんがんメールが来るわけでもないのできっとダイジョウブ・・・

カテゴリー:未分類