スキップしてメイン コンテンツに移動

投稿

米国の固定ブロードバンド接続(2017年FCC統計)について

PostgreSQLのインストール後、大き目のデータがないかと思い探していたところ、 Fixed Broadband Deployment Data: June, 2017 Status V1 opendata.fcc.gov Data Download Page: https://www.fcc.gov/general/broadband-deployment-data-fcc-form-477. Resources page: https://www.fcc.gov/general/form-477-resources-filers があったので、データベースに取り込んでみました。 CSVファイルサイズは10G程あり、レコード件数は約7000万件の中規模データだったのですが、クエリをかけてみたところ、内容的に面白い結果がでたので、記事にしてみました。 クエリは以下の通りです。 select "Max Advertised Downstream Speed (mbps)", "Provider ID", "Provider Name", count(*) from testtable02 group by "Max Advertised Downstream Speed (mbps)", "Provider ID", "Provider Name" order by count(*) desc; つまり、2017年時点で、米国の固定回線数上位の速度とそのプロバイダはどうなっているか?というクエリです。 この結果、上位50件が以下のようになりました。 上位3件はなんと2Mbps 25Mbps そして0Mbpsという結果が出ました。。。 下り0Mbps?というのは、速度のアドバタイズをしていないという事だろうとは思いますが、上位7件(約4375万件、総計約7000万件のおよそ62.5%)はすべて25Mbps以下というのに驚きました。 米国でのインターネット動画配信などは、このデータを見ておかないと、たとえば高精細データが見れない人向けに、サイト構成の考慮が必要だということが一発でわかります。...

CsipSimpleで、050 IP電話とLinphoneを同時に使う。

Android 端末で、CsipSimpleを使い、050のIP電話とLinphoneのIP電話を同時待ち受けすることができたので、その時のメモです。もちろん、それぞれのアドレスから発信することもできました。 Android端末のSipクライアントにCsipSimpleを選んだ理由はいくつかあります。 a. Zoiper、Calls、Linphoneいずれも個別鳴り分けかつ同時待ち受けに対応していない。 唯一、CsipSimpleが、連絡帳に設定した個別鳴り分けかつ同時待ち受けに対応している。(ただし、テストした範囲では、両方ともTLS/SRTPなしの場合。) b. Linphoneアプリは、Linphone以外の非TLSクライアントに発信できるが、通話できず、busyになる。このため、Linphoneアプリは使えないが、CsipSimpleではOKだった。 c. Linphoneアプリは、デフォルトアカウント以外の同時待ち受けができなかったが、CsipSimpleはOK。また、 発信時の回線選択もCsipSimpleは簡単だが、Linphoneアプリは切り替えには基本的に対応していない。 以上の理由で、検討したアプリのなかでは、CsipSimple一択の状態でした。 Linphoneのアカウントについては、相手側がTLSに対応したクライアントなら、CsipSimpleの設定で、TLS/SRTPの設定をONにすることで、通話できます。 しかし、Linphoneのアカウントで呼び出しした時に、相手側がどのアプリを使っているか、つまり、TLS/SRTPに対応できるかどうかは事前に判断できないケースがある(標準電話アプリを使用している場合等)ので、CsipSimpleの設定では、TLS/SRTPをオフにして運用しています。 なお、050の着信では、たとえば、IP-Phone Smartの050の場合は、TLS/SRTPはそもそもOFFですが、050Plusは、TLS/SRTPは必須です。この設定は、アカウントの設定でそれぞれ切り替えることができますが、TLS/SRTP必須とTLS/SRTPなしの050の同時待ち受けができるかどうかまでは確認していません。 参考までに、LinphoneアプリでIP-Phone Smartの発信を行い、ア...

notes on PostgreSQL11 on windows (1)

