「NAT(ナット)※1」はオンラインゲームを支える重要な技術のひとつです。 「NAT越え※2」に失敗するとマルチプレイができなくなりますし、「NATタイプ※3」の違いはマルチプレイのしやすさに影響します。 ところが、NAT は仕組みが難しく、初心者向けの記事も少ないため、イカスミカフェには NAT についての質問がよく寄せられます。 そこで今回は、Nintendo Switch(ニンテンドースイッチ)を例にして、世界一わかりやすく NAT を解説してみたいと思います。
2022年12月4日よりDocker版実習環境を提供します。オリジナルの実習環境はVirtualBox上の仮想マシンとして提供していますが、M1/M2 MacではVirtualBoxが動作しないことから、Docker版として提供するものです。 元々はM1/M2 Macを想定してARM64アーキテクチャ用に作りましたが、AMD64のWindowsやMacでも動作するように作っています。 Dockerコンテナの起動方法 ダウンロードページから実習用仮想マシン (Docker版)をダウンロードして適当なディレクトリに設置してください。 以下のコマンドによるコンテナーのビルド及び実行をします。 $ cd <wasbook-docker.zip を設置したディレクトリ> $ unzip wasbook-docker.zip # あるいは適当な方法でのzip解凍 $ cd wasbook-docker
Webページはどうやって表示されるのでしょうか. 「ブラウザでアドレスバーにURLを入力してEnter押してからページが表示されるまでに何が起きているか説明してください」面接で使っていた質問が面白いと話題に 上記の質問には様々なレイヤーでの回答があると思うのですが,私はネットワークの動作に興味を持ちました.というのも,TCP,IP,ARP,Ethernetといったキーワードが関連しているのは教科書や講義で聞いた気がするのですが,それ以上のことはうまく説明できなかったからです. これらのプロトコルは,普段はカーネル内部に隠れていてあまり意識できません. しかし,以下の資料を参考にプロトコルスタックを写経すれば,少しは身近に感じられるかもしれないと思いました. 3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCP
3章 Network Namespace - 1 helloworld ip netns コマンドでNetworkNamespaceの作成や操作が可能になる 作成したNetworkNamespace内で独自のネットワークを構築できる $ ip netns add helloworld $ ip netns list helloworld $ ip netns exec helloworld ip addr show 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 $ ip netns delete helloworld # NSを作成 $ ip netns add ns1 $ ip n
ネットワーク技術を学ぶのは難しい 我々の日常生活に欠かすことのできない社会インフラの1つと言えるコンピュータネットワーク。スマホやPCから利用するだけなら,その仕組みを深く知る必要はありませんが,仕事でシステムの構築や運用管理に従事する方は,きちんと理解しておくことが必要になります。 しかし,次のような理由からマスターするまでの道のりは険しいです。 押えておくべき技術用語が多すぎる たとえば,社内LAN内でファイルをやり取りしている状況を詳細に説明する場合,「TCP/IP」「IPアドレス」「サブネット」「DHCP」「プロトコル」「MACアドレス」「ARP」「ゲートウェイ」……,さらに機器として「ルータ」「レイヤ3スイッチ」……などなど,数多くの技術用語を理解しておく必要があります。 お試し環境を準備するのが大変 技術用語をある程度理解できたとしても,社内LANをいきなり設
サマリ DNSリバインディングが最近注目されている。Google Chromeは最近になってローカルネットワークへのアクセス制限機能を追加しており、その目的の一つがDNSリバインディング対策になっている。Googleが提供するWiFiルータGoogle Nest WiFiはデフォルトでDNSリバインディング対策機能が有効になっている。 DNSリバインディング対策は、攻撃対象アプリケーションで行うべきものであるが、ブラウザ、PROXYサーバー、リゾルバ等でも保護機能が組み込まれている。本稿ではそれら対策機能の状況と対策の考え方について説明する。 DNSリバインディング(DNS Rebinding)とは DNSリバインディングはDNS問い合わせの時間差を利用した攻撃です。DNSのTTL(キャッシュ有効期間)を極めて短くした上で、1回目と2回目の問い合わせ結果を変えることにより、IPアドレスのチ
リンク 【予約】【令和4年度】 教育図書 New技術・家庭 技術分野 明日を創造する 教番:702 + 明日を創造する技術ハンドブック 教番:703 - 広島県教科書販売|教科書の販売、ネット通販 【予約】【令和4年度】 教育図書 New技術・家庭 技術分野 明日を創造する 教番:702 + 明日を創造する技術ハンドブック 教番:703 - 広島県教科書販売|教科書の販売、ネット通販 広島教科書販売では、小学校・中学校・高校の教科書、教科書ガイド、入試過去問題集、教育書などの予約販売(過去問、教育小六法)、小学館教育技術(定期購読)のネット販売、通販を行っています。 教科書などの取扱商品は、海外発送も承っています。
はじめに とりあえずIT業界に入ったら読んでおけという名著はいろいろありますが、その中の1冊がマスタリングTCP/IP入門編でしょう。 僕も買ってはいたものの読むのを途中で挫折していたので、今回しっかり読んでTCP/IPを再勉強してみたいと思います。 マスタリングTCP/IPを読みながらその他わからんことはググりつつ、golangでTCPIPプロトコルそのものを自作してみます。 方針は以下のようにします。 ethernetから作る データのやり取りにnetパッケージは一切使わない (訂正、PCのIPやMacアドレスを取るのにだけ使用しますた) データのやり取りに使うのはsyscallのsendtoとrecvfromだけ socketはRAW_SOCKETを使う golangやネットワークについても初心者の駆け出しですので間違えや実装ミス、変なコードがあるかもですが、生暖かい目でよろしゅうお
8.1 Socketプログラミング 多くの低レイヤのネットワークアプリケーションの開発者の目には一切のプログラムがどれもSocketのように映ります。すこし大げさかもしれませんが、だいたいこのようなものです。現在のネットワークプログラミングはほぼすべてにおいてSocketを使用してプログラムされています。このような場面を考えたことはありませんか?毎日ブラウザを開いてページを閲覧する際、ブラウザプロセスはどのようにしてWebサーバと通信を行っているのでしょう?QQを使ってチャットする時、QQプロセスはどのようにしてサーバまたはあなたの友達がいるQQプロセスと通信を行なっているのでしょう?PPstreamを開いてストリーミング映像を見るとき、PPstreamプロセスはどのようにして動画サーバと通信を行っているのでしょう?このように、すべてはSocketに依存して通信を行なっています。ひとつを見
Hello! I wrote a comic last week called “life of a DNS query” that explains how DNS resolvers work. In this post, I want to explain how DNS resolvers work in a different way – with a short Go program that does the same thing described in the comic. The main function (resolve) is actually just 20 lines, including comments. I usually find it easier to understand things work when they come in the for
追記 (2022 5/29): サーバ代をケチるべくVercelに移行しました。動いていたソースコードは ココ に置いてあります。 あなたの予想に反して、このページが見えているでしょうか?このWebサイトは自作OSのKerlaが提供しています。 これは自作OS Advent Calendar 2021の23日目の記事です。 自作OS「Kerla」の紹介 Kerla(かーら)はRustで書かれたLinux ABI互換モノリシックカーネルです。今年の春頃から作り始め、DropbearというSSHサーバが動作する程度には基本的なUNIXの機能が実装されています。具体的には、ファイルの読み書きやUDP/TCPソケット、fork/exec、シグナル、擬似端末といったものです。 カーネル実装の雰囲気を軽く紹介すると、Kerlaでは以下のようにシステムコールが実装されています。 /// write(2)
本記事は通信業界アドベントカレンダー Advent Calendar 2021の20日目の記事です。 はじめに 通信業界ではNFVをはじめとして、ネットワーク仮想化の検討が行われています。最近では要素技術にコンテナも加わり、DockerやKubernetesを使う機会も出てきました。ネットワーク仮想化を進めてきた背景からすると、業界内では当然の流れだと思いますが、通信業界以外の方に「Kubernetesを触っています」と話すと驚かれるので、自分の勉強もかねて通信業界の仮想化とKubernetes の活用までの流れを簡単にまとめてみました。 ネットワーク仮想化の歴史 VLAN 1990年代に登場したネットワーク仮想化の先駆けの技術 物理スイッチを複数の論理的なスイッチに分割して利用 設定変更のしにくさや障害発生時の切り替えに時間がかかるなどの課題 SDN: Software Defined
こんにちは。EC基盤グループの宮口(@smiyaguchi)と池田(@progrhyme)です。 モノタロウではKubernetesのマネージドサービスであるGoogle Kubernetes Engine(以下、GKE)を利用しています。 このKubernetesですがとても便利な反面、管理が大変で開発者がアプリケーションの開発とKubernetesの運用を同時に行うのは負荷が高くなりあまり好ましくありません。 そこでモノタロウでは開発と運用を分離できるように、社内でGKE共通環境と呼んでいるマルチテナント方式のクラスタによるアプリケーションの実行基盤を構築しました。 今回はその紹介をします。 マルチテナント・シングルテナントとは? なぜマルチテナントのGKE環境を作ることにしたのか 全体概要 前提・環境情報 GKE共通環境の特徴 Namespace・ノードプールの分離 RBACによる権
「Private Access Tokens」という提案仕様が、Google, Apple, Fastly, Cloudflareの方々らの共著でIETFに提出されています。なお、すでに実装が進められているそうです。 この「Private Access Tokens」の一つのモチベーションに次のようなものがあります。 昨今、プライバシー保護の要求は高まっており、ユーザのIPアドレスを秘匿する、iCloud Private RelayやOblivious HTTPといった技術が出てきています。いままではIPアドレスベースでアクセスレートリミットを行っていましたが、 そのような環境でも、アクセスのレートリミットを設けたいというというのが一つの目的です。 それを、追加のユーザインタラクション無しに、かつユーザをトラッキングできないような匿名なトークンで行うというのがPrivate Access
DMM. comのITインフラ本部が今期に注力している取り組みについて、事例を紹介しつつ話す「DMM meetup #31 ~DMMのインフラを支えるITインフラ本部の取り組み紹介~」。ここでSRE部の松浦氏が登壇。WebRTCの配信システムについてと、配信サーバーをAWSからオンプレミスに切り替える理由を紹介します。 AWS“から”オンプレミス“に” 松浦庸介氏(以下、松浦):SRE部の松浦から「WebRTCの配信システムをAWSからオンプレミスに切り替えている話」ということで発表したいと思います。 まず、簡単に自己紹介をしたいと思います。2020年の5月に入社して、それ以来WebRTCのリアルタイム配信システムの開発や運用を担当している、松浦と言います。本日はよろしくお願いします。 まずこのタイトル、みなさん「AWS“から”オンプレミス“に”」というところ、気になってる方がいるんじゃな
Intro iOS15 がリリースされたため、 Private Relay のベータを試すことができた。 このようなサービスが提供されるようになった背景を踏まえ、挙動を簡単に確認しつつ、解説する。 背景 そもそも、なぜこのようなサービスが出てきたのかを理解するには、現在のインターネットが抱える問題の背景を理解する必要がある。 特に Web において問題になっている「トラッキング」を防ぐために、法的な規制や業界団体の自主規制による対策は長いこと行われてきたが、それでも看過できないインシデントなどが目立ったために、 Apple の ITP を皮切りに 3rd Party Cookie の制限が始まった。 ここで重要なのは、「本来防ぎたいのは 3rd party Cookie という技術ではなく Tracking というユースケースだ」という点だ。 この前提が伝わっていない場合、トラッキングのユ
各領域の最前線で活躍されるエンジニアや研究者を招き、インフラ技術を基礎から応用、普遍的な技術から最新技術まで網羅的に学ぶ、インフラ勉強会シリーズ「Infra Study Meetup #1 - #10」。2ndシーズンの第3回として、クラスメソッド株式会社の鈴木氏が登壇。AWS EC2でのIPv6通信について紹介します。 自己紹介 鈴木亮氏(以下、鈴木):よろしくお願いします。クラウドであればIPv6簡単に使えるよ、ということで話したいと思います。自己紹介ですが、クラスメソッドというAWSの構築支援などをしている会社に所属しています。 AWSの構築をお手伝いしながら、ブログなども書いています。 趣味で自転車乗っていて、毎年7月あたりは北海道に行ったりしていました。2022年あたりには、また行けるようになったらいいなと思っている今日この頃です。 AWSでIPv6がいつから使えるようになったか
自宅のネットワークなどで、接続しているPCを全部見つけたいことがある。エクスプローラーのネットワークから見つけることもできるが、スクリプトなどで処理したい場合に手入力するのは面倒だ。そんなときには、PowerShellのGet-NetNeighborコマンドが利用できる。 PowerShellのGet-NetNeighborコマンドは、ネットワーク内の通信により得たIPアドレスを出力できる。ただし、大量の出力があるので、不要なものを排除する必要がある Get-NetNeighborでアクセス可能なIPアドレスを探す LAN内のネットワークノードを探すのは面倒な処理だ。たとえば、クラスCのプライベートネットワークならノード数は多くても254個なので、すべてのアドレスに対して、Pingコマンドを実行して応答の有無でノードの存在を確認することも不可能ではない。しかし、実際にスクリプトを書くとなる
見ているサイト上に露出している機密情報(APIトークン、IPアドレスなど)を見つけるブラウザ拡張を作りました SecretlintというAPIトークンなどの機密情報がファイル内に含まれているかをチェックできるツールを書いています。 Secretlintはコマンドラインツールとして動くので、主にCIやGitのpre-commit hookを利用して、リポジトリに機密情報が入るのを防止できます。 SecretlintでAPIトークンや秘密鍵などのコミットを防止する | Web Scratch 一方で、実際のウェブサービスなどは機密情報がファイルにハードコードされているわけではなく(Secrelint自体がこういうハードコードを防ぐツールです)、環境変数やDatabaseに保存していると思います。 このような場合にも、コードのミスなどによって公開するべきではない情報(秘密鍵、APIトークン、Sl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く