blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を2016年に受賞。 現在はdigitiminimi inc.において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。使用できるのは↓。

Configuration Management Ansible, Terraform, cloud-init
Cloud Platform AWS, Azure, GCP, Openstack
Openstack Keystone, Glance, Cinder(Ceph), Neutron(VLAN), Nova(QEMU), Horizon
Virtualization QEMU+KVM, LXD/LXC, Docker
OS Ubuntu, Debian GNU/Linux, CentOS, ...
Storage Ceph, GlusterFS, ZFS, btrfs, ...
Networks Tunnel(IPSec, L2TP, VXLAN, GRE), WirelessAP, ...
DB MySQL, MariaDB(Galera Cluster), MongoDB
Mail postfix, dovecot
WebApps WordPress, GitLab, MatterMost, Redmine, RainLoop, ...
Monitoring Nagios, Munin
Misc certbot, dnsmasq, ...

study

習得中の技術は↓。

Orchestration Kubernetes
Openstack swift, manila, trove
OS CoreOS(Container Linux), Vyatta(VyOS), ...
Networks IPv6, BGP(quagga, calico), flannel, fan, ...
DB/KVS Redis, etcd
Monitoring Prometheus, Zabbix
DNS CoreDNS, PowerDNS
Misc MAAS

posts

LinuxでタグVLANを使う

LinuxでタグVLANを扱いたくなったので、やってみた。 Ubuntu16.04を使った。

カーネルモジュールの確認とロード

VLANを扱うには8021qというカーネルのモジュールが必要。 modinfoで8021qが使えるかどうかを確認できる。

$ modinfo 8021q
filename:       /lib/modules/4.4.0-101-generic/kernel/net/8021q/8021q.ko
version:        1.8
license:        GPL
alias:          rtnl-link-vlan
srcversion:     D6F56B141BC676D1643BF93
depends:        mrp,garp
intree:         Y
vermagic:       4.4.0-101-generic SMP mod_unload modversions

↓lsmodでカーネルモジュールがロードされているか確認ができる。

$ lsmod | grep 8021q
8021q                  32768  0
garp                   16384  1 8021q
mrp                    20480  1 8021q

↑でロードされていない場合は↓でロードする。

$ sudo modprobe 8021q

iproute2を使ってVLANインターフェースを作成する

標準のUbuntu16.04であれば、ipコマンド(iproute2)が使えるため、 ifconfigではなくipコマンドを使うのがの推奨されている。 (net-toolsはBSD系以外ではメンテナンスされていないらしい。)

↓今回の例として使うのはeth0というインターフェース。

$ ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0
    inet 10.0.1.30/24 brd 10.0.1.255 scope global eth0
       valid_lft forever preferred_lft forever

eth0というインターフェースに VLANID 10のインターフェースをeth0.10という名前でつける場合は↓のようにすれば良い。

$ sudo ip link add link eth0 name eth0.10 type vlan protocol 802.1Q id 10

するとeth0.10が作成される↓。

$ ip link show dev eth0.10
3: eth0.10@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:6f:5a:69 brd ff:ff:ff:ff:ff:ff

eth0.10にアドレス192.168.10.1/24を付与する場合は↓。

$ sudo ip address add 192.168.10.1/24 dev eth0.10

↓でeth0.10にアドレスが付与されたことが確認できる。

$ ip address show dev eth0.10
3: eth0.10@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:16:3e:6f:5a:69 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.1/24 scope global eth0.10
       valid_lft forever preferred_lft forever

↑ではまだリンクがDOWNしてるので↓でUPにすれば通信ができるようになる。

$ sudo ip link set dev eth0.10 up

↓UPになった。

$ ip link show dev eth0.10
3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:6f:5a:69 brd ff:ff:ff:ff:ff:ff

めでたしめでたし。