dnfコマンドで”Less than 1000 bytes/sec transferred the last 30 seconds”を言われるのを無視したい


openEuler 20.03 LTS環境のメンテナンスのため、久しぶりに起動して「dnf update」を実行した。

すると、大きめのファイルのダウンロードで「Less than 1000 bytes/sec transferred the last 30 seconds」と言われていた。

しかし、単純に中国サーバなので遅いだけなので、この速度制限をどうにかしたい。

/etc/dnf/dnf.conf の[main]セクションに「minrate=1」を追加することで、最低速度が1bytesとなり速度制限が実質解除となった。

また、openeular 20.03lts sp2環境でアップデートしたらfuse3関連でエラーとなった。

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:12:39 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:12:44 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

調べて見ると公式FAQに記載があった。

ただ、文字が抜けてたりして実行できない

[root@openeuler ~]# dnf fuse fuse3 fuse-common
No such command: fuse. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(fuse)'"
[root@openeuler ~]# dnf upgrade fuse fuse3 fuse-common
Last metadata expiration check: 0:14:02 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Package fuse3 available, but not installed.
No match for argument: fuse3
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

こちらではどうか?

[root@openeuler ~]# dnf downgrade fuse
Last metadata expiration check: 0:15:07 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): fuse-help-2.9.9-3.oe1.x86_64.rpm          63 kB/s |  20 kB     00:00
(2/3): fuse3-3.9.2-3.oe1.x86_64.rpm             196 kB/s | 113 kB     00:00
(3/3): fuse-2.9.9-3.oe1.x86_64.rpm               89 kB/s | 139 kB     00:01
--------------------------------------------------------------------------------
Total                                           173 kB/s | 272 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Downgrading      : fuse-help-2.9.9-3.oe1.x86_64                           1/6
  Downgrading      : fuse-2.9.9-3.oe1.x86_64                                2/6
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                2/6
  Installing       : fuse3-3.9.2-3.oe1.x86_64                               3/6
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               3/6
  Cleanup          : fuse-2.9.9-4.oe1.x86_64                                4/6
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                4/6
  Obsoleting       : fuse-common-3.9.2-4.oe1.x86_64                         5/6
  Cleanup          : fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Running scriptlet: fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                1/6
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                2/6
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         3/6
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           4/6
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/6
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               6/6

Downgraded:
  fuse-2.9.9-3.oe1.x86_64              fuse-help-2.9.9-3.oe1.x86_64

Installed:
  fuse3-3.9.2-3.oe1.x86_64

