コアダンプの数だけ強くなれるよ

見習いエンジニアの備忘log

ネットワーク

packetソケットでキャプチャしてみる

Linuxのpacketソケットを使って受信フレームの内容を表示してみます。 今回はEther + IPv4 + TCPで受信したフレームの各ヘッダ情報を表示するアプリケーションを作ります。Linux, C言語です。 packetソケットについての詳しい説明はMan page of PACKETとかを…

Linuxのnamespaceでネットワークを区切って遊ぶ

Linuxのnamaspace(名前空間)で遊んでみます。 Dockerとかコンテナを実現する技術で使われるアレですね。 お遊び内容 各種設定 疎通確認 参考 お遊び内容 まず、下図のネットワーク構成を作ります。 ・eth1,eth2は内部ネットワーク ・vlan100,vlan200はVLANタ…

TCPのURGフラグの謎

普段からネットワークを扱う人にとってはお馴染みのTCPという技術。 ネットワークを学ぼうとするビギナーが最初に教わるであろう基礎的で重要なプロトコルですが、ずっとTCPヘッダにあるURGフラグ(緊急フラグ)とUrgenポインタ(緊急ポインタ)の使いどころが疑…

PowerShellでメールを受信してみる

とあるソフトウェアの試験で対象の装置からSMTPサーバへログが記載されたメールが飛ぶかどうか確認する必要がありました。フリーのSMTPサーバを使えれば良いのですが、試験環境にはインターネットから切り離されたWindowsのPCしか無い状況。しかも勝手にソフ…

GoogleのTCP BBRでLinuxサーバーの高速化を試す

GoogleさんがLinuxに実装したTCPの輻輳制御モジュールでTCP通信がどのくらい高速化されるのか試してみる。環境はVirtualBox上にインストールしたCentOS7(64bit)。具体的にはVMを2つ作成しiperfを使ってVM間のTCP通信性能がどのくらい変わるのか見てみる。 BB…

NETLINKでネットワークインタフェースの状態変化を検知する

LinuxでNETLINKを使ったネットワークインタフェースの状態変化(up/down, IPアドレスの追加/削除)を検知してみる。NETLINKはネットワークインタフェースの状態変化をカーネルからユーザランドのアプリケーションに対してソケットインタフェース経由で通知して…

socatで装置内通信のデータをのぞき見る

socatを使ってUNIXドメイン通信を中継し通信内容をのぞいてみる。 構成のイメージは下記。 -------------------------------------------------- ________ ________ ________ | | | | | | | Client |--->| socat |--->| Sever | |________| |________| |____…

Windows-Linux間をTCPで通信する

TCPを使ってWindowsとLinux間で通信してみる。 具体的にはWindows上にVirtualboxで仮想マシンを作成しHost-Only-Adapter経由で通信する。 構成 サーバ : Linux CentOS 6, X86_64(64bit) on Virtualbox クライアント : Windows7 (32bit) プログラム作成 クラ…

ソケットプログラミング(UDP)

LinuxでUDPによる通信を行うサンプルプログラム。この手の例はGoogle先生で検索すれば沢山でてくるけど、システムコールのリターン値を見てなかったり、openに対応するcloseをしていない例が多いことに気付くと思う。もちろん動かすことだけ考えたら気にする…