とってもやる気がないんです。

ドメインだけ見ればどうやら検察庁公式サイトっぽいけど?

http://www.kensatsu.go.jp/page1000008.html

えっと。敢えてリンク張っていません。このページが偽サイトの可能性を排除できないので……。
え?面倒だからリンク張れって?
危険を承知で http://www.kensatsu.go.jp/page1000008.html へアクセスする

なんで、偽サイトでないことを証明しないといけないであろうサイトで偽サイトでないことを証明するために必要な措置を取らないのだろう。そのページ、プロキシで書き換えられていてもわかりませんぜ……

少なくとも https にして証明書の情報を公開しておけば、間で書き換えられていないかどうかの確認くらいはできるわけで(秘密鍵持っていかれていたら関係ないけどさ)……はあるはずなんだが、なんと、証明書はちゃんと取っていたりして(投稿時現在)意味不明。参考: https://www.kensatsu.go.jp/page1000008.html

ちなみに、https://www.kensatsu.go.jp/ にアクセスすると http://www.kensatsu.go.jp/top.shtml に飛ばされるっていう。なんかもう、本物が本物であることを主張することを諦めているような、なんなんだこれは状態……
あ、偽サイトだから本物であることを主張する必要がないのか!
続きを読む

resque を試しに使ってみようと思っていろいろみてみたけど、あんまり日本語の資料がないですね。

とりあえず、queue 確認するのに resque-web を立ち上げようとしても立ち上がらない。
いろいろやったら立ち上がったけど、、、ねぇ。

症状、原因とやったこと。

  1. cannot load such file -- rack/showexceptions (LoadError) で落ちる。
    • 原因: インストールされている sinatra が古くて rack のバージョンアップについていっていない
    • 対応: sinatra 2.0.0 以降をインストール(Gemfile に rack のバージョン明示して bundle exec してもいけそうだが試していない)

  2. cannot load such file -- win32/process (LoadError) で落ちる。
    • 原因: win32-process がインストールされていない
    • 対応: win32-process を gem でインストール

  3. runner.rb の daemon が daemon() function is unimplemented on this machine (NotImplementedError) で落ちる
    • 原因: rack がデフォルトで daemonize しようとするが windows では daemonize できない
    • 対応: 起動オプション -F を付加して foreground 起動。
      > resque-web -F

  4. [BUG] rb_sys_fail_str(SIG1) - errno == 0 で落ちる。
    • 原因: よくわからないけど mingw 版のバグらしい(RubyInstaller も RailsInstaller も mingw ベース。i386 か x64 かは関係なさそう)。
    • 対応: Active Script Ruby を使う (!)
      これやったら、win32-process を入れる必要もなくなるね!
      うーん。Active Script Ruby だとインストールできない gem もあるのでできれば使いたくないのだけど、、、

  5. Failed to open TCP connection to 0.0.0.0:5678 (The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 5678) (Errno::EADDRNOTAVAIL)
    • 原因: よくわからないけど、Active Script Ruby ではアドレス 0.0.0.0 でポートを開けない? (今回試したのは Windows 10 Pro。他のバージョンでどうなるかは不明。それとも UAC とか関係あるのかね?)
    • 対応: とりあえず起動オプション -o xxx.xxx.xxx.xxx を付加して Listen アドレス指定で起動。
      例)
      > resque-web -F -o 127.0.0.1

全部 rack 絡みの問題なのでたぶん resque の動作自体には問題ないはず。とりあえず開発機では resque-web だけ Acrive Script Ruby で立ち上げるのがいいかね(windows で本番運用はしない)。

FreeBSD で pkg で munin 入れて、適当に設定して、apache などから見えるようにしてあげると割と簡単にグラフ表示されて、やったー うひょー すてきー とかなるんだけど。
そんなんで喜んでいると、0:00ちょうどの値が取れない事象に遭遇して悩むことになる。

