なんか簡単にできる方法がないっぽい
ping -i 1 localhost | ruby -analpe '$_[0, 0] = Time.now.to_s + " "'
なんか簡単にできる方法がないっぽい
ping -i 1 localhost | ruby -analpe '$_[0, 0] = Time.now.to_s + " "'
をやりたい。node 付属の dns で mdns クエリを行うとうまくいかなかった。mdns のライブラリを使うと以下のようになった。_services._dns-sd._udp.local. ひいたときにソースアドレスがなぜか取得できないので若干めんどうなことになっている……
//#!/usr/bin/env node
const mdns = require('mdns');
function getServiceWithBrowser(browser, timeout) {
if (!timeout) timeout = 500;
return new Promise(function (resolve, reject) {
const ret = [];
browser.on('serviceUp', function(service) {
ret.push(service);
});
//browser.on('serviceDown', function(service) {
// console.log("service down: ", service);
//});
browser.start();
setTimeout( () => {
browser.stop();
resolve(ret);
}, timeout);
});
}
function getAllServices(timeout) {
return getServiceWithBrowser(mdns.browseThemAll(), timeout);
}
function getServiceForType(type, timeout) {
return getServiceWithBrowser(mdns.createBrowser(type), timeout);
}
async function run () {
const services = await getAllServices();
const results = await Promise.all(services.map( (s) => getServiceForType(s.type)));
const hosts = results.reduce(
(r, i) => (
i.forEach((i) => r.set(i.host, i.addresses)),
r
),
new Map()
);
for (let [name, addresses] of hosts.entries()) {
console.log(name);
for (let address of addresses) {
console.log("\t", address);
}
}
}
run();
excite光をつかってたので、移行が楽な excite MEC光 という IPoE サービスにしてみました。IPv6 ネイティブかつ DS-Lite による IPv4 接続サービスです。
事前に調べてもさっぱりわからない点があったのでまずそれを検証しました。
この Aterm WG1810HP(MF) は DS-Lite 対応品となっている。DS-Lite 対応ルーターなら他のものも利用可となっているが、このルーターは常に強制的にレンタルする必要がある。
強制レンタルはまぁ許せるけど、それならレンタル料金 (100円/月) を月額料金に含めて書けよと思う。
答: できない
DS-Lite では NAT が自宅内ルーターではなく VNE ゲートウェイ (AFTR) 側で行われる (CGN/キャリガグレードナット)ので、手動でポート解放というのが原理的に不可能。それでは UPnP には対応しているのか?という疑問
iijmio ひかりでも答えている。「IPoE接続サービスのDS-Lite方式でのIPv4サービスでは、UPnPによる外部ホストからお客様宅のコンピュータへの通信路確立は行えません。外部へのサービス公開が必要な場合、PPPoE接続を併用されるか、IPv6の利用をご検討ください。」 。
デュアルスタック
インターフェイスで IPv6 を有効にすればそれだけで IPv6 ネイティブで繋がるようになる。
なぜか設定でリンクローカルだけの割当になっている端末があったのが罠かった。
デュアルスタック
ZenFone3 (Android 8.0.0)
無線LAN経由で IPv6 接続される。特に設定はなし。
IPv4 接続
NATタイプ: 2
IPv4 接続
NAT タイプ: B
IPv4 接続
torne mobileアプリから自宅nasneへ直接接続する機能があるが、機能するか?
アプリから nasne 設定を開くと「通信モード」が表示される。これがNATの状況っぽい? これまでの PPPoE だと通信モードA だった。
IPoE/DS-Lite だとにした直後は通信モード Cで、視聴不可だったが、同一ネットワークから一度つないだら通信モードBになって見れるようになった。
おおざっぱにいうと
だけ。
細かいところで疑問点があったので RFC6333 を見てみた
RFC6333 の B.1.2. Translation Details あたりにAFTR のNATとしての挙動が書いてある。
NATテーブルは例は RFC6333に書いてあるので引用しておく。結局一番知りたいのはこれだった。
+------------------------------------+--------------------+ | Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port | +------------------------------------+--------------------+ | 2001:db8:0:1::1/10.0.0.1/TCP/10000 | 192.0.2.1/TCP/5000 | +------------------------------------+--------------------+ Dual-Stack Lite Carrier-Grade NAT Translation Table
だいたいいいけど、 DS-Lite では 192.0.0.0/29 が予約されているので、ルーターのLAN側のDHCPでこのレンジが払出されないようにしないとまずいっぽい。
DS-Lite ルーターがデフォルトで 192.168.10.0/24 とかになっているのはこのへんの事情なんだろう。