Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am yjuba on github.
  • I am yjuba (https://keybase.io/yjuba) on keybase.
  • I have a public key ASDYDerS8VfIs4ET77QZsgdma6sWXhxHQZgeF3VbhaCvJQo

To claim this, I am signing this object:

golangからネットワーク機器へsshする

NetOpsCoding AdventCalendar2016の4日目の記事です。

概要

NW機器へsshするプログラムの類を目にしたときに、
私が見かける範囲ではPythonやRubyを利用する例が多いように感じています。

@yjuba
yjuba / xdp_env_setup.sh
Created May 5, 2017 10:41
XDP実行環境セットアップ用スクリプト、Ubuntu 16.04上でIntel e1000ドライバを使う前提
#!/bin/bash
set -eu
set -x
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4
sudo apt update
sudo apt -y upgrade
sudo apt -y dist-upgrade
# sudo apt install -y tmux

gVisor動作テストメモ

gVisor

root@43b8d2d40134:/# uname -a
Linux 43b8d2d40134 3.11.10 #1 SMP Fri Nov 29 10:47:50 PST 2013 x86_64 x86_64 x86_64 GNU/Linux
root@fab243e04c17:/# iperf -c 192.0.2.100 -t 60
------------------------------------------------------------
Client connecting to 192.0.2.100, TCP port 5001

XDPで80/TCPのパケットをフィルタした時の結果

一旦これで、パケットのドロップとカウンタの出力が出来ることを確認した。
現状、仮想環境上で稼働させているので、性能は後日物理環境上で計測する。

送信元

yjuba@yjuba-xdp-work002:~$ sudo hping3 --flood -S -p 80 192.0.2.1
HPING 192.0.2.1 (ens3 192.0.2.1): S set, 40 headers + 0 data bytes
.PHONY: help
.DEFAULT_GOAL := help
bpf_path = /sys/fs/bpf
counter_path = /sys/fs/bpf/counter
interface = ens3
mount-bpf: ## Mount /sys/fs/bpf
@sudo mount -t bpf bpf $(bpf_path)
@yjuba
yjuba / install_ubntu1604.sh
Last active May 5, 2017 10:37
KVM上にUbuntu 16.04を入れる時のメモ
#!/bin/bash
set -eu
set -x
virt-install \
--name yjuba-sample000 \
--ram 4096 \
--disk path=/var/lib/libvirt/images/yjuba-sample000.img,size=20 \
--vcpus 2 \
@yjuba
yjuba / lxd_image_creator.sh
Last active April 30, 2017 06:49
LXD用のUbuntu Xenialイメージ作成スクリプト
#!/bin/bash
set -eu
set -x
REPO_URL='http://www.ftp.ne.jp/Linux/packages/ubuntu/archive/ubuntu/'
work=$(mktemp -d work.XXXXXX)
cd ${work}
@yjuba
yjuba / golang_deb_package.md
Created January 8, 2017 13:23
必要に応じて毎度書いているが、毎度手順を忘れるので、雛形代わりにリポジトリとして上げておく

自前のアプリケーションをdebパッケージにする

主旨

自前のアプリケーションを配布する際に、手元からscpしてconfigファイルを配置してというのを避けたいのが一番の理由。
Chef/Ansibleでやる手も無くはないが、そこまで大げさにしたくないというのもある。

参考にした記事でも、以下の様に書かれており、心底同意。

package main
import (
"bytes"
"fmt"
"io"
"os"
"golang.org/x/crypto/ssh"
)