Network
マスタリングTCP/IPは何度か読んではいるけれど、レイヤーとかいわれても面白くないし、ネットワークあんまりわかってない気がしていたので、もうちょっと理解するために、L2レイヤであるEthernetからL4のTCPまでをRustでだいたい自作してみた。だいたいとい…
ネットワークの勉強がてらpingのソースコードをみたくなってしらべてみた。 環境はWSL2のUbuntuとする。 まずはpingのパッケージを調べる。 $ which ping /bin/ping $ dpkg --search /bin/ping iputils-ping: /bin/ping iputils-pingだとわかった。 次にapt…
Rasbperry PI 4B / RasbianOSの場合の備忘録。 普通にWebサーバとして使うくらいであれば、RasbpianOSを使っておけばよい。 (と、あとからUbuntuの設定でちょっと苦労してわかった。) サーバとして使うので、X Windowは使わない。 Raspberry Pi Imager (執…
ESP32のライブラリでは、直接、mDNSのURLを指定してもアクセスできない。 ただ、mDNSを利用するためのライブラリは提供されているので、IPを解決してからアクセスすればよい。 例えばraspberry.localのIPを取得したい場合は以下のような感じでできる。 #incl…
M5Stackでもほとんど同じでいける。 とりあえず、センサーの値をサーバに残したい場合とか。 とりあえずとはいえhttpsにはしないとなー。 #include <M5StickCPlus.h> #include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h> const char* ssid = "xxxx"; const char* pass = "xxxx"; const int capaci</arduinojson.h></httpclient.h></wifi.h></m5stickcplus.h>…
結論からいえば、ホストのWindowsのアドレスとポートへのアクセスをWSLのアドレスとポートを指定して、ポートフォワーディングすればよい。(する必要がある) ここでは、ホストのWindowsのポート3000をWSL上のポート3000にポートフォワーディングするとする…
SSMを使うと、プライベートネット内のEC2など、通常踏み台サーバが必要なサーバに直接接続できる。 ググればいっぱいでてくるが、自分が実際にやってみた手順を残しておく。 最新のAmazon Linuxを選択してインスタンスを生成する。 生成したインスタンスを以…
moshで使うUDPのportには通常1024以上を使う。 なぜなら、moshのサーバはユーザ権限で動作するので、root権限が必要な1024未満のportは使えないためである。 1024未満のportしか使えないときはどうするかというと、moshの場合は、権限(Capability)を付与する…
WindowsでDockerコンテナからホストのポートにアクセスしたい場合は、localhostではアクセスできない。 WSL1でもWSL2でも変わらないみたい。 以下に置き換えればよい。 host.docker.internal Macでも同じらしい。
docker-composeでnginxでロードバランサを試した。 nginxの後ろに、3台のexpressのサーバに振り分けるようなものを試してみた。 version: '3' services: lb: image: nginx:latest volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf ports: - "80:80" dep…
いわゆるオレオレ証明書の作り方。 最近、ちょっとしたことを確認しようとしても、https化が必須になっている。 パブリックなネットワークだとLet's Encryptを使うべきなんだけど、 Let's Encryptではドメインが必須なので、ドメインが容易できないと使えな…
諸事情により、単一オリジンでgrpcとhttpsのサーバを運用が必要なことがわかった。 grpcのパスはルートでないと動作しなかったので、httpsサーバのパスを/app/にして妥協した。 またnginxのconfを晒す。 ちなみに、nginxからgrpcサーバ(localhost:9090)への…
grpc-webとenvoyの間の通信のhttps化を試した。 grpc-webの公式には、httpでenovyの設定は載っていて、 envoyの公式には、httpsでの接続のための設定は載っているので、 基本的にはそれらを組み合わせるだけでうまくいった。 envoy.ymlを張っておく。 この例…
HTTPSを手を動かして確認する。 opensslを使うと簡易にSSL/TLSのクライアントやサーバを立てられるということなので確認してみる。 ちなみに,HTTPを確認する場合はtelnetを使えば良い。 HTTPS クライアントの動作確認 HTTP/1.0 以下のコマンドを打つと,HTT…
先日読んだと書いた書籍で消化不良だったSource NATの設定を確認したので記事にまとめる。 blog.amedama.jp なにが消化不良だったかというと,LAN側からのみWAN(インターネット)へのアクセスを許可するための仕組みとしてSource NATが紹介されているのだが…