まあ、0:00ちょうどが1回だけ値が取れないところで然したる問題はないことがほとんどではあるのだが、なんとも気持ちが悪い。
気持ちが悪いだけで然したる問題はないのでとりあえず放置していたのだが、ふと、原因が閃いたので確認してみたら大当たり。

続きを読む

ipv6 アドレスは加工しようと思うと:: で省略されていたり、先頭の 0 が省略されていたりするとやりづらいので、非省略形に戻して加工するのが楽。

いろいろやり方はあるのだけど、世の中 sed 派が多い模様。
自分は awk が好きなので awk でやってみる。ワンライナー。


  • 省略された :: を :0:..:0: に展開する


    :: を一度 :0: にして、足りない分 :0 を足せばよい。
    $ echo "2001:db8::1234:0:0:9abc" | awk -F: -vOFS=: '{for(i=1;i<=NF;i++){if($i==""){for($i=j=0;j<8-NF;j++){$i=$i":0"}}}}1'


  • 中身を理解せずにコピペする人は、最後の 1 は必要なので注意。1 じゃなくて // でも {print} でもよいけど。

    これだけで用が足りることがほとんどかと。

  • 桁数を4桁にそろえる


    :: を展開するだけで用が足りず桁をそろえる必要があるとき。
    "0000"を先頭に足して右4文字を切り出す方法と、文字数カウントして足りない数だけ先頭に足す方法とがあるが、桁数そろえるだけなら printf 系が使える。

    すでに :: が展開済みなら、
    $ echo "2001:db8:0:0:1234:0:0:9abc" | awk -F: -vOFS=: '{for(i=1;i<=NF;i++){$i=sprintf("%04s",$i)}}1'

    でOK。

    :: の展開と組み合わせるなら、パイプでつないで
    $ echo "2001:db8::1234:0:0:9abc" | awk -F: -vOFS=: '{for(i=1;i<=NF;i++){if($i==""){for($i=j=0;j<8-NF;j++){$i=$i":0"}}}}1' | awk -F: -vOFS=: '{for(i=1;i<=NF;i++){$i=sprintf("%04s",$i)}}1'
    でもちろんいいのだけど、
    echo "2001:db8::1234:0:0:9abc" | awk -F: -vOFS=: '{for(i=1;i<=NF;i++){if($i==""){for($i=j="0000";j<8-NF;j++){$i=$i":0000"}}else{$i=sprintf("%04s",$i)}}}1'

    とすると awk の起動が1回で済む。


FreeBSD のインストーラで zfs で好きなように filesystem を切る機会があったので、今更だけど、ちゃんと書いてみる。
(11.0-RELEASE が出てしまったので 11.0-RELEASE でやってみた)

基本的には参照先と同じやり方になります。

手順:

  1. 途中(Partitioningの手前)までは普通にインストール

  2. "Partitioning" で "Shell" を選択し、シェルからファイルシステムを作成、/mnt にマウントしインストーラに戻る

  3. "Manual Configurration" までインストーラでインストールをすすめる

  4. /boot/loader.conf , /etc/rc.conf , /etc/fstab 等、起動に必要なファイルの編集



続きを読む

りんなによると、「キメセクは神」らしい。kimesex
やばいよー。こわいよー。((((;゚Д゚))))ガクガクブルブル

RubyXL を使う方法。
別に暗号化とかは不要。会員に入力させて回収して集計したいワークブックがあるけど、勝手に列足したりして集計できなくなると困るので保護したい、という話。いくら言っても編集できちゃうと編集しちゃう人は編集しちゃうので、編集しないでね、という意思表示程度のもの。
もちろん xml 直接覗いて編集したり、パスワードクラックするソフトで簡単に外せてしまうのだけど、わざわざ保護しているものをわざわざ外してしまうやつはどうでもいい(ちゃんと集計されなくて困るのは提出者側)。

というストーリーなんだけど、ぐぐってもずばりがみつからないので、断片的な情報を基に自分で調べた。

