Profile cover photo
Profile photo
Yamane Jun
Web関係の主に技術的なことについて投稿します。
Web関係の主に技術的なことについて投稿します。
About
Posts

Post has attachment
自宅PCから職場PCにVPN接続しようとしたらできない。職場のルーターの調子が悪くなっているのかも、と確認しに出向くが問題なし。とすれば、クライアントPCの問題なのか?

試行錯誤をするがなかなか解決せず。下記ページを参考にVPNに関係するネットワークアダプターを削除したところ、モバイル回線を使ってVPN経由で職場PCに繋ぐことができた。有用な情報提供ありがとうございました。
https://faq.interlink.or.jp/faq2/View/wcDisplayContent.aspx?id=787

だが、自宅のADSL回線では相変わらずVPNはダメ。その後、自宅ルーターとクライアントPCを再起動したころ、ようやくADSL回線でも無事繋ぐことができた。ここまでが長かった。

VPN接続後、いつものように自宅PCのエクスプローラーから職場PCのファイルを開こうとしたところ、ユーザーIDとパスワードを要求される。設定が初期化されたのか、Windowsアップデートの影響なのか分からないが、WindowsのユーザーIDとパスワードを入力して職場PCのエクスプローラーへアクセスした。

VPN接続は時代遅れのPPTPなので、そろそろ変えたいところだが、一から構築するのが面倒くさい。慣れというものは恐ろしい。PPTP接続のユーザーIDとパスワードを一週間ごとに変更することでお茶を濁しているがはてさて。

Post has attachment
au光からWiMAXの常時接続に切り替えてから数ヶ月が経過しているが今のところ不満は皆無である。唯一気になるのが1日に一度切断されることだが、ある程度回避できているので問題はない。
https://plus.google.com/107527620186812837918/posts/jUDmcQNteii

いや、問題はなかったはずなのだが、最近11時頃になるとWiMAXが繋がらなくなる。例外なく毎日だ。11月に入ってからのことだろうか。クレドールのLANケーブルを抜き差しすることで復旧するが気持ち悪い。

いろいろ試すが原因がよく分からないので、ルーターの再起動を10時10分から11時に変更してみることにした。もしかしたら1日に一度切断される時間が変更されたのかもしれない。

【追記】2017-11-14
 どうやらWiMAXの回線が切れる時間が11時過ぎに変わったようだ。11時5分にルーターを再起動したところ復旧した。と言う訳で、ルーターの自動再起動スケージュールを毎日11時5分に変更した。

Post has attachment
必要に迫られてフリーの軽量CMSを探したところ、「Redaxscript」が良さそうだと判明。
https://redaxscript.com/

データベースはSQLiteを選択した上で早速インストールする。本当に軽くて手軽。

管理画面は英語だが「Languages」に「ja.zip」があるのでダウンロードして「languages」フォルダに突っ込んだら自動的に日本語で表示される。素晴らしい。
https://redaxscript.com/download

日本語のドキュメントがないこともあり分からないことは多いが、取り合えず体裁を整えることができた。そのうち頑張って英語を読み込もう。
https://redaxscript.com/documentation

シンプル過ぎるがカスタマイズする余地も多そうなので結構楽しみ。

Post has attachment
WiMAXの常時接続だが、ほぼ問題がなくなった。上り回線が時々激重になるが、これについては諦めている。
https://plus.google.com/107527620186812837918/posts/XJMQYj3T8gX

ちなみに12時25分のスピードテストの結果は以下の通り。昼休み時間としては十分な速度が出ている。
http://beta.speedtest.net/
・PING:51 ms
・下り:28.60 Mbps
・上り:2.11 Mbps

唯一残る問題は、24時間で通信が切断されることだ。下記ページを見る限り、WiMAXの仕様らしい。
http://www.uqwimax.jp/signup/files/importance.pdf
「サービス品質維持及び設備保護のため、24時間以上継続して接続している通信を切断する場合があります」

職場で作業中はルーター(AirStation)の管理画面においてDHCPサーバーが取得するIPアドレスを「解放」→「書き換え」すればOKなのだが、出先からVPN接続したとき通信が切断されていたら当然ながらそれもできない。そもそもVPN接続できないのだ。それは非常に困る。

