インターネットの中心

ネットワークの中心は一体どこなのか? これの答え、ついに具体的にわかったわ。 インターネットの発祥地はアメリカと言うのは有名な話だよね。 あとは、ネットワークのネットワークがインターネット、と言う話も有名な話だよね じゃあ、そのネットワークの中心はどこなのか?と言う話だが。答えは、「Tier 1 Network」に所属するISPだとおもう。詳しく述べよう。 参考文献 cloud flairのBGPの説明 Tier 1にはsoftbankも入っているのか? インターネットのすごくわかりやすい説明 昔の資料。平成15年とかなので2003年とか。まだソフバンが来る前の話 日本のISPの話 日本のISP一覧 asn/ipの取得方法 トランジットとピアリングの話 closネットワークの話もここでしています 回線事業者とISPの関係 学術ネットワークの話 Tier1 ISP はい、Tier1に所属するISPは世界で16個しかないんだよね。 こいつらは、インターネットバックボーンを形成しているISP。 で、インターネットバックボーンの役割は、海底ケーブルなどを介して、大陸間、国家間にまたがって各国の基幹ISPを相互接続して、大容量データの経路を確保することです。つまり、国家間の通信を可能にするためのケーブルを弾いてくれている。 日本の企業でTier1のISPに入っているのは、NTTとソフバンが買収したSprintっていうアメリカの会社。 で次。 日本の一次プロバイダ 宮城さんの話 janogでは、ISPの人たちがピアリングをしましょうとか、そういう交渉の場としても使われる。これはだいぶ面白いね。 また、個人がISPになることもできるって話。これは、AS番号をもらうって話になるのかな?

September 5, 2024 · 1 min · 32 words · Me

2024Sep_TODO

9/28,29でやりたいこと isuconの申し込みをやる。これは明日白木さんに確認を取って確実にやらないといけないこと。 JCで変更履歴を保持するようにしたいんだよね。これ結構データ食うと思うんだけど、実現したいです。 nginxでsanを持った証明書を登録する方法を学ぶ。これね、証明書の発行方法とssl関係を学ぶって話なんだけど、結構難しいぜこれ。 ssl入門みたいな本を読む nginxの監視を完璧にする。mtailを使ってlogも監視するし、その他業務の監視項目全部。そして、通知もやる。ちな、urlは、https://blog.ingenboy.com:8080/。仕事の監視を完全にコピーするって話だ。これできたらもうだいぶ昇給していいレベルだと思うけどね。 echoサーバを建てたいよね。まずはね。クラスタ上にね。ってことでgoで書いたエコー鯖を立てる。k8sにね。これはreal world httpを読めばいいと思うよ。vimを使ってあえてmっけ出していくのもあり。ここでは壊して学ぶk8sを読むのがいいですね。 外からvegetaで負荷をかけ続けられるようにする。 k8sも監視したい。よろピクミンだね。 gslbで二つ作った入口で振り分けられるといいよね。って感じで。 時間が余ったら宅建のお勉強もした方がいいですね。 2024/09/1時点でのタスクリスト 開発関係 会計ソフトを導入する。この辺が良さそう https://ledger-cli.org/ 自宅のK8S上にecho-serverを立てて、proxyを複数立てて、さらにvipを立てて、vegetaで負荷試験ができるようにしたい。そして、様々なメトリクスが取れるようにしたい。どうやるんだろうか。この辺は、壊して学ぶk8s的な本を買ったので、それで勉強しよう。 I and shiraki-san decided to develop GSLB using go lang. It is going to be funny Learn DNS (こっちはかなりいい感じで進んでいる。) –> Done Learn How to write packer parser using Go on TCP Layer. It is also going to be funny. 例の競馬システムを動かす時が来た。自宅のk8sで動かせるようにmanifestファイルを書いてください。よろぴくお願いしますです。 Go言語でdistributed file systemを作ってくれ!このyoutubeを見てでもいいし、goで分散システムを作ろうって入ってきたあの本でもいい。どっちでもいい。ただ、後者だとk8s上に作った分散システムを展開するので、上のやつとも親和性が高い気がしています。はい。 ISUCONの過去問を解きましょう。今年のISUCONにおそらく白木さんと出ることになります。足を引っ張りたくないので頑張ります。 ーー>isucon14の申し込みが始まったという話です。頑張りましょう。 redmineを入れてタスク管理したらおもしろう。いいかもしれない! 宅建の勉強をしよう その他 毎日筋トレしてくれ。ジムに行ってくれ。朝がいい。 毎朝早く起きてくれ。23時に寝て0630に起きる生活ができると最高だ。 早く業務委託で何かしらの案件を取ってきて売れ。 早くyoutubeチャンネル開設して、経費生活を始めてくれ! 長期目線 簿記2級とってくれ! 土地をどこに買うかかんがえてくれ!!そして貯金しろ!!マジな話、生活費8万と、共通貯金口座5万以外は全部あっちに回してくれ。 つまり、月のクレカ支払いに使えるお金は17万ということになる。保険で10マン落とされるので、残り7万か。まあそんなものやろう。