worksheet を保護する場合


worksheet に対して RubyXL::WorksheetProtection クラスのインスタンスを設定する。

wsp = RubyXL::WorksheetProtection.new
wsp.password = ハッシュ化したパスワード
wsp.sheet = true # シートを保護
wsp.objects = true # オブジェクトの編集。効いていない?
wsp.scenarios = true # シナリオの編集。効いていない?
# 以下、true で保護。false ですべてのユーザに許可。
wsp.format_cells = true # セルの書式設定。
wsp.format_columns = true # 列の書式設定
wsp.format_rows = true # 行の書式設定
wsp.insert_columns = true # 列の挿入
wsp.insert_rows = true # 行の挿入
wsp.insert_hyperlinks = true # ハイパーリンクの挿入
wsp.delete_columns = true # 列の削除
wsp.delete_rows = true # 行の削除
wsp.select_locked_cells = true # ロックされたセル範囲の選択
wsp.sort = true # 並べ替え
wsp.auto_filter = true # オートフィルターの使用
wsp.pivot_tables = true # ピボットテーブルとピボットグラフを使う
wsp.select_unlocked_cells = true # ロックされていないセル範囲の選択

book = RubyXL::Workbook.new
sheet = book[0]

...

sheet.sheet_protection = wsp
book.write("hogehoge.xlsx")

みたいな感じ。

ブックの保護


RubyXL::WorkbookProtection ってクラスがあって、基本的には sheet の時と同じような感じ

wbp = RubyXL::WorkbookProtection.new
wbp.workbook_password = ハッシュ化したパスワード
wbp.lock_structure = true # ブックの保護

... # ほかにも属性があるけど、今回使わないのであんまり詳しく調べていない

book = RubyXL::Workbook.new
book.workbook_protection = wbp

sheet = book[0]

...

book.write("hogehoge.xlsx")

みたいな感じ。

シートもブックも保護したい


workbook には RubyXL::WorkbookProtection を、worksheet には RubyXL::WorksheetProtection を指定する。両方やればいいだけ。

ハッシュ化したパスワードってなによ?


最近の Excel とかでは sha-512 とか吐き出すんだけど、どうも、そもそもパスワードのハッシュ化に RubyXL では対応していないらしい(sha-512 の場合 password 属性のみの設定では用が足りないし、password 属性に plaintext 設定しても効かない)。password 属性に設定できるパスワードのハッシュ値は 16bit でかなり脆弱なんだけど、xml 直接いじりゃどうせさっくりと外してしまえるようなパスワード(というか、RubyXL なんてパスワード無視でサクサク編集できるさ)なんで16bitの脆弱なパスワードで十分じゃね? って話。
で、そのハッシュ値の生成方法が ruby のコードで落ちていない。ruby 使う人たちはワークブックやらシートやらを保護したいという要求はないんかね。たしかに、そういう用途が必要なシステムには ruby ってあんまり使われていなそうだけど。
で、password 属性に設定すれば OK なハッシュ関数の実装が python であったので移植した。


module RubyXL
def self.hash_password(plaintext_password = '')

password = 0x0000
e = plaintext_password.to_enum(:each_byte)
e.with_index do |byte, idx|
value = byte << (idx + 1)
rotated_bits = value >> 15
value = value & 0x7fff
password = password ^ (value | rotated_bits)
end
password = password ^ plaintext_password.length
password = password ^ 0xCE4B

password = "%04x" % password

return password.upcase
end
end

このコードは worksheet でも workbook でもいける。これを使うと、

wbp = RubyXL::WorkbookProtection.new
wbp.workbook_password = RubyXL.hash_password("password")
wbp.lock_structure = true # ブックの保護

...


みたいな感じに。