定期的にDHCPサーバーが取得するIPアドレスを書き換えることができればいいのだが、管理画面に設定項目は見当たらない。

AirStationのマニュアルに「おまかせ節電機能を使って消費電力を抑える」というページがある。
http://buffalo.jp/download/manual/html/air1300/

上記ページに次のような記述があった。

「無線親機がスリープやユーザー定義の状態に切り替わる際、通信が一時的に切断されます。また、ユーザー定義で有線LANや無線LANのどちらかを有効(または低速動作)に設定していても、通信が一時的に切断されますので、通信中の場合はご注意ください」

どうやら「おまかせ節電機能」を使えば通信が切断されるらしい。これを使えば、24時間切断問題を回避できるかもしれない。

と言う訳で以下の通り設定した。
・【スケジュール】毎日3時から3時30分までユーザー定義で節電
・【ユーザー定義】ランプ:オフ、有線LAN:通常動作、無線LAN:通常動作

上記ユーザー定義であれば、節電中でも問題なく通信ができる。しばらく様子を見たい。

【追記1】2017-06-22
 やはり24時間で一度切断される。時間は毎朝10時8分きっかり。ただ、その後自動的に再接続されるみたいなので、深刻に考えないことにした。再接続までどれぐらい時間がかかるか不明なのが物凄く気持ち悪いけど…

【追記2】2017-06-26
 ルーター(AirStation)に自動再起動機能があることに気付く。
「管理設定」→「初期化/再起動」→「タイマー再起動」を「使用する」にチェックを入れて全曜日において「10時10分」と設定してみた。うまくいけば回線の不通時間を毎日5分程度に抑えることができるが…

【追記3】2017-06-27
 いつも通り10時8分に回線が切断されたので、部屋の掃除をしながらルーター(AirStation)が再起動されるのを待つ。10時10分、スケジュール通りルーターが自動的に再起動した後、しばらくしてWiMAX回線に繋がるようになる(万歳!)。これで24時間切断問題を回避して、出先からのVPN接続についても安心して利用できることが確定した。
Photo

Post has attachment
職場のWiMAX回線が突然切断されることが頻発する。そのたびに回線を繋ぎ直すのは面倒だし、なかなか再接続できないこともあるので非常に困る。
https://plus.google.com/107527620186812837918/posts/N8jFfaXbypc

対応策を調べたところ、MTU値を最適化することにより改善されることが分かった。

まずは最適なMTUを確認する。ネットの情報によればWiMAXの場合、「MTU 1372」が最適値らしい。自分の環境でも同様なのかを、コマンドプロンプトで「ping -l」のコマンドを入力して確認する。26を引く必要があるみたいなので、1344(=1372-26)を入力する。

ping -l 1344 -f http://www.google.co.jp

上↑の損失は0%。問題なし。
念のために1343と1345の場合を確認する。

ping -l 1343 -f http://www.google.co.jp

上↑の損失は0%。問題なし。

ping -l 1345 -f http://www.google.co.jp

上↑の損失は100%。アウト。
と言う訳で、1372(=1344+26)がMTUの最適値であることが分かった。

次にMTU値を変更する。

netsh interface ipv4 show interface

上↑のコマンドにより、MTUが1500であることが分かった。これを1372に変更しなければならない。
変更したい接続「イーサネット」の「Idx」(9)を指定して、MTUを1372に変更する。

netsh interface ipv4 set interface 9 mtu=1372

ついでにWi-Fi(Idx=8)のMTUも1372に変更する。

netsh interface ipv4 set interface 8 mtu=1372

これでOK。再度下記コマンドで確認。

netsh interface ipv4 show interface

MTUが1372に変更されていた。

また、ルーター(WHR-300)のMTUも1372に変更する。管理画面から「Internet/LAN」の「Internet側MTU値」を1372に変更。

おそらく、これで解決するはずだが、はてさて。なお、WiMAX以外の通信回線で繋ぐ場合、MTUを1500に戻す必要がある。

【参考サイト】
http://itcafebar.blog.jp/archives/4650190.html
http://blog.livedoor.jp/naka_tyaso/archives/51971407.html
http://d.hatena.ne.jp/yassey/20151007

