自宅にDNSサーバーがあるだけでハッピーライフが送れる
生きることにこだわりを。魚住惇です。
2学期に入り、情報Ⅰで教えている単元がネットワークの分野に突入しました。情報Ⅰで教えている中でも個人的にはかなり気に入っている単元でして、授業に力が入ります。
近頃は「好きなことを仕事にしよう」みたいな言葉も一周回って陳腐化したように思います。宇宙兄弟など夢を追いかける漫画が売れる一方で、自分自身が何が好きなのか考えたこともなく時間が過ぎていくような生徒も大勢います。
「好きなことを仕事にしよう」っていう言葉が刺さるのって、意外といないんですよね。そう考えると自分って割とレアキャラなのか?とも思えてきました。
そんなレアキャラが、今回もこだわりました。いつものちょっとしたこだわりに、お付き合いください。
DNSって知ってる?
情報Ⅰのネットワークの単元でも、最低限どの教科書にも記載されていることがあります。
「インターネットでは世界共通のプロトコルと呼ばれる通信規約でデータがやり取りされていて、そのプロトコルをまとめたものがTCP/IPと呼ばれています。そのIPと言うプロトコルで使われているアドレスがIPアドレスと言いますよ。」
これをかれこれ4分くらいかけて話すわけですが、ここまで来てやっとIPアドレスと呼ばれる、コンピュータそれぞれに割り振られたアドレスについて説明することができます。
ただしこのIPアドレスというのがバージョン4だと数字だけだし、バージョン6だと桁数が多すぎる上に16進数表記なので、人間にとって覚えづらかったりします。
そこでそのIPアドレスそれぞれに、名前(ドメイン)をつけて呼びやすくしましょうっていう仕組みがあるわけです。その名前がDNS(Domain Name System)といいます。
インターネットに接続しているコンピュータやスマホは、hogehoge.comなどにアクセスする際、「ホゲホゲドットコムのIPアドレスって何番ですか?」とDNSサーバに一度聞きにいきます。そこで知り得たIPアドレスと、目的である通信を行うわけですね。
世界中には多くのDNSサーバーがありますが、その中でもルートサーバーと呼ばれれるDNSの中枢を担っているものが世界に13台存在します。本当は台ではなくクラスタなんですが便宜上13台とします。
ちなみにその13台のうち、10台がアメリカ、残りがスウェーデン、オランダ、そして日本にあります。
これらDNSサーバーが止まってしまうと、インターネットに繋げているコンピュータたちが名前解決できなくなってしまうので、hogehoge.comにアクセスできなくなる。つまりどのサイトにもアクセスできなくなり、通信ができなくなるわけですね。
実際にはこのDNSサーバーたちに接続できなくなったとしても、代わりの役目を果たしてくれる予備のサーバーが後ろにいてくれるので、そう簡単にはインターネットは死にません。
ルートサーバーの事例ではありませんが、DNSサービスが外部から攻撃を受けたことで障害が発生し、TwitterやRedditなどのサイトに接続できなくなったことがありました。
DNSサービスの「Dyn」に大規模DDoS攻撃、Twitterなどが影響受けダウン | 日経クロステック(xTECH)
Twitterなどのサービスを運用しているサーバーたちは実際には稼働しているものの、こうしたDNSによる不具合によってサーバーの名前解決ができなくなることで、サービスそのものが影響を受けたのです。DNSという名前解決システムやそれを担うサーバーたちは、今日のインターネットの根幹を支えているわけですね。
DNSサーバーを自宅で構築する
近頃、長男がマイクラをやるためにThinkPad X280を使わせています。これが普段の生活でどう影響したかというと、ペアレンタルコントロール下においたiPadではYoutubeを見なくなり、長男も次男もThinkPadでYoutubeを再生するようになってしまいました。結局これだと意味がなくなるので、iPadのペアレンタルコントロールを外しました。
パソコンの場合ってどうやってYoutubeの制限とかをかけたら良いんだろうか・・・。
なんてことを考えていたときに、「フィルタリングしよう」と思いついたのでした。そうじゃん。我が家にはYAMAHAルーターに業務用スイッチがあるじゃないか。きっとフィルタリングみたいな仕組みが導入できるに違いない。
フィルタリングの手法としてよく用いられるのが、制限をかけたいデバイスそのものにアプリをインストールすることです。「あんしんフィルター」や「i-フィルター」などが有名です。ただし、子どもたちが使うデバイスでいちいちインストールや設定という作業が必要なのがちょっと面倒くさい。
学校のコンピュータ室などに導入されているのが、プロキシーサーバーです。プロキシは本来は頻繁にアクセスするサイトの内容をキャッシュで保存しつつ外部へのアクセスを節約する役割があります。通信する際は必ずプロキシを通るよう設定されているので、有害なサイトへのアクセスはプロキシが通さないようにすることで、フィルタリングの役割も担ってくれるのです。
ただしプロキシを導入すると、これまた端末やアプリごとに設定をしなければならないので、ものすごく面倒です。
話は変わりますが近年のネット広告によるストレスがかなり高まっていると思うんですよ。少なくとも魚住はかなりのストレスです。ネット広告め。
インターネットと広告は密接な関係です。Webページの収益化のほとんどが広告収入であるため、どうしても広告に誘導するような構成のページが世の中に増えます。こうした努力をしてもなかなか広告としての成果が上がらないからか、スマホに表示される広告だと全画面表示で画面を占拠するようなものまで出てきました。中には広告を閉じるためのボタンが押しづらいものまであります。
こうした悪質な広告や、ネット記事を読みたいだけなのにエッチな漫画の広告が追いかけてくるものまで、どうにかして表示しないようにしたい。この欲望をかなえてくれるのが、広告ブロック系のアプリです。WebページはHTMLというマークアップ言語で書かれているので、要はその広告部分の要素を非表示にしてしまえば広告が画面から消えるわけですね。
ただしこれも限界があります。こうした広告ブロック系アプリが出てきたことでWebページの広告収入は当然下がります。こうしたアプリに対抗するための手段として用いられるのが、ページの内容を敢えて広告のタグの中に仕込むという戦法でした。こうすれば、広告をブロックすると記事ごと消えてしまい、ユーザーが内容を読めなくなります。記事を読むためには広告ブロックを無効化するしかありません。
今日のインターネットでは、この様ないたちごっこが繰り返されているわけですね。
そういえば広告が画面に表示されるって、どういう仕組みなんでしょうね。あれも結局はその広告のデータをブラウザでダウンロードして表示しているはずなので、これも広告のデータを配信しているサーバーの名前解決をしていますよね。そうか。名前を解決しなければ良いんだ。
というわけで今回たどり着いたのが、AdGuardHomeというDNSサーバーでした。名前のとおり広告をブロックすることが主な目的であるDNSサーバーです。これがまた家にサーバーがある家庭だと導入が驚くほど簡単で、Dockerのイメージが公開されているのでコマンド1行でぽんっと始められるんですよ。
あとはクライアントに設定されているDNSサーバーのIPアドレスのほとんどがデフォルトゲートウェイと同じルーターなので、ルーターのDHCPの設定で、DNSの項目にDockerのコンテナが起動しているサーバーのIPアドレスを指定しておくだけです。これで我が家でネットに接続するデバイスがすべてAdGuardHomeというDNSで名前解決を行うようになりました。
こちらがそのDNSサーバーのWeb管理画面のダッシュボードです。どれくらいの名前解決がされているのかが一目でわかります。また、AdGuardHomeにはデフォルトでアダルトサイトなどの有害サイトへのアクセスをフィルタリングしてくれる機能が有効になっているので、導入しただけでも十分効果が期待できます。
こちらはフィルタリングの設定画面の一部分ですが、有名なサービスであればこうしてピンポイントでブロックすることができるようになっていました。対応しているサービスがあまりにも多かったので、Youtubeあたりが写るようにスクショを撮りました。ドメイン名などを入力しなくとも、有名なサイトやサービスが登録されているのも設定がしやすくて助かりました。
あまり複雑な設定はできませんが、例えば子どもが使うデバイスでyoutube.comの名前解決ができる時間帯を決めることができます。上の画面で言うと、平日は朝7時から夜7時半までアクセスできて、それ以外の時間帯だとそもそもYoutubeにつながらなくなります。
本当は連続使用時間などもコントロールしたいんですけどね。これはハードウェアの制御が必要なのでDNSでは今のところ無理なんだと諦めました。
ただし設定するためにはそのデバイスのIPアドレスが必要です。多くの家庭で設定されているDHCPだと、その時その時でIPアドレスが変更されることもあります。今後もフィルタリングを続けていくためには、使っているデバイスごとにIPアドレスを割り振っていく必要が出てきます。となると、誰のどのデバイスを、何番のIPアドレスに設定しようかという、ネットワーク設計が始まるわけですね。普通の家庭ではここまではきっとやらないと思います。
とはいえね、この家庭内ネットワークの構想を考えたり、実際に設定するのが楽しくてね。たまらんのですよ。そもそもAdGuardHomeだって無料で導入できましたし、工夫次第で我が家のインターネットがどんどん健全になっていくのですから、めちゃくちゃやりがいを感じます。フィルタリングを設定して、時間が来て、Youtubeが見られなくなった時には飛び上がるほどうれしい思いをしました。子どもたちは急に動画が止まってしまったので泣いてましたが。
普通の家庭ならまず置かない、DNSサーバー。でも実際に置いてみることで新たな発見があったり、実用的であったり、ネットワークの仕組みを知る勉強にもなりました。もちろん2学期の情報の授業の話のネタにもする予定です。なんだかんだで、こうして物事にこだわっていく活動そのものが、家族にも生徒たちにも還元できるって、本当に良い職業に就いたなぁなんて思ったのでした。
何よりね、「我が家にDNSを導入してみた」っていう1行だけで「は?」みたいになるわけですよ。そう反応されるのがまたたまらん。こだわることが何より楽しい。そして実験と試行錯誤を繰り返しながら便利に暮らしていける。
次はどんな設定を家庭で試そうかしら。そろそろルーターやスイッチでトラフィック制御などもやりたいところです。例えば23時以降になるとオンラインゲームのPing値が極端に高くなるとかね。おっとこれはDNSによるアクセス制限よりも悪質かもしれない。
そうそう、そういえばAdGuardの学校向けサービスがこの前ネットニュースに載ってました。自分的にはホットな話題です。
授業中の広告をブロック!聖徳学園「AdGuard DNS」で先生の安心・安全とセキュリティ強化を実現 - こどもとIT[Sponsored]
今回のnewsletterは以上となります。
「いいね」を押していただけるとうれしいです。内容に関するご意見ご感想がありましたら、「#こだわりらいふ」をつけたツイートや、Substack内のコメントまでお願いします。