最近、daily security run output が遅くて、weekly や monthly と時間が重なって実行できない、みたいなことがあって、かといってあんまり負荷の高い時間に走らせたくないし、というわけで困っていたので調査。
極たまに早く終わるときもあったりするわりに、10時間かかることもあったりして何事かと。
jail 側で periodic が大量に走るからそれで過負荷なのかしら?とか思っていて、過負荷の原因となるスクリプトはどれじゃと探していたのだけど。

全然違った。

jail のホストで以下のような設定をすると、ホスト側の periodic で全環境の pkg audit をやってくれて便利!とか思って以下の設定をしたのがまずかった。

# grep pkgaudit /etc/periodic.conf
daily_status_security_pkgaudit_jails="*"


pkg audit を回すスクリプトが必要に応じて audit データベースをダウンロードしてくるのだけど、端末から実行していないとき(periodic から実行されるとき等)は pkg audit する前にランダムで sleep している(max 3600秒)ことだった。そう。各 jail 毎に sleep するのだ!
そうすると、jail で子環境いっぱい作れば作るほど遅くなるというわけです。乱数がたまたま小さいのばかりだと早いけどたまたま大きいのばかりだと死ぬほど遅くなる。

どうせランダムに sleep するんだったら、ホスト環境でまとめて実行しなくていいよな、ということで、daily_status_security_pkgaudit_jails="*" はやめて子環境でそれぞれ実行することにして様子見。

ローカルってのは localhost じゃないです。TCP を使わないやつです(コマンド叩いたときとかの配送方法)。
あれです。crontab で起動される periodic の実行結果等、ローカルの root 宛のメールを受け取るのに必要です。

man rc.sendmail を見たり http://april.fool.jp/blogs/2012/03/freebsd%E3%81%AEsendmail%E3%82%92%E9%BB%99%E3%82%89%E3%81%9B%E3%82%8B%E3%81%AB%E3%81%AF/ とか見る限り、rc.conf で以下のように設定すれば取り合えずやりたいことはできる。
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="YES"
sendmail_msp_queue_enable="NO"


でもね。これで
# service sendmail stop
とか
# service sendmail start
とかやると、
Cannot 'start' sendmail. Set sendmail_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.
みたいな感じで怒られる。いや、怒られるけどとりあえず動く。
動くけど、気持ち悪くね? というわけで解決方法。

man rc.sendmail をみたり、 /etc/rc.sendmail を見たりすればわかるのだけど、どうやら
sendmail_enable="YES"
のときは sendmail_flags を引数に sendmail を起動するが、
sendmail_enable="NO"
sendmail_submit_enable="YES"
のときは sendmail_submit_flags を引数に sendmail を起動、
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="YES"
のときは sendmail_outbound_flags を引数に sendmail を起動しているだけ。
なので、エラー吐かせないで一番簡単にローカルのみ受け付ける設定にするには
sendmail="YES"
sendmail_flags="$sendmail_outbound_flags"
でよい。
localhost のみ smtp 受付する場合も同様で
sendmail="YES"
sendmail_flags="$sendmail_submit_flags"
でよい。

FreeBSD でこれをやる方法を探してみた。
外部サーバはプロバイダのサーバでもいいし自前サーバでもいい。ただし、メールを送信する側が固定IPでないなら SMTP Auth 対応必須。

というわけで、SMTP Auth 対応の方法を調べる。
なるべくなら追加の pkg とか ports とかいらないやつで。
(pkg までは許容範囲。ports 必須とかは NG で。)

まず最初に見つけたのがこれ。

http://blog.bugyo.tk/b-log/archives/448

おお、やりたいことが全部できる。すてき。やってみよう!と思ったのも束の間。

…えっと。sendmail 作り直しっすか。current 追っていて毎回 buildworld しているようなサーバならまあいいけど。freebsd-update できなくなるじゃんよ!
だめだよ。だめだめだよ。

というわけで却下。
でも、この記事のおかげで、どうやら標準の sendmail では SMTP Auth に対応できないってことが分かった。

