2017年10月31日 / kamaboko / 0 Comments
この記事はビール飲みながら書きました。アルコール入ってるので間違ってたり変なこと言ってたらごめんなさい。。おびーるおいちい!!!!
Qiitaデビュー兼ねてこの記事の微修正入れたりしつつ投稿しました。
技術的な記事はもうそっちに寄せようかなー(このブログの存在意義がなくなる)
Linux Raw Socketを使って遊んでいたのですが、VLANタグ付きフレームを受信してもraw socketではタグが消されてしまうことがわかった。
結論から言うと結構弄めんどくさかったのでそのメモ。
(さらに…)
2017年9月21日 / kamaboko / 0 Comments
CentOSは5,6しか使ったことなかったのですが、何も考えずにサーバにCentOS7をインストールしたら何もかもが変わっていてびっくりしました。
とりあえずネットワーク周りの設定でハマったのと、日本語で情報がなかったのでメモ。
(結局はNetwork Managerが面倒くさいだけな気はするのですが。。)
例えば、あるinterfaceを起動したときに、同時にそれに関連するネットワーク設定ができると便利ですよね。
Debian等でれば、/etc/network/interfacesにこんな感じで書けば、interface起動時に好きなコマンドを実行できたりします。
|
auto veth-sw1ns1
iface veth-sw1ns1 inet manual
pre-up ip link add veth-sw1ns1 type veth peer name veth-ns1sw1
pre-up ip netns add ns1
pre-up ip link set veth-ns1sw1 netns ns1
pre-up ip netns exec ns1 ip link set veth-ns1sw1 up
post-down ip link del veth-sw1ns1
|
しかし、CentOS7はNetwork Managerがすべてを握っているため、果たしてどこに書いてやれば良いのか。
(さらに…)
2017年8月9日 / kamaboko / 0 Comments
前回に引き続き、Dockerのネットワーク周りです。
今回はDockerの仮想NICをraw socketで扱ってみようと思います。
Dockerの仮想NICはホストOS上で見えるvethとip linkの関係にあり、対応するvethにパケットを送信するとコンテナ内のethに転送されます。
そしてホストOS上で見えるvethは、通常のNICと同じように扱えます。
Docker標準ではこのvethがLinux bridgeであるdocker0というブリッジに接続されますが、前回はvethをdocker0から剥がしてOpenvSwitchに接続しました。
これによりVLANが扱えたり、OpenFlowでパケット転送を制御したりが可能となりました。
今回は、そのOpenvSwitchに当たる転送処理を自前で実装してみようというのが趣旨になります。
まずは簡単なバカハブ(リピーターハブ)を実装してみたいと思います。
(さらに…)
2017年7月27日 / kamaboko / 1 Comment
ご無沙汰しております(3年ぶり)
仕事?
もちろんしてますよ。あと山登りしてます。
それはそうと、仕事でネットワーク関連の検証をやっていて、ただのPing箱がたくさん欲しくなったとき、こんな感じの構成を作りたかった。
今までただPing返してくれれば良かったので、
この絵で言うコンテナ部分をnetns(Linux Network Namespace)でやっていた。
もちろんnetnsはネットワークの隔離であって、ファイルシステムやプロセス空間までは分けてくれない。
なので、すでにホストOS上でApacheだったりsshdだったりが動いていると、起動スクリプトをいじくったりしないといけない。
ここがコンテナになると、一度にネットワークもファイルシステムもプロセス空間も分離できる。
さらにDockerならDockerfile少し書いたり、出来合いのイメージ拾ってくるだけでサーバとかも一瞬で建てられる。
というわけでやってみよう。
(さらに…)
2014年9月29日 / kamaboko / 0 Comments
私が今使っている自宅のインターネット環境ではプロバイダからDHCPでIPアドレスをもらい、固定IPは有料となっています。
また、ポート等も上位のネットワークで管理されており、内向きのパケットは基本的にすべてが破棄されます。
固定IP取得ポート開放はいくらか支払えば可能ですが、月2000円くらいかかったりするので、できれば無料でやりたいですよね。
そこで考えたのが、以前の[Twitter]←(UserStrem監視)←[RaspberryPi]→(制御)→[Eject]だったわけですが、これではTwitterに依存することになります。
できればTwitterなどを使わずに自由にEjectしたいです。(UIも自分で作ったり)
というわけで今回はVPS上にNode.jsでチャットサーバを立てることで実現してみました。
※Ejectネタです。(☝ ՞ਊ ՞)☝ウィーン
(さらに…)