vol38. windows10でmDNSの問題を解決する
先日、windows10で名前解決の問題にぶち当たった。windows10からLAN接続されている機 器に対してpingが通らないのである。
結論からいうと、windows10に実装されているmDNSを無効にして、3rd party のmDNSをイ ンストール(bonjour)したら問題が解決した。
windows10に3rd partyのmDNSをインストールしても、window10で実装された標準mDNS が優先的に使用される、かつ、このmDNSがバグってる(予想)ので、うまくうごかなかった模様 。レジストリを修正して、標準mDNSを無効にしないといけない。
解決に丸1日以上かかったので、うっぷんばらしと、今後の備忘録代わりにブログに投稿 しておく。
問題の概要
ホスト名(hogehoge.local)でターゲットを指定すると、ホスト名が見つからないと怒られ る。IPアドレス指定は問題なしなことから名前解決の問題。 ホスト名指定でも、ping に-4オプションを加えとipv4指定すると動くが、-6とipv6指定すると動かない。 以下はそのログ。
C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。
C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping 192.168.100.18
192.168.100.18 に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping fe80::2fc:70ff:fe00:1
fe80::2fc:70ff:fe00:1 に ping を送信しています 32 バイトのデータ:
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms
C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -6
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。
C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -4
hogehoge.local [192.168.100.18]に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
システム構成
システム構成は以下の通り
- PC A (Windows10)
- PC A (Linux Debian(Vmware on Windows10))
- PC B (Windows7)
- 機器A (Linux: hogehoge.local)
- avahi daemon を利用して、mDNS をサポート。機器名はhogehoge.local
システム内の機器はEthernet Switch を通じて接続。システム内のすべての機器はipv4, ipv6対応している。
詳細
以下詳細。
PC A(windows10)から機器A(hogehoge.local)へのpingで名前解決ができない
PC B(Windows7)でも問題なし
その他
- windows10にもbonjour install してみたけどNG.
問題解決方法
冒頭にも述べたように、結論から言うと、windows10のmDNSの機能を無効にし、他のmDNSクライアントを 用いることで問題が解決する。
- mDNSを無効にする
- 3rd party のmDNS client をインストールする
- bonjour pint services for windows https://support.apple.com/kb/DL999?viewlocale=en_US&locale=en_US
これで動くようになった!!
いろいろ情報を集めたけど、最終的な決めてとなったのは以下の投稿。感謝!!
http:// https://superuser.com/questions/1330027/how-to-enable-mdns-on-windows-10-build-17134
vol37. mDNSとは
Linux 上で、avahi を使って、名前解決をする仕組みを知りたかったので調べてみた。 UDPの上位レイヤーで動作するmDNSというプロトコルを使用している。
mDNS とは何か
- multicast DNSの略
- 通常のDNSは、DNS server に問い合わせ名前解決を行う。
- mDNSは、マルチキャスト転送で、ネットワーク内のデバイスに問い合わせる事により、
名前解決を行う- DNSサーバーがいらない。
- RFC6762で規定
名前解決の流れ
- client は、mDNS query メッセージをマルチキャストで投げる
- 対応する機器はmDNS response メッセージをマルチキャストで応答
- mDNSは、マルチキャストアドレス 224.0.0.251、UDP 5353ポートを使用
- IPv4, IPv6のIP address の問い合わせは、query のType field で指定
zeroconf との関係
- 名前解決は、zeroconf 3つの技術のうちの1要素
- ip address の割り当て
- 名前解決
- device の位置の特定
- avahi はzeroconf を実現するためのLinux上での実装。apple はbonjourという実装。
nsswitchとは
- Linux における名前解決の為のclient system(avahi はmDNSの為の、server systemの
位置づけ) - local file, mdns, dns 等複数ある名前解決手法のうち、どの手法を用いて、どの順序
で名前解決をするかを決める。 設定ファイル
/etc/nsswitch.conf hosts: files mdns4_minimal [NOTFOUND=return] dns mdns
優先順位は、files(/etc/hosts), mdn4_minimal, dns, mdns の順序。
miinimal はホスト名に.localが含まれていないと名前解決を行わない
mdns4 はIPv4のみ
mdnsはIPv4, IPv6双方で名前解決を行う。ping hogehote.local とうつと、上記の設定では、まず/etc/hostsの中身を確認し、次に
mdns ipv4 プロトコルで、名前解決を試みる。失敗したら、dns server に問い合わせを行い、 最後に、mdns (v4, v6) で解決を試みるというながれ。
vol36. Ethernet AVB / Milan プロトコル
本日、MILANプロトコルが発表された。
Ethernet AVB/TSN に基づいたPro AV 向けのプロコトルで、Certified デバイス間の相互
動作を保証する。概要をまとめてみたい。
MILANとは?
- AVB/TSNの上位layer(アプリ層)のプロトコル
- Certified されたAVB/TSN デバイス間の相互接続性を保証する
- アプリ及びNetwork layerへの要求を定義
- compatible media streams, formats, media-clocking, redundancy
and controller software.
- compatible media streams, formats, media-clocking, redundancy
- Pro AV アプリ向け
- 2018/6/5 にプレスリリースされた
Creators
AVnul Alliance 内のPro AV Marketの企業
- AudioScience
- Avid
- Biamp
- d&b audiotechnik
- L-Acoustics
- Luminex
- Meyer Sound
概要
- AVB protocol base (gen1)
- Stream Format はAAF、Media Clock RecoveryにCRF、Device Discovery やConnection
Management にAVDECCを採用 - Redundancy に対する項目もあるが、それを実現するために、どのプロトコルをサポ
トしないといけないかは規定していない。 - user-driven protocolとのことなので、user の要求に基づいて、仕様が追加されていく形になるだろう
White Paper
以下、Whilte Paper のポイントを列挙
http://avnu.org/wp-content/uploads/2014/05/Milan-Whitepaper_FINAL-1.pdf
Ovewrview
Milan creates the endpoint solution layer for professional
audio equipment based on the following AVB IEEE stan-
dards:Therefore, Milan defines a set of technical profiles for these
IEEE standards dedicated to professional audio endpoints:- Media Clocking Specification
- Stream Format Specification
- Redundancy Specification
- AVDECC Specification for Endpoint
Media Clocking Specification
- What Format and Sample Rates are supported?
- mandatory 48kHz
- optional: 96kHz, 192kHz
- CRF (Clock Reference Format) defined in IEEE 1722-2016.
- What Format and Sample Rates are supported?
Stream Format Specification
- AAF 32bit (mandatory)
- max 8ch per stream
- High Capacity 32 bit (optional)
- max 56ch per stream
- High Capacity 24 bit (optional)
- max 64ch per stream
- AAF 32bit (mandatory)
Redundancy Specification
- duplicating the network infrastructure into two independent logical
networks (e.g. a broken cable or power loss of a bridge). By
connecting endpoints to both networks, seamless redundancy can be
achieved. - Milan does not specify a particular implementation, rather defines the
gen- eral requirements that implementations must adhere to in order to
achieve interoperability.
- duplicating the network infrastructure into two independent logical
AVDECC Specification for Endpoint
- The Milan AVDECC specification provides a consistent set of
requirements that provides the following features:- Automatically discovers the addition and removal of pro audio
devices on the network - Retrieves the entity model of the discovered pro audio devices
- Connects and disconnects streams between the discovered pro audio devices
- Obtains status information about the discovered pro audio devices
and their connections - Controls the discovered pro audio devices
- Automatically discovers the addition and removal of pro audio
- The Milan AVDECC specification provides a consistent set of
参考
http://avnu.org/milan/
http://www.inavateonthenet.net/news/article/avb-based-milan-protocol-promises-to-boost-open-standards-networking
vol35. 英語の勉強方法について振り返る
過去に色々な英語を試してみた。どの勉強方法が効果的だったかをあらためてふりかえってみたい。
ipad で英語タイトルのドラクエ
- 1タイトル500円 - 2500円程度
- ドラクエ1から8まで発売されている(英語版は7はまだリリースされていない)
- ipad で辞書を引きながら進める
- 幼少の頃にはまったドラクエ。ストーリはバッチリ覚えているので、わからない英
語があっても飛ばして楽しめる。街の人々との会話は、まさに英会話のレッスンになる
。スマホ版でリメイクされていて、グラフィックがキレイになり、新しいキャラやスト
ーリーも追加されている。AIモードも追加されているし、quicksave機能でフィールド
上ですぐにsaveができるのも便利。iOS11のsplitview 機能をつかって、気になる単語
が出てきた時は、辞書ですぐに調べると語彙力もグンとあがる。
オンライン英会話
いろいろなオンライン英会話学校がある。skypeをつかって、ネット上で海外の先生と話
す。自分は、skytalkを利用した。skytalkの先生はフィリピン在住の先生が主。フィリピ
ンは主言語が英語なので、どの先生もペラペラ。
- skytalk
- 月 5000円 で毎日25分レッスン
- 先生をその日の気分で選べる
- 英語を話す時に感じる照れの解消や度胸をつけるのに役立った。
図書館で、幼児向けの英語の絵本を大量に借りる。
- 図書館だからタダ
- 1冊5分-10分くらいでサクサク読める
- 最初は楽しく読んでいたが、ストーリーが幼稚で流石に飽きてきた
Youtube 幼児向け動画
- Peppa Pig
- これも1話が5分-10分くらい。
- 絵本と同じく、これも、最初は楽しんでいたが、ストーリーが幼稚で流石に飽きてきた
- 他にも色々とあるが他にいいものを自分は見つけれなかった。
日本アニメの英語版
- 子供の頃にみたアニメ番組が、英語で吹き替えされて、海外で放映されている。
ネットで"watch anime dubbed"等で探すと、ガンダムとかエヴァンゲリオンとかジ
ブリの映画とかがみつかる。
もちろん、洋画を普通にみてもいいんだけど、ものによっては英語が聞き取れなく
て、ストーリーについていけなかったりするから、過去にはまったものを英語で改
めてみてみるのも良いと思う。英語に大量に触れるには良い題材だ。
その他
- アメリカのテレビ番組
- 海外の有名な俳優やスポーツ選手などが登場する!!
https://www.youtube.com/results?search_query=Jimmy+Kimmel
https://www.youtube.com/watch?v=xmDxYe0wOvU
- 海外の有名な俳優やスポーツ選手などが登場する!!
最後に
本当は、海外の人と1on1で話す場数を踏むのがもっとも早いと思う。何事もoutput が大
事だ。ただ、NOVAとか英会話学校は授業料が高いので、なかなか気軽に大量のレッスンは
受けれない。
なので、以下のブログのような、フィリピンセブ等への短期語学留学はとっても良い方法
だと思う。1ヶ月の滞在日、食費込みで、20万ちょい。後は飛行機のチケットを手配すれ
ばいいだけ。空き時間は、ビーチ等でのんびりできるしとても、よいかと思う。
- QQ Englishで1ヶ月間フィリピン・セブ島へ語学留学行ってみた成果と感想
jmatsuzaki.com
おすすめの勉強法があったら、是非教えてください。
vol34. Linuxの時間関数
Linuxでは、time_t, tm, timespec, timevalなど、様々な型や構造体が、様々な関数で 使用されている。全体像を整理してみた。
全体像
man page で引くと
- gmtime() やlocaltime()は、ライブラリ関数
- time(), gettimeofday(), clock_gettime()はシステムコール
である
全体的にみると、システムコールでカーネル層から取得した時刻を、ライブラリ関数で人
間にもわかりやすい形に加工するといった構造だ。
time_tは秒単位の情報を、timespec, timevalはそれぞれ、us, ns単位の情報を扱う。
struct timeval {
time_t tv_sec; /* Seconds. */
suseconds_t tv_usec; /* Microseconds. */
};
struct timespec {
time_t tv_sec; /* Seconds. */
long tv_nsec; /* Nanoseconds. */
};
timeval時刻を取得するには、gettimeofday()を、timespec時刻を取得するには、
clock_gettime()を使う。ただし、gettimeofday()はPOSIX環境で古くから使われてきたが
、今は、非推奨でclock_gettimeが推奨されている。
time_t のインプリはアーキテクチャ依存で、32bit だったり、64bitの変数だったりする
。
time_tの情報を人間にわかりやすい形の情報で格納するための構造体がstruct tmだ。
struct tm {
/*
* the number of seconds after the minute, normally in the range
* 0 to 59, but can be up to 60 to allow for leap seconds
*/
int tm_sec;
/* the number of minutes after the hour, in the range 0 to 59*/
int tm_min;
/* the number of hours past midnight, in the range 0 to 23 */
int tm_hour;
/* the day of the month, in the range 1 to 31 */
int tm_mday;
/* the number of months since January, in the range 0 to 11 */
int tm_mon;
/* the number of years since 1900 */
long tm_year;
/* the number of days since Sunday, in the range 0 to 6 */
int tm_wday;
/* the number of days since January 1, in the range 0 to 365 */
int tm_yday;
};
個々の関数の役割は、man page で確認して欲しい。
参照:
vol33. GDPRとは
最近、会社でGDPRに関する説明会が実施されたり、いろいろな会社から、GDPRに関する
メールが届いたり、GDPRという名前を急に身の回りで聞くようになった。
そこで、GDPRについて調べてみた。
GDPR(General Data Protection Regulation) とは
欧州で始まる、個人情報保護に関する新しい法律
- EU市民の個人情報の管理を厳格化し、個人データが安全であることを保障しなければならない
- 個人データの利用方法について明確な同意を本人から得なければならない
- 顧客の権限を強化
- 本人の個人データへのアクセスや修正、削除を可能に
2016/4/27に採択、2018/5/25より適応
- 個人データは、名前、写真、メールアドレス、銀行の詳細、SNSの投稿やウェブサイト
の更新情報、場所の詳細、医療情報、コンピューターのIPアドレス、Cookie、生体遺伝
子情報、 思想信条、入れ墨に至るまで、個人に関する広範囲な情報
なぜ、EUでこのような法律が採択されたのか?
企業にとっては、GDPRに対応するのには大変な労力と資金が必要になる
では、なぜ、EUでこのような法律が採択されたのか?
- プライバシーの保護
- ヨーロッパでは、会社から監視を受けること自体に大きな抵抗がある
- EU内のビジネスの保護
- 特に米IT企業に強く抵抗するため
結果、米国のITスタートアップ企業やゲーム制作会社、広告技術会社の数社はGDPR
違反を犯すリスクより、EU撤退を選んだ。米国の小規模企業の一部でこうした動きが広
がっている。
なぜ今なのか?
ビジネスのグローバル化、ビッグデータの台頭、クラウドサービスの利用拡大などのITの
進化により、個人情報保護の重要性が高まる一方で、サイバー攻撃や内部不正等によって
、個人情報に関るリスクが高まっていることが背景。
https://www.secure-sketch.com/blog/gdpr-5minutes-explanation
このプライベートデータは、何も欧州だけでなく、世界各国共通の事項だ。
欧州だけでなく、米国やアジアでも今後似たような法律が採択されるのか?
vol32. Windows スポットライト
Windows スポットライト
日替わりで、壁紙やロック画面の写真が変わる。
日々、ネットから写真をダウンロードしているらしい。
これはよい機能だね。
TVのディスプレイに応用すれば日替わりフォトフレームになるな。
dynamic-theme というアプリを使うと、このwindows スポットライトの写真を壁紙にも
適用できる。
https://forest.watch.impress.co.jp/docs/review/1107477.html
https://www.microsoft.com/ja-jp/store/p/dynamic-theme/9nblggh1zbkw