標準の sendmail で対応できないなら sendmail にこだわる必要なし。pkg 入れる方向で。

どうも postfix + sasl が簡単そう。

http://www.maruko2.com/mw/Postfix_%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%AA%E3%83%AC%E3%83%BC%E3%81%AE%E8%A8%AD%E5%AE%9A_%28SMTP_%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88_%2B_SMTP_Auth%29あたりを参考に。

  • インストールするパッケージは postfix ではなく postfix-sasl。sasl 対応でないと SMTP Auth できない。


あとは、この記事の通りでOK。

記事がなくなると困るので一応内容をば。
  • main.cf の設定
    relayhost = [submission.example.org]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/usr/local/etc/postfix/relay_password
    smtp_sasl_security_options = noanonymous

  • smtp_sasl_password_maps の書き方
    1. リレー先サーバのアドレスと、認証で使用するユーザ名とパスワードを記述したファイル /usr/local/etc/postfix/relay_password を作成する。
      /usr/local/etc/postfix/relay_password の内容
      mail.example.com              username:password
      [submission.example.org]:587 username:password

    2. postmap コマンドを使用し、パスワードファイルから検索データベースを作成する。
      # postmap hash:/usr/local/etc/postfix/relay_password

    3. /usr/local/etc/postfix/relay_password.db ができる。

設定ファイルのそれぞれの項目の意味など細かい話は調べればわかるので割愛。

ウホッ。mariadb 10.1 が ports に登録されたっぽいぞ。はよ pkg に登録されんかね。なんて思っていたけどなかなか登録されない。そんなに時間かかるはずないんだけどねぇ。なんて思って調べていたら衝撃の事実が。

10.2-RELEASE からデフォルトのリポジトリの参照先が latest ではなく quarterly になっただとっ。

なるほど、それで新しいパッケージが見えないのか? というわけで /etc/pkg/FreeBSD.conf を編集してみて pkg search したら、あったぜ! mariadb101-server 。これで galera 検証するんだぜ、なんて思っていたのだけど、/etc/pkg/FreeBSD.conf はいじらない方がいいらしい。まあ、個人的にも標準の設定ファイルはできるだけいじりたくない。

というわけで調べていたらやり方を見つけた

やってみる。
続きを読む

フォルダリダイレクト使いたくて samba 4 でドメイン構成したというのに。

解決まで時間かかったけど、どうやら、MS15-011 に関連して、グループポリシーのデフォルト値が変わっているらしい。
そのために \\<ドメイン名>\SYSVOL にアクセスができなくなっていることが影響している模様。

実際、\\*\NETLOGON と \\*\SYSVOL に対して RequireMutualAuthentication=1, RequireIntegrity=1 と設定すると Windows 8.1 でも同様の事象が発生、これだと確信した。
きっと samba には RequireMutualAuthentication=1, RequireIntegrity=1 の時に必要となる機能のなにかしらが欠落しているのでしょう。

とりあえず、\\<ドメイン名>\SYSVOL へアクセスできればよさそうです。ただ、今のところ何も使っていないけど、\\<ドメイン名>\NETLOGON もアクセスできないと将来的に困りそうなので一緒に対策します。

さて。設定方法。

続きを読む

タイトルの通りなんだけど、imap で複数のPCでメールを見るような場合、どこか1か所で常時動かしておきたいってなるので、どこか適当なサーバで動かすのがいいかなってなる。

だけど、そのまま world wide につながせるとセキュリティ的にとても嫌な感じなので、例えば apache とかでリバースプロキシ設定して、https 対応にしたり認証かけたりしたいわけ。

でも、そのためだけにわざわざサーバ1台立てられるほど裕福でもないし、ほかのサービス (owncloud とか) も動いていたりすると証明書何枚も発行するのもいやだし、自分だけならいいけどほかのサービスをSNIに対応していないクライアントが利用するかもしれないとかなると面倒なので、適当なパス切ってぶら下げたい。
続きを読む