September 4, 2024 · 1 min · 74 words · Me

Booking_scheduling_system

August 27, 2024 · 0 min · 0 words · Me

Vegeta

vegeta使いになろう

August 27, 2024 · 1 min · word · Me

Shell_master

背景 インフラエンジニアは、プロセスのメモリ上で何が起こっているかは実はあまりわからないくていい。それよりも、どうやってプロセスをうまく連携させるか、そういう大局的な視点がどうしても必要になる。 結局プログラムは何かを実現するための道具でしかない。道具を作るのはいいけど、インフラエンジニア版 何がいいたいかというと、道具と道具を組み合わせて何かをするという技を学ぶためには、shellを使えるようにならないとダメだという話だ。 shell芸人になれ。 なんか、すごい人はshellでワンライナーで全部解決していく。マジですごい。 参考文献 1日1問、半年以内に習得シェルワンライナー160本ノック 問題データリポジトリ jqコマンド jqこマンdのについて だいぶ使えるのではないか? $ echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \ | jq . echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \ | jq .items こちらの結果はこうなります。 [ { "item_id": 1, "name": "すてきな雑貨", "price": 2500 }, { "item_id": 2, "name": "格好いい置物", "price": 4500 } ] 次の例 echo '{"items":[{"item_id":1,"name":"すてきな雑貨","price":2500},{"item_id":2,"name":"格好いい置物","price":4500}]}' \ | jq '.items[].name' こんな感じで出力されます "すてきな雑貨" "格好いい置物" という感じで、ほうほう、jqなかなか便利ではないか??ということですね。頭に入れておきましょう。 sedコマンド selectコマンド trコマンド 文字を置換したり、削除したりできるコマンド こちらをみてみよう 使用例 echo lion | tr lion bear 結果 bear 重複しているとダメらしい、、クソか。 しかしこういう使い方はするって話だ。 hostname | tr -d "\n" date関数のすごい使い方 $ date "+%F" #年月日を出力 2022-02-28 $ date "+%T" #時分秒を出力 22:37:49 $ date '+%Y/%m/%d %H:%M:%S' #年月日と時分秒を出力 2022/02/28 22:40:13 今回はこうやって使われていた。 ...

August 22, 2024 · 1 min · 100 words · Me

Comments_on_tcp_ip_network_commands

TCP/IP & ネットワークコマンド入門の大事なところをメモっていく ncコマンドについて 個人的に、最近ncコマンド使う機会が増えてきて、この本でも結構語られているので、使い方くらいはメモっておきたい ncコマンドはTCPもしくはUDPのコネクションを貼ってくれるコマンド。送信するビット列は完全に自分で選ぶことができる。 以下のコマンドでサーバをTCPで起動できる。 -l はlistenの略で、リッスンしている、つまりサーバです nc -l 55555 以下のコマンドで、ncサーバとコネクションを貼ることができる nc <ip addr> <port> よくあるncコマンドの使用例 使用例としては、あるサービスのクライアントがどんな感じでbit列を送ってくるのかをサーバ側から可視化するときに使うイメージが強いな。 例えばUDP通信の代表例であるDNS resolutionね。こんな感じです。 ローカルホストで以下のncサーバを立てる # nc -u -l 1053 > query_packet.txt こいつは、1053万ポートでUDP通信を待ち受けている。で、受け取ったパケットをquery_packet.txtにリダイレクトしている。 このサーバに対して、以下のdigコマンドを送ることで、DNSクライアントがどのようなパケットを送信しているかがわかる。 dig +retry=0 -p 1053 @127.0.0.1 +noedns google.com ここからは、追加での遊びですが、こんな感じで、ncサーバで受け取ったパケットを今度はncクライアントに流し込んで読み込ませることもできると。おもろいっすね。 nc -u 8.8.8.8 53 < query_packet.txt > response_packet.txt ちなみに、以下のコマンドでhexでパケットの中身が見られるようになります。 hexdump -C query_packet.txt sshクライアントの動きをncサーバをたててみてみる nc -l 10022 > clien_packet.txt ssh localhost -p 10022 ray@delta:~$ hexdump -C clien_packet.txt 00000000 53 53 48 2d 32 2e 30 2d 4f 70 65 6e 53 53 48 5f |SSH-2.0-OpenSSH_| 00000010 38 2e 39 70 31 20 55 62 75 6e 74 75 2d 33 75 62 |8.9p1 Ubuntu-3ub| 00000020 75 6e 74 75 30 2e 31 30 0d 0a |untu0.10..| 0000002a みたいな感じで見られてりして、マジで面白いわけですね。はい。ってことで、ncコマンドはガチで便利だし、知っておいた方がいいって話です。 ...