Windows Server にPostgreSQL 11(big data版)をインストールした時の、設定やコマンド類のメモ、その1です。 1. インストール後必要な設定 環境変数にPathはWindows用のインストールプログラムで設定されますが %PGDATA%はコントロールパネルから手動で設定しておく必要があります。 例 PGDATA P:\PostgreSQL\data\sv10a\pg11 尚、%PGDATA%はデフォルトのDATADIRの様です。マルチインスタンス起動の場合は、この限りではありません。 2. データベース起動、初期化、一覧表示等 pg_ctl initdb [-D DATADIR] -o "-W -U postgres -E UTF8" PGDATA以下に初期DBを構築します。-D DATADIRで指定された場合、DATADIR以下に初期DBを構築します。-Wはパスワードプロンプト、-U はDB所有者、-Eはエンコーディングです。-o 以下は""でくぐってください。 なお、ロケールについては、windows の --locale=Japanese_Japan.932は、ja_JP.UTF-8 相当との記述を見ましたが、未確認です。(確認要) pg_ctl start -l pg11.log log付きで起動します。データのDirectoryを指定する場合は、-D DATADIRで指定します。インスタンス起動に相当します。 psql -Upostgres --list 起動済みのdbを一覧表示します。 pg_ctl stop(pg_ctl startと同様、-D DATADIRでデータDirectoryを指定する場合、インスタンス停止に相当します。) 3. PostgreSQL 11 と pgAdmin4 について pgAdmin4 はWindowsの場合、32bit版しか配布されていません。このため、python2.7の32bit版をインストールする必要があります。 Pythonの設定は、PATHへの追加が必要です。 C:\Python27\Scripts その他、pgAdmin4のインストール時に、ややこしかったことは、パッケージを...

iSCSI Diskless Windows Server boot over infiniband (2)

Windows Server を Infiniband で iSCSI Diskless boot した、続き(2)です。 構成は引き続き同じです。 sv10a 10.1.1.1/10.1.2.1 0x0002c9030001111 0x0002c9030001112 sv10b 10.1.1.2/10.1.2.2 0x0002c9030001121 0x0002c9030001122 sv10c 10.1.1.3/10.1.2.3 0x0002c9030001131 0x0002c9030001132 sv10d 10.1.1.4/10.1.2.4 0x0002c9030001141 0x0002c9030001142 Default GW: 10.1.2.255 ISCSI SV: 10.1.1.254/24(SAN側) 10.1.2.254/24(アプリ側) SAN側ドメイン名:san.domain.xx 10.1.1.0/24 アプリ側ドメイン名:domain.xx 10.1.2.0/24 2-a. WDSの設定 2 WDSにWindows Serverのイメージを読み込ませておきます。 旧めのカードであるConnectX-2の場合、ファームウェアのアップデートは必要ですが、Windows Server 2019ではそのままでも大丈夫ですが、Windows Server 2016, Windows Server 2012の場合、ドライバーも新しいバージョンのものを、boot/installの両方に読み込ませてください。 1. Mellanox driver のインストールパッケージを/a をつけて実行します。 2. ウィザードに従って、例えば c:\Temp\drivers にファイルを解凍します。 3. boot.wimを、install メディアから、一時ディレクトリにコピーしておきます。 (例: C:\Temp) 4. wim イメージをマウントするディレクトリを作成しておきます。 (例:C:\Temp\mnt) 5. boot.wimをマウントします。 dism /Mount-Wim /WimFile:boot.wim /index:2 /MountDir:mnt 6. boot ...

iSCSI Diskless Windows Server boot over infiniband (1)

Windows Server を Infiniband で iSCSI Diskless boot しました。 Windows でInfinibandを使う記事は多いのですが、iSCSI bootさせる記事はなかったので、本稿をメモ代わりにアップしました。 いうまでもなく、Windows Server 自体はInfinibandに対応していますが、Diskless boot させるには、DHCPのリース予約設定で、Ethernetアドレスではなく、infinibandのアドレスを指定します。 その他、Diskless bootおよびPXE(OSインストール時に必要)のDHCPサーバ側の設定、iSCSIの設定が必要です。それほど難しい設定ではありませんが、今回の設定では、iSCSI側をSAN専用にし、通常のアプリケーション側ネットワークとは別にしています。 構成概要は以下の通りです。 1. Windows serverでのDHCP設定 サーバー名,IPアドレス,物理アドレス(GUID)は以下のようになっているとします。 sv10a 10.1.1.1/10.1.2.1 0x0002c90300011111 0x0002c90300011112 sv10b 10.1.1.2/10.1.2.2 0x0002c90300011121 0x0002c90300011122 sv10c 10.1.1.3/10.1.2.3 0x0002c90300011131 0x0002c90300011132 sv10d 10.1.1.4/10.1.2.4 0x0002c90300011141 0x0002c90300011142 Default GW: 10.1.2.255 ISCSI SV: 10.1.1.254/24(SAN側) 10.1.2.254/24(アプリ側) SAN側ドメイン名:san.domain.xx アプリ側ドメイン名:domain.xx つまり、10.1.1.0/24がSAN用セグメント、10.1.2.0/24がアプリケーション側セグメントです。その他、サーバには管理用セグメントがあると便利ですが、ここでは省略します。 なお、今回のサンプルに使用した機材は、Mellanox Connect-X2 ですがConn...