以前書いた記事で Mechanize で文字コードを決め打ちする方法を書いてみたが。
なんかしらんけど、某サイトで eucJP-MS を指定したら正しくパースできなくなった。

まあ、取得するべき html はいったん保存して後からパースするので、ローカルのファイルから読み込んだ文字列を Nokogiri が正しくパースしてくれる限り、Mechanize は直接的にはちゃと解釈してくれなくてもいいんだけど、"eucJP" にしていると Windows の機種依存文字があるページで form が投げれなくなったりするので対策が必要……

続きを読む

元ネタはこちら。

http://30sman.com/real-affiliate/blog-copy.html

本当にそんなにコピっているの?ストレージどんだけあるんだよ?
ってなことを考えていたらいたずらを思いついた。

が、やっぱりというかなんというか。コピってるわけではなさそうだ。

とりあえず、総容量約 2PiB のサイトをつくってみた。
1ページ 約30.7MiB を 65536 ページだ。
それと別にトップページを用意して、トップページからはそのうちの1ページにリダイレクトするようにしてある。
すべてのページは自分も含むすべてのページへのリンクがあるだけという感じ。
(自分はそんな容量があるサイトは持っていない。静的なページに見えるようにヘッダ等調整して動的に生成している。)

30.7MB の html ってとっても重いぞ。

で、トップページを登録?してみた。

重い重い。って重いのは本題ではないが。

でアクセスログ確認。
うん。91.208.99.2 からトップページにアクセスがあり。
リダイレクトされてリダイレクト先にもアクセスあり。
そして 91.208.99.2 からはこの2つ以外にアクセスがない。

もう一度同じページへアクセス。

うん。やっぱり 91.208.99.2 からトップページにアクセスがある。リダイレクトもされている。
そしてやはり 91.208.99.2 からはこの2つ以外にアクセスがない。

User-Agent はっていうと、複数のブラウザで試したが、その時使っているブラウザと同じになる。

というわけで結論。
おそらく、コンテンツ書き換え型の Reverse Proxy。
ついでに Proxy を通った URL を google に登録してこの Proxy へ誘導。
そいでもって広告の PV 稼ごうってことのようだ。
たぶん google 以外のサイトにも登録しているんでなかろうか。

初回が表示されないことがあるのはサーバが重くて DNS タイムアウトしているだけでないかな。2回目からはキャッシュがヒットするから表示される。イギリス⇔日本はネットワーク的にも遠そうだしね。

そして日本のサイトばかり狙い撃ちされている!みたいな話になっているけど、実は日本のサイトは狙い撃ちされてるんじゃなくて、日本で有名になってしまって登録されているか確認した人がいっぱいいた、確認した人の Proxy サイトが全部 google に登録された、ってだけの話のような気がする。

ただ、Proxy だろうがなんだろうがクライアント側から見るとコピーに見えるわけで、ロボットにもコピーに見えてしまうってのはよろしくない。他のサイトの方々がおっしゃっている対策はした方がよさそう。

以上!

ruby 1.8 で作ったコマンドがあって、作り直ししている時間もないので仕方なくそのままにしていたのだが、その ruby を動かしているマシンが FreeBSD 7.3 だしセキュリティ的にもまずいよね?って話で。
とりあえず、ruby 1.9 に変更している時間はないので OS だけ FreeBSD 8.4 のマシンを用意して ruby 1.8 を入れて freebsd-update で 10.1 にアップデート。ruby 1.8 はアップデート先のバイナリがないのでそのまま pkg2ng で変換して pkg lock して compat8x 入れて動かす方向で。

で、freebsd-update する前に気が付けばよかったのだけど、ruby-gd を入れ忘れていたのでインストールすることになったのだが、これが大はまり……続きを読む

windows だと plink.exe -nc、UN*X だと ssh -W を使うことでシェルを使わないで足場経由でログインできるようになる。