Complete!
[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:15:17 ago on Fri 15 Apr 2022 05:08:37 PM JST.

fuse.x86_64                            2.9.9-4.oe1                        update
fuse-help.x86_64                       2.9.9-4.oe1                        update
fuse3.x86_64                           3.9.2-4.oe1                        update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

で、もう1回アップデートをかけてみたら成功した

[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:16:25 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package             Architecture   Version                Repository      Size
================================================================================
Upgrading:
 fuse                x86_64         2.9.9-4.oe1            update         136 k
 fuse-help           x86_64         2.9.9-4.oe1            update          13 k
 fuse3               x86_64         3.9.2-4.oe1            update         112 k
Installing dependencies:
 fuse-common         x86_64         3.9.2-4.oe1            update         9.2 k
Installing weak dependencies:
 fuse3-help          x86_64         3.9.2-4.oe1            update          14 k

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  3 Packages

Total download size: 284 k
Downloading Packages:
(1/5): fuse-common-3.9.2-4.oe1.x86_64.rpm        19 kB/s | 9.2 kB     00:00
(2/5): fuse3-help-3.9.2-4.oe1.x86_64.rpm         28 kB/s |  14 kB     00:00
(3/5): fuse-help-2.9.9-4.oe1.x86_64.rpm          81 kB/s |  13 kB     00:00
(4/5): fuse-2.9.9-4.oe1.x86_64.rpm              190 kB/s | 136 kB     00:00
(5/5): fuse3-3.9.2-4.oe1.x86_64.rpm             271 kB/s | 112 kB     00:00
--------------------------------------------------------------------------------
Total                                           308 kB/s | 284 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Upgrading        : fuse-help-2.9.9-4.oe1.x86_64                           2/8
  Installing       : fuse3-help-3.9.2-4.oe1.x86_64                          3/8
  Upgrading        : fuse3-3.9.2-4.oe1.x86_64                               4/8
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               4/8
  Upgrading        : fuse-2.9.9-4.oe1.x86_64                                5/8
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                5/8
  Cleanup          : fuse-2.9.9-3.oe1.x86_64                                6/8
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                6/8
  Cleanup          : fuse-help-2.9.9-3.oe1.x86_64                           7/8
  Cleanup          : fuse3-3.9.2-3.oe1.x86_64                               8/8
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               8/8
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/8
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                3/8
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                4/8
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/8
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           6/8
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               7/8
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               8/8

Upgraded:
  fuse-2.9.9-4.oe1.x86_64 fuse-help-2.9.9-4.oe1.x86_64 fuse3-3.9.2-4.oe1.x86_64

Installed:
  fuse-common-3.9.2-4.oe1.x86_64          fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

ただ・・・もう1回「dnf check-update」を実行するとこうなるんだけど、なんなんだ・・・

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:17:13 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse3.x86_64                        3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

うーん???

[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]# dnf remove fuse3-3.9.2-4.oe1.x86_64 fuse3-help-3.9.2-4.oe1.x86_64
Dependencies resolved.
================================================================================
 Package            Architecture   Version                Repository       Size
================================================================================
Removing:
 fuse3              x86_64         3.9.2-4.oe1            @update         377 k
 fuse3-help         x86_64         3.9.2-4.oe1            @update         5.0 k

Transaction Summary
================================================================================
Remove  2 Packages

Freed space: 382 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Erasing          : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               1/2
  Erasing          : fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Running scriptlet: fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/2

Removed:
  fuse3-3.9.2-4.oe1.x86_64             fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse-common-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

fuseは2.9.9-3.oe1があるけどfuse-commonにはない

[root@openeuler ~]# dnf downgrade fuse-help-2.9.9-3.oe1 fuse-2.9.9-3.oe1 fuse-common-2.9.9-3.oe1
Last metadata expiration check: 0:24:30 ago on Fri 15 Apr 2022 05:08:37 PM JST.
No package fuse-common-2.9.9-3.oe1 available.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: n
Operation aborted.
[root@openeuler ~]#
[root@openeuler ~]# dnf --showduplicates list fuse-common
Last metadata expiration check: 0:25:15 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse-common.x86_64                      3.9.2-4.oe1                      @update
Available Packages
fuse-common.x86_64                      3.9.2-4.oe1                      update
[root@openeuler ~]# dnf --showduplicates list fuse
Last metadata expiration check: 0:25:24 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse.x86_64                        2.9.9-4.oe1                        @update
Available Packages
fuse.src                           2.9.9-3.oe1                        source
fuse.x86_64                        2.9.9-3.oe1                        OS
fuse.x86_64                        2.9.9-3.oe1                        everything
fuse.x86_64                        2.9.9-4.oe1                        update
[root@openeuler ~]#

解決できなさそうだなぁ・・・

Oracle Cloud上のOracle Linux 8環境でレポジトリを追加する


Oracle Cloud上でOracle Linux 8を展開するとき、Oracleが提供するプラットフォームイメージ を使用する。

Oracle-Linux-8.5-aarch64-2022.03.17-1 を使用したところ、CLIのレポジトリ一覧表示に変化があった。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$

「This system is receiving updates from OSMS server.」というメッセージが追加されていて、有効化されているレポジトリしか表示されていない。

OSMSというのはOS Management System(OS管理) のことで、2020年ぐらいから組み込みが開始されていたもののレポジトリ管理までは行っていなかったものとなる。

リリース情報を確認すると2021年10月に関連する記載があった。


10月Oracle Linux 8プラットフォーム・イメージでデフォルトで有効になっているOS管理サービス・エージェント・プラグイン

2021年10月にリリースされたOracle Linux 8プラットフォーム・イメージ以降、Oracle Linux 8インスタンスのOracle Cloud Agent 1.16.0でOS管理サービス・エージェント・プラグインがデフォルトで有効になっています。

2021年10月(Oracle Cloud Agent 1.15.0以前を実行)より前に起動されたOracle Linux 8インスタンスの場合、OS管理サービス・エージェント・プラグインはデフォルトで無効になっています。無効化されたOracle Linux 8インスタンスのOS管理サービス・エージェント・プラグインは、Oracle Cloud Agent 1.16.0への更新後も無効のままです。

詳細は、OS管理の開始を参照してください。


ただ、「OS管理の開始 – 前提条件」には「OS管理は、Oracle Cloud Free Tierでは使用できません。」

使えてしまっている現状は正しいのか、誤りなのか、なやむところです・・・

それはさておき、「This system is receiving updates from OSMS server.」が表示される場合のレポジトリ追加は、まずは、Oracle Cloudのコンソール画面から実施する。

[インスタンスの詳細]-[OS管理]を開くと、パッチの状況が確認できる

レポジトリを追加する場合は「…」をクリックして表示される「OS管理詳細の表示」を選択する

[OS管理の詳細]で[ソフトウェア・ソース]を選択すると、現在enabledとなっているレポジトリ一覧が確認できる。

レポジトリを追加するには、ここの「追加」をクリックする。

追加したいレポジトリを選択し「追加」する。

一覧に追加されたことを確認します。

もちろんコマンドで確認しても追加されています。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_developer_epel-aarch64               Oracle Linux 8 EPEL Packages fo enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$

sambaのDNSでは委任(delegate)ができないようだ


PowerScaleシミュレータのSmartConnect動作を見てみようと、samba 4.15.5で作ったActive DirectoryのDNSサーバ機能で名前解決動作を試みて見た。

結果、samba 4.15.5ではWindowsのDNS管理ツールから行う「委任ウィザード」の「ネームサーバーレコード」の登録で「検証エラー」が発生するためうまく動作しなかった。

sa

samba-tool コマンドでNSレコードの登録を行ってみたところ登録ができるが、指定したDNSサーバに聞きに行くわけではない、という動作だった。

同じ操作をWindows Server 2019で作ったActive Directory環境で試すと何も問題が無く設定完了した

テスト環境用ゲートウェイサーバをarmbianで作ったことのメモ


とりあえず客先のIPアドレスで構築する時に、ちょうどいいサーバが無かったので余ってたorangepiでゲートウェイサーバを作った。

調達したスイッチがタグVLANしゃべれるやつだったので、orangepiの1ポートしかないNICに、VLANを4つ載せた

最近のarmbianはNetworkManagerによる制御にあるので、nmtuiコマンドなどでネットワーク設定を行った。

nmtuiで[Add]-[VLAN]を選んだあと、下記の様な感じでデバイスは空欄、「Parent(親)」は、実際のネットワークインターフェイスであるeth0を指定、そして、作成したいVLAN IDを「VLAN id」に入力し、作成

これでネットワーク設定を行った結果は、 /etc/NetworkManager/system-connections に出力されている。

DNSサーバ

次に、VLANを割り当てているサブネット以外の場所にあるDNSサーバをどうやってごまかすかを考えた。

応答する内容については、 /etc/hosts に書いたものを利用する dnsmasq を試用することとした。

root@orangepi2:~# diff -u /etc/dnsmasq.conf.org /etc/dnsmasq.conf
--- /etc/dnsmasq.conf.org       2022-02-28 11:54:50.037516142 +0900
+++ /etc/dnsmasq.conf   2022-02-28 16:05:58.999972348 +0900
@@ -8,6 +8,7 @@
 # (53). Setting this to zero completely disables DNS function,
 # leaving only DHCP and/or TFTP.
 #port=5353
+port=53

 # The following two options make you a better netizen, since they
 # tell dnsmasq to filter out queries which the public DNS cannot
@@ -16,7 +17,7 @@
 # these requests from bringing up the link unnecessarily.

 # Never forward plain names (without a dot or domain part)
-#domain-needed
+domain-needed
 # Never forward addresses in the non-routed address spaces.
 #bogus-priv

@@ -43,7 +44,7 @@

 # Change this line if you want dns to get its upstream servers from
 # somewhere other that /etc/resolv.conf
-#resolv-file=
+resolv-file=/etc/resolv-tmp.conf

 # By  default,  dnsmasq  will  send queries to any of the upstream
 # servers it knows about and tries to favour servers to are  known
@@ -72,6 +73,7 @@
 # Add local-only domains here, queries in these domains are answered
 # from /etc/hosts or DHCP only.
 #local=/localnet/
+local=/osakana.net/

 # Add domains which you want to force to an IP address here.
 # The example below send any host in double-click.net to a local
@@ -142,6 +144,7 @@
 #    domain of all systems configured by DHCP
 # 3) Provides the domain part for "expand-hosts"
 #domain=thekelleys.org.uk
+domain=osakana.net,客先IPアドレス帯/24

 # Set a different domain for a particular subnet
 #domain=wireless.thekelleys.org.uk,192.168.2.0/24

osakana.net ドメインの名前解決を、ちゃんとしたDNSサーバに聞きに行かないよう「local=/ドメイン名/」を定義して、阻止する。

domain=の記述はいらないような感じだけど、とりあえず追加しておいたもの。

「resolv-file=/etc/resolv-tmp.conf」と入れてるのは、Network Manager生成の/etc/resolv.conf だと期待値と違ったものがあったため、あえて別ファイルとしているもので、通常は不要。

DNSサーバが他のサブネットにある件は、とりあえず、ダミーのVLANを作成し、そこにIPアドレスを割り当て、/etc/sysctl.d/98-ipforward.conf にip_forward設定を入れることで、応答を返せるようにした。

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

NTPサーバ

ntpサーバは chronyで作成した。

/etc/chrony.conf を修正するのではなく、 /etc/chrony/conf.d/server.conf に下記を記述した。

allow 172.17.44.0/24
allow 192.168.20.0/26
local stratum 10

これでchrony再起動で問題なかった。

proxyサーバ

要件には無かったが、ひとまずproxyサーバとしても動作できるようsquidをインストールした。

しかし、 armbian初期設定では /var/log が RAMディスク作成で50MBのため /var/log/squid が作成できずエラーとなった

/var/logの50MBというのは /etc/default/armbian-ramlog にて「SIZE=50M」で定義されている。

これを「SIZE=100M」などと変えて再起動すると反映される。

また、/var/log/squid をRAMディスク以外に逃がすことで対応した。

面倒なので、/ディレクトリ直下に/work/squidを作成し、そこに/var/log/squidのシンボリックリンクを作成している

root@orangepi2:/var/log/squid# ls -ld /var/log/squid
lrwxrwxrwx 1 root root 11 Feb 28 15:05 /var/log/squid -> /work/squid
root@orangepi2:/var/log/squid#

ssh接続を使って2つ先にある管理画面Webにアクセスする


下記の様な感じで、踏み台サーバを2つ経由した先にある管理画面Webを、手元の操作端末上のブラウザで確認したい。

sshによるトンネル接続を利用したSOCKS proxyを使うことで実現できる。

構成の概要としては下記の様な形となる。

操作端末はWindows 10で、puttyを使用してssh接続を行い、Firefoxブラウザで管理画面を開く、という想定。

まず、SSH接続1について設定

[Session]-[Host Name] で 踏み台サーバ1 とポート番号を指定(port 22)
[Connection]-[Data]-[Auto-login username] で 踏み台サーバ1のログインユーザ名
[Connection]-[SSH]-[Tunnels]の[Forwarded ports] で 「L10022 踏み台サーバ2:22」(“Local”,”Souce port:10022″,”Destination: 踏み台サーバ2:22″)
公開鍵認証を使用する場合は [Connection]-[SSH]-[Auth]の[Private key file for authentication]に指定

これにより、「踏み台サーバ1へのSSH接続1」と「操作端末のローカルポート10022にアクセスすると踏み台サーバ2のポート22に転送されるトンネル接続」が出来る。

次に作成されたトンネル接続を利用したSSH接続2を設定

[Session]-[Host Name] で localhost ポート 10022 を指定
[Connection]-[Data]-[Auto-login username] で 踏み台サーバ2のログインユーザ名
[Connection]-[SSH]-[Tunnels]の[Forwarded ports] で 「D10080」(“Dynamic”,”Souce port:10080)
公開鍵認証を使用する場合は [Connection]-[SSH]-[Auth]の[Private key file for authentication]に指定

これで「”接続端末のローカルポート10022″から 踏み台サーバ ポート22 に転送されてSSH接続2」と「操作端末のローカルポート 10080 にアクセスすると、踏み台サーバ2 上からネットワーク接続できるトンネル接続」が出来る。

最後に、Firefoxの[General]-[Network Settings]にて、「Manual proxy configuration」で「SOCKS Host: localhost Port: 10080」と設定する。

これで操作端末上から閉鎖網2上にあるWeb管理画面を開けるようになった。


2022/01/20追記

TeraTermでも同様のことを行う手法を調べた。

puttyみたくテンプレート化できないので、ショートカットで起動できるようコマンドラインオプションとして指定する手法とした。

"C:\Program Files (x86)\teraterm\ttermpro.exe" 踏み台サーバ1 /ssh2 /auth=publickey /keyfile=X:\tmp\sshkey\~.ppk /ssh-L10022:踏み台サーバ2:22 /user=踏み台サーバ1のログインユーザ名 /passwd=秘密鍵のパスフレーズ

"C:\Program Files (x86)\teraterm\ttermpro.exe" localhost:10022 /ssh2 /auth=publickey /keyfile=X:\tmp\sshkey\~.ppk /ssh-D10080 /user=踏み台サーバ2のログインユーザ名 /passwd=秘密鍵のパスフレーズ

なお、引数でパスフレーズを指定しない場合、「SSH2秘密鍵の読み込みに失敗しました wrong passphrase」という下記のダイアログが表示されてうざいです。

また、TeraTermでSSHのダイナミックポート転送を行う場合、指定したポートが使用できない場合、下記の様なApplication fault Execption:ACCESS_VIOLATIONダイアログが表示されることがある。

ダイアログもなしにTeraTermが終了することもある。

2022/01/21 追記
TeraTermでのSOCKS proxy(ダイナミックポート転送)がどうにも不安定なので、 puttyで実施している。