IPv6 over IPv4 /48 network behind NAT

IPv6 /48のネットワークをNAT配下で構成しました。 Hurricane electric社が提供する、tunnelbroker.netのIPv6 over IPv4サービスを使い、/48のネットワークをNATルータ配下で構成しました。 構成は以下の通りです。 1. 構成の概要 tunnelbroker.netのサービスは、NAT RTのインターネット側のPublic addressで登録します。しかし、NAT配下のため、自動生成されるスクリプトだと動作しません。とはいうものの、変更点は登録したPublic addressをeth0のPrivate address に置き換えるだけです。 また、tunnelbroker.netのサービスは、1アカウントで5つのIPv6 over IPv4サービスを受けることができ、さらにそれぞれ/48のPublic address ネットワークをassignしてもらえます。図のeth1は、例として/64を一つ割り当てているだけですが、アサインしてもらった/48のPublic addressを自由に設定することもできます。 2. 注意点:IPv6 MTUの設定値 筆者の環境の場合、NAT RTのIPv4のMTUは1500です。このため、IPv6 RTのIPv6 MTUは1500-20=1480になります。 IPv4のMTU値から20を引けばよいのですが、環境によりこの値がかわります。 たとえば、NTT西日本のフレッツ光ネクストの場合、1454以下に設定する必要があるとのことです。 http://qa.flets-w.com/faq/show/2473 もし1454で設定されていることが確認できれば、IPv6のMTUは1454-20=1434となりますので、注意してください。 3. IPv6 RTの設定 3-1. Create Regular Tunnel tunnelbroker.netで登録をすませると、User Functions -> Create Regular Tunnelというメニューがあり、クリックすると「Create New Tunnel」の画面になります。ここでIPv4 Endpoint(yousr side)に NAT RT のパブリックIPv4 ad...

IPv6 Linux router with NDP proxy

更新:2024/07/07 Debian 12のオリジナルndppdパッケージで下記設定にてndppdが機能することを確認しました。 ---------------------------------------------------------------- LinuxでIPv6 routerを設定しました。 プロバイダーから提供されたルータ機能付きのONUの配下に、パブリックなIPv6サブネットを構成できるルータを設定した時のメモです。 プロバイダはNuro光 で、G2Vというサービスです。通常、このサービスでは、ルータ付きのONU(図のONU+RT)には、IPv6で接続する場合、クライアントを直接接続する事はできます。しかし、図のように内側にさらにLinux Routerを接続し、eth1以下のClinet側サブネットにPublicなIPv6 addressを付与するには、NDP proxyの設定が必要でした。 構成はおよそ以下の通りです。(図再差し替え:2020/07/04) 1. 問題点と対策方針 今回来たONU+RTはZTE社のF660Aという物でした。このルータには、/56のアドレスが付与され、なおかつ、「プレフィックスデリゲーション」という項目があるのですが、設定しても、RA(ルーターアドバタイズ)は/64しか降りてこず、また、DHCPv6でも/64しか取得できません。つまり、このG2Vというサービスでは、DHCPv6-PDでも、/64 しか すら降りてきません。(なお、このサービスとしては機能的にはこれが正常です。) この制約を説明するとおよそこのような感じです。 26xx:1234:5678:9A00::/56 ← ONU+RTに払い出されたアドレス 26xx:1234:5678:9A00::/64 ← ONU+RTから払い出されるアドレス。 つまり、この設定では、64-56=8bit以下のサブネットを構成できるルータを別途接続することができません。 そこで調べたところ、「スタティックプレフィックス」という項目があり、これだと、(2024/07/06訂正) 26xx:1234:5678:9A00::/56 ← ONU+RTに払い出された(委譲された...