この方法を使うと足場でシェルを実行する必要がなくなるので、セキュリティ上シェルを禁止したくなる。

その方法。

sshd_config で ForceCommand の設定をするだけ。それだけで shell が起動しなくなる。
例えば、

ForceCommand echo Invalid login.


だが、素直にこれをやってしまうと、足場自体のメンテナンスをしたいときはコンソールでしかメンテナンスできなくなってとってもめんどくさい。特に、authorized_keys の更新をコンソールでしかできないのは致命的。(ファイルアップしたりコピペしたりするよね?)

というわけで、実際には Match で外からの接続の時だけこれを実行するようにしたり authorized_keys で from= を指定したりする必要あり。

sshd_config に追加するのはこんな感じ?

Match Address !192.0.2.*,*
X11Forwarding no
PermitTTY no
ForceCommand echo Invalid login.

あとは authorized_keys などで外から接続できるユーザを制限しましょう。

今日はとりあえず参考のURL貼るだけ。

http://blog.kteru.net/freebsd-100-bsdinstall-manual-zfs/

後でちゃんと書く。

うーん。
自分の持っている端末 URBANO L01 を会社のネットワーク(NTT フレッツネクスト)につなぐと push 通知が受け取れなくなる、という現象に遭遇。メール来ても通知してくんないんで割と困る。よくわからんけど、talk アプリがハングアウトに変わってから起こっている現象っぽい。talk アプリを無効にすると他のネットワークでも push 通知が受け取れなくなるみたいなので多分間違いない。

調べてみたところ、push 通知は TCP で mtalk.google.com:5228 に接続するらしい(5229 と 5230 も使われるらしいが)。

で、ルータ(PR-500MI)の設定を確認するも、フィルタリングしているようには見えない。
SPI が悪さしているのかと思ってログを確認しても破棄したログはなし。念のためタイムアウトを延ばしても案の定変化なし(SPIについては当初からちょこちょこいじっているけど、、、)。

うんうん悩んでいたが、念のため、mtalk.google.com の IP を調べてみる。

!

ほほう。v6 振られているんか。google だしな。まあそうだよな。
ルータでAAAAフィルタをONにして手動でDNSをルータに向ける。

!

push 通知くるじゃん!なにこれ!こんなこと?くぅ〜っ、シテオク!

その後もDNS周りをいろいろいじってみたが、少なくとも URBANO L01 では、push 通知の登録をするために IPv6 アドレスが振られていると到達性に関係なく IPv6 を優先で使っているぽい? 他の android 端末は持ってないからどんな挙動するのか知らんけど。

さあ困ったぜ。
まあ、とりあえずは URBANO L01 で NTT の閉塞網内で通信できる必要はない。ので、DHCP でこの端末だけ DNS をルータに向けて(AAAAフィルタ効かせて)とりあえず逃げておく。
他にいい方法ないんかね。




Fetching xproto-7.0.27.txz: 100% 58 KiB 59.7kB/s 00:01
pkg: cached package xproto-7.0.27: size mismatch, fetching from remote
Fetching xproto-7.0.27.txz: 100% 58 KiB 59.7kB/s 00:01
pkg: cached package xproto-7.0.27: size mismatch, cannot continue


な感じで pkg upgrade やら pkg install やらができない。
というわけで、リモートリポジトリを強制的に更新してみる。


# pkg update -f
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100% 944 B 0.9kB/s 00:01
Fetching packagesite.txz: 100% 5 MiB 1.1MB/s 00:05
Processing entries: 100%
FreeBSD repository update completed. 24049 packages processed.

終わったら upgrade。

# pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
pkg: 1.5.1 -> 1.5.2

The process will require 1 KiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]:


ほほう。pkg のバージョンが上がっているのね。
リモートリポジトリ更新するまでそんなメッセージでなかったけど。
素直に pkg を更新すると upgrade できた。

このページのトップヘ