スピードテストの結果は以下の通り。速度に満足している。
http://beta.speedtest.net/
・PING:46 ms
・下り:47.79 Mbps
・上り:3.87 Mbps

【追記】(2017-05-17)
サーバの回線は安定したが、作業用のノートパソコンでは相変わらず突然接続できなくなる。
イーサネットアダプターを確認したところ、「Broadcom Netlink Gigabit Ethernet adapter」で、Windows10では不具合が起きる可能性があるらしい。そう言えば、ノートパソコンをWindows7からアップグレードしていたよな…
辿りついたのが下記ページ。プロパティの「詳細」→「Receive Side Scaling」を「Disabled」から「Enabled」に切り替えたところ安定したように思う。これでしばらく様子を見たい。
https://answers.microsoft.com/ja-jp/windows/forum/windows_10-networking/broadcom-netlink-tm-gigabit-ethernet-adapter/aa17f944-c5b1-40ac-83d7-e61e5a84115f
Photo

Post has attachment
職場のネット回線をauひかりからWiMAXに乗り換え、数日経過した。接続自体はすぐにできたが、VPN接続についてはやや手間取った。

前提としてUQ契約のWiMAXはプライベートIPしか割り当てられない(NAPTというらしい)。そのため、VPN接続をするには、NATトラバーサルに対応していなければならない。
自分が使っているルーター(WHR-300)はPPTPでVPN接続できるが、残念ながらNATトラバーサルに対応していない。そのため、グローバルIPアドレスオプション(月96円)を使うしかないようだ。
http://www.uqwimax.jp/plan/wimax/option/global_ip/

取り合えず、WiMAX(W02+クレドール)とルーター(WHR-300)を繋げた上で、スマホのLTE回線からVPN接続を試みる。が、失敗。

仕方ないので指示に従い、WiMAX(W02)の設定ツールにログインして、グローバルIP用のプロフィールを作成する。完了後、念のためにWiMAXとルーターを再起動する。

MyDNS.jpで確認したところ、プライベートIPからグローバルIPに変わっていることが確認できた。ドメインも「au-net.ne.jp」から「uqwimax.jp」に変わっている。

今後こそ、とチャレンジするがVPN接続できない。困った。

調べたところ、VPNではブリッジモードが適しているらしい。端末は1つしか接続できなくなるが基本的に外に持ち出さないので問題ない。接続も安定するようだし好都合かもしれない。WiMAX(W02)のタッチパネルからブリッジモードをオンにする。

そしてWiMAXとルーターを再起動したところ、無事にVPN接続ができた。これで外出先から職場PCにアクセスすることが可能になる。

と言う訳で、残された問題?は以下の2つ。

1.3日間10GB規制
2.WiMAXが突然接続できなくなることがある

3日間10GB規制については、翌日1Mbpsに制限されるのだが、翌日18時頃から翌々日2時頃までなので、仕事への影響はほとんどない。
http://www.uqwimax.jp/plan/wimax/note/gigahodai_speedlimit_10/

問題は突然接続できなくなることで、これは結構困る。
「コントロール パネル>ネットワークとインターネット>ネットワーク接続」から、アダプターを一度無効にした後、再び有効にすれば解決するのだが、いちいち面倒くさいし、何より外出先からVPN接続したときに突然接続できなくなると(たぶん)お手上げだ。

ただ、グローバルIPアドレスオプションにしてから突然接続できなくなることはないので大丈夫かもしれない。うーむ。

【追記】
やはり突然接続できなくなることが多発。MTU値を変更することで(たぶん)改善。
https://plus.google.com/107527620186812837918/posts/XJMQYj3T8gX
Photo

職場のネット回線をauひかりからWiMAXに変更した。通信回線に不満は全くなかったが、25ヶ月目から月1,000円以上の負担増ということが引っ掛かり、それならば乗り換えるか、という経緯である。

乗換先は、ドコモ光かWiMAXの二択。職場に電話回線がないのでADSLは考慮対象外。
料金的に考えるとWiMAXの方が有利なので、実際の通信速度に問題がなければWiMAXで決まりだ。おそらくVPN接続もできるはずだし。

Try WiMAXで確認したところ、下り回線は問題なし。ただ、上り回線はやや遅い。少し迷ったが、以前のADSLに比べると早いので良しとする。

