弊宅では複数の回線を契約している都合ですべての回線を Core Switch に VLAN を付番し収容している。こうすることで 802.1Q で仮想マシンクラスターや Ubuntu などのサーバーから Trunk で渡すと回線を変更しながら使うことができる。正直超便利なので2回線以上ある家庭にはおすすめする。
先日から複数回 Rakuten Mobile が急に通常の遅延から 300ms 程度になる事象がているため各回線の品質を監視することにした。 昔なら SmokePing を利用する所だが弊宅は管理コストを抑えたいしすでに Zabbix がいて LAN 内外から監視しているため Zabbix とすることにした。また計測には network_exporter
などを使う想定で Listen アドレスから送出されるパケットは該当 IP の GW に送信されるようにソースルーティングを試す。
設定 ¶
11-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| network:
version: 2
ethernets:
eth0:
addresses:
- 10.2.21.156/24
match:
macaddress: 36:50:92:00:00:00
nameservers:
addresses:
- 10.2.21.1
search:
- mgmt.tyo1.home.exsample.com
routes:
- to: default
via: 10.2.21.1
set-name: eth0
ens19:
match:
macaddress: e2:b2:4f:00:00:00
set-name: ens19
vlans:
v211:
id: 211
link: ens19
dhcp4: false
addresses:
- 192.168.11.150/24
routes:
- to: default
via: 192.168.11.1
metric: 111
table: 211
routing-policy:
- from: 192.168.11.0/24
table: 211
v212:
id: 212
link: ens19
dhcp4: false
addresses:
- 10.2.12.150/24
routes:
- to: default
via: 10.2.12.1
metric: 200
table: 212
routing-policy:
- from: 10.2.12.0/24
table: 212
v213:
id: 213
link: ens19
dhcp4: false
addresses:
- 192.168.13.150/24
routes:
- to: default
via: 192.168.13.1
metric: 113
table: 213
routing-policy:
- from: 192.168.13.0/24
table: 213
|
確認 ¶
eth0
は life ネットワークとなっていて今はルーティングを触ってないので v211 と同じ経路になる
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| root@tmp-netplan:/etc/netplan# traceroute -I -i eth0 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 10.2.21.2 (10.2.21.2) 0.327 ms 0.400 ms 0.491 ms
2 web.setting (192.168.11.1) 2.218 ms 2.198 ms 2.195 ms
3 * * *
root@tmp-netplan:/etc/netplan# traceroute -I -i v211 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 web.setting (192.168.11.1) 2.507 ms 2.666 ms 2.868 ms
2 * * *
root@tmp-netplan:/etc/netplan# traceroute -I -i v212 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 FS030W.lan (10.2.12.1) 2.787 ms 2.768 ms 2.762 ms
2 * * *
root@tmp-netplan:/etc/netplan# traceroute -I -i v213 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 web.setting (192.168.13.1) 1.549 ms 1.565 ms 1.606 ms
2 * * *
|
network_exporter ¶
大丈夫そうなので network_exporter を試してみる
ソースIP の設定は source_ip
を追加することで可能です
network_exporter.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| # sdsdsd
conf:
refresh: 15m
# nameserver: 8.8.8.8:53 # Optional
nameserver_timeout: 250ms # Optional
icmp:
interval: 5s
timeout: 3s
count: 6
mtr:
interval: 60s
timeout: 500ms
max-hops: 30
count: 6
tcp:
interval: 5s
timeout: 3s
http_get:
interval: 15m
timeout: 5s
targets:
- name: google-dns1-v211
host: 8.8.8.8
type: ICMP+MTR
source_ip: 192.168.11.20
- name: google-dns1-v212
host: 8.8.8.8
type: ICMP+MTR
source_ip: 10.2.12.85
- name: google-dns1-v213
host: 8.8.8.8
type: ICMP+MTR
source_ip: 192.168.13.20
|
1
2
3
4
5
| wget https://github.com/syepes/network_exporter/releases/download/1.7.3/network_exporter_1.7.3.Linux_x86_64.tar.gz
tar xvf network_exporter_1.7.3.Linux_x86_64.tar.gz
sudo setcap 'cap_net_raw,cap_net_admin+eip' network_exporter
./network_exporter --config.file=network_exporter.yml
|
これで localhost:9427/metrics で待っていると情報が確認できるようになるはず。
参考情報 ¶