August 18, 2024 · 1 min · 200 words · Me

Learn_k8s_4

大人気K8Sシリーズ。 今回でなんと第4回目 まずは、過去の振り返りをやっていきましょう。 振り返り 過去の奮闘記録。 構築日記その1 構築日記その2 構築日記その3 第1回目と第二回目はインフラ構築を頑張っていた感じです。引っ越しとかあって、K8Sの勉強は飛び飛びになっている感じでね。 そして、第3回にして、やっと色々とインフラ構築をスムーズにできて、さまざまな概念についても理解できてきた、という感じです。 はい、サービスね。これが大事な概念だった。POD間で通信をするためには、Serviceが必要だったのではないか?とね。ServiceでPODをcoreDNSに登録することができる。 そして、基本的に一つのサービス内での通信はしない。サービス間の通信はあるが。なので、docker composeのようにはいかないという話だな。 そして、今回の第4回目では、K8Sの使い方をもっと詳しく理解していきましょう、という回になっています。 具体的には、「つくって、こわして、直して学ぶkubernetes入門」という本に従って色々と進めていきたいと思っています。はい。 そして、第5回目に、私が開発した競馬システムをついにデプロイする、という感じに持っていきたいと思っています。よろしくお願いします。 まずは、harborにログインしておく の前にロボットアカウントを作らないといけない感じ? docker login 100.64.1.61:20080 -u username -p password server nerdctlを使っているので、buildを使うためにbuildkitをインストールする必要がある。 しかも、buildkitdというのを走らせておく必要がある。 テストでgoで簡易サーバを作って走らせる package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/",func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w,"Hellow, wordl!") }) log.Println("starting server on port 8880") err := http.ListenAndServe(":8880", nil) if err != nil { log.Fatal(err) } } dockerfile FROM golang:1.23 AS builder WORKDIR /app COPY . . ENV CGO_ENABLED=0 RUN go mod tidy RUN go build -o hello . FROM scratch COPY --from=builder /app/hello /hello ENTRYPOINT ["/hello"] go.modを入れるのを忘れずに。 go mod init github.com/hogehoge とかで問題ない。 ...

August 18, 2024 · 11 min · 2284 words · Me

House_keeping

家事 8/13 R 風呂掃除 皿洗い T 昼ごはん 洗濯 コンロ掃除 8/14 R T 朝ごはん 昼ごはん

August 13, 2024 · 1 min · 14 words · Me

Wordpressを導入し、独自テーマを作り、docker化する

最終目標 dockerコマンドで一発でワードプレスを展開可能 独自テーマを導入している。 可能であれば、フォーム送信などもしたい。つまり、独自のapiとのやり取りを可能にしたい。 まず知りたいのが、独自テーマを使うと、フロントエンドも自分の好きなように改変できるのか?という話。これは気になる。 dockerでワードプレスを使えるようにする。 まずは、公式docker hubこちらになります。 ふむふむ。簡単だな。こちらののdocker composeコマンドで一発で行けるか?? version: '3.1' services: wordpress: image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - wordpress:/var/www/html db: image: mysql:8.0 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db:/var/lib/mysql volumes: wordpress: db: docker composeが使えないdockerもあるのよね。これが一番だるい。dockerの公式サイトからインストールするのが一番いい。 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin で、あとは、適当に、 ...

August 8, 2024 · 3 min · 576 words · Me

サイトの切り替え

背景 10年前に作ったサイトをまだ使っているということで、かなりPVが落ちてきているんだよね。 そこで、ワードプレスなどで作った新しいサイトに移行をしたいと思っている。 端的にいうと、名前解決先を新しいIPと紐づければ良さそうに感じるが、本当にそれでいいのだろうか? ここではサイトの引越しの際に気をつけるべきポイントを徹底的に考察する サイト引越しの際に気をつけるべきポイント 引っ越す方法 とりあえず、ワードプレスで同じサイトを作る 301でリダイレクトってなんだ? Lets ecryptで暗号化する場合、cronで自動的に更新できるようにしないとな。

August 8, 2024 · 1 min · 11 words · Me