WiMAXを4/28に申し込んだところ5/3に届いた。WiMAXをルーターに繋ぎ、社内LANを構築する。だが、VPN接続ができない。グローバルIPオプションが必要らしい。管理画面から設定しなければいけないので、取り合えず後回し。

ところで、auひかりは4/30で解約したのだが、5/3まで普通に使えていた。なぜなのだろうか。後から請求されたら嫌だな…

Post has attachment
 契約しているサーバが4時間ほどダウンしていた。不思議なのが、FTPは使えるし、ドメインメールも使えるということ。
 「以前も同様のことがあったな」と、過去にサポートとやり取りしたメールを探したところ、原因らしきものを発見した。

・何らかの理由でWebアプリケーションファイアウォール機能が正常に動作できていない可能性

 サーバ管理画面から確認すると、Webアプリケーションファイアウォールについては、全てのドメイン(サブドメイン)で「利用しない」にチェックが付いている。取り合えず、1つのドメインについて「利用する」に一度設定した上で、「利用しない」に変更してみた。
 すると、そのドメインだけでなく、他のドメイン(サブドメイン)についても、あっさり繋がった。もしかしたら別の要因かもしれないが、解決したので備忘的に残しておく。

 と言うか、Webアプリケーションファイアウォールなど使わないので、トラブルのもとになるのであれば実装してほしくない。さくらインターネットは気に入っているのだが…
Photo

Post has attachment
 運営するメインサイトのレスポンスが最近よくない。同一レンタルサーバで運営している他サイトは問題ないのでプログラムに問題があるようだ。

 思い当たるのはfacebookのシェア数を一括取得するスクリプトだ。ローカル環境では取得できているのに、レンタルサーバ上では全く取得できていないのだ。2ヶ月前は取得できていたのに…。
https://plus.google.com/107527620186812837918/posts/fKwsuHy4pk8

 API経由でシェア数を取得したらキャッシュし、その後は一日一回情報更新する仕様なのだが、データを取得できていないらしい。毎回取得しようとするからページ表示速度が悪くなる。
 仕方がないのでfacebookシェア数の一括取得をやめることにした。途端にサイトのページ表示が早くなる。やはり原因はこれだったのか。

 更に調べたところ「(#4) Application request limit reached」のメッセージが戻ってくる。どうやら使用制限に引っかかってしまったらしい。

FacebookのAPIが変更されシェア数の取り方が変わった
http://rcmdnk.github.io/blog/2016/08/22/blog-octopress-javascript/

 従来と同様のやり方でFacebookのシェア数を取得しているので、APIの使用制限ルールが厳しくなったものと推測される。

 そう言えば、GoogleニュースのRSS取得もできる場合とできない場合がある。おそらく利用制限があるのだろう。

Post has attachment
 運営するサイトに突然エラーが発生した。確認したところ、SNSのAPIが原因のようだ。
 更に深堀することで、問題が起こっているのはFacebookのAPIだと分かる。

 エラーメッセージは以下の通り。

 [error_msg] => REST API is deprecated for versions v2.1 and higher (12)

 v2.1以上のAPIが必要らしい。要するにAPIのバージョンが古いということだ。

 Facebookプラットフォーム更新履歴を確認してみると、どうやらv2.0のAPIを使っていたことになる。
https://developers.facebook.com/docs/apps/changelog

 と言うことで調べてみたところ下記ページを発見。
http://koni.hateblo.jp/entry/2016/01/20/160903

 「http://graph.facebook.com/?ids=」の後に、シェア数を取得したい複数URLを「,」で区切ってgetすればOKとのこと。

 念のためにAPIの最新バージョン「グラフAPI Version v2.7」を確認する。
https://developers.facebook.com/docs/graph-api/reference/v2.7/url

 上記ページには「?ids=」でなく「?id=」のケースしか掲載されていないが、下記ページでは「複数IDの読み取りリクエスト」として「?ids=」が掲載されているから大丈夫そう。
https://developers.facebook.com/docs/graph-api/using-graph-api#multiidlookup

 取得した複数データについては「for」でループさせて、各URLのシェア数を["share"]["share_count"]で取得。これでエラーメッセージが消えた。
Wait while more posts are being loaded