VyOS を Rolling Version へとアップデート

VyOS を Rolling Version へとバージョンアップしてみた。
Rolling Verison は、いわゆる開発版、ベータ版とも言えるもので、現行の安定版が Debian squeeze ベースなのに対して jessie がベースになっているため、カーネル含めて色々新しくなっているし、 Debian パッケージを持ってきて機能を追加したい時にも新しいものが使えるというのもありがたいところ。

アップデートすること自体は、それほど難しいことではなく、公式サイトの Wiki に記載されている通りにやれば、既存設定の引継ぎも自動的に行われるので、ISO ファイルのダウンロード時間+αの時間で完了。

ただ、今回は単純に旧バージョンの設定を引き継いだ状態では PPPoE セッションが正しく張られないというのにハマりまして、色々調べてみた結果、PPPoE のセッション自体に固定的に割り当ててた IP アドレスの設定を削除してみたところ、上手く繋がった次第。

旧バージョン時代の設定を比較した(抜粋)のが、以下のもの。

--- /lib/live/mount/persistence/boot/VyOS-1.1.8/live-rw/config/config.boot      2017-12-29 00:30:09.499208506 +0900
+++ /config/config.boot 2017-12-29 03:32:47.239589856 +0900
<<中略>>
@@ -134,17 +134,17 @@
hw-id xx:xx:xx:xx:xx:xx
pppoe 0 {
default-route auto
- local-address 218.219.149.233
mtu 1492
name-server auto
password **********
service-name editnet
user-id ********@218.219.149.232@edit.ne.jp
}
- smp_affinity auto
+ smp-affinity auto
speed auto
}
- loopback lo
+ loopback lo {
+ }
tunnel tun0 {
address 2001:470:23:94::2/64
description "HE.NET IPv6 Tunnel"
<<後略>>

んと、"local-address" の 1 行の有無だもんなぁ。(他にも差分出ているけど、バージョン変わったことで自動的に変更されたところだけど、VyOS 動作自体には影響しない部分。)


Rolling Version にしたかった理由は、前回ちょっと書いたのだけど、 Squid が新しく出来ることが判っていたから。

で、今回あれこれやっている中で、 VyOS の Rolling Version の最新版を試してみたりしていたわけですが、そちらは Squid が 3.4.8 だったりするのもあって「そっちが使えたら…」というのもあったんですが、何故かプロバイダとの PPPoE 接続が出来ないという状況になりまして、利用を断念しました。(何故、接続できなかったのかまでは、追いきれていない…。)

[From VyOSでWebプロキシー - Soukaku's HENA-CHOKO Blog]

実際のところ、 3.4 系もコミュニティーとしてのサポート終わってるですけど、必要なら stretch からパッケージ引っ張ってくればいいし、 Rolling Version ならそれがやりやすくなりますし…。

で、 Rolling Version に変えたところで、最後の 2 行を手動で追加して、Squid を再起動。

root@sweethome:~# diff -u /lib/live/mount/persistence/boot/VyOS-1.1.8/live-rw/etc/squid3/squid.conf /etc/squid3/squid.conf
--- /lib/live/mount/persistence/boot/VyOS-1.1.8/live-rw/etc/squid3/squid.conf 2017-12-17 00:27:38.522066848 +0900
+++ /etc/squid3/squid.conf 2017-12-29 01:26:44.409748680 +0900
@@ -2,7 +2,6 @@
# autogenerated by vyatta-update-webproxy.pl
#

-acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl net src all
@@ -10,6 +9,7 @@
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
+acl Safe_ports port 873 # rsync
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
@@ -36,7 +36,10 @@

cache_store_log none

+tcp_outgoing_address 218.219.149.233
+
http_port 172.16.0.1:3128

forwarded_for off
-
+via off
+workers 2

これで、Squid 自体がマルチプロセスで動作する。

root@sweethome:~# ps axf | grep squid
21930 pts/0 S+ 0:00 \_ grep squid
4532 ? Ss 0:00 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
4534 ? S 0:08 \_ (squid-coord-3) -YC -f /etc/squid3/squid.conf
4535 ? S 0:22 \_ (squid-2) -YC -f /etc/squid3/squid.conf
4536 ? S 1:47 \_ (squid-1) -YC -f /etc/squid3/squid.conf

過去に仕事で Proxy サーバを Squid 3.3 で構築した際に負荷試験をやったことがあるんだけど、 workers を指定しない状態だと同時アクセス 2000 セッションぐらいで頭打ちになっていたのが、 workers を指定すると 2000 セッション × workers の指定値 でパフォーマンスが向上していった、というのはありましたね。
その試験結果から、 4C/8T の Xeon E3 積んだサーバを複数台で "workers 16" を指定した Squid を 5 年ぐらい運用してたりしますが、Web アクセス自体が遅いって不満の声はまったく聞こえてきてないです。(クライアント数はピーク時で3万人弱ぐらい、かな?)

まぁ、我が家ではそこまでのパフォーマンスは要求されないので、2 を指定しとけば十分。

Rolling Version にしたことで、もう一つ出来るようになったことがあるんだけど、それは別エントリーで。

トラックバック(1)

ここ最近、仮想通貨がブームというか話題になることが多いのですけど、まぁ自分にとってはあんま関係ないな、と思っていたんですけど、GPU を使わず CPU パ... 続きを読む

コメントする