Linux上からIPv6アドレス指定でsshするときにはインタフェース名をつける


Linux上からIPv6アドレスを指定してsshしようとしたら「port 22: Invalid argument」と言われてしまった。

[root@centos8 ~]# ssh root@fe80::250:56ff:fe8f:aba9
ssh: connect to host fe80::250:56ff:fe8f:aba9 port 22: Invalid argument
[root@centos8 ~]#

きちんとpingでは応答あるのに

[root@centos8 ~]# ping -6 fe80::250:56ff:fe8f:aba9 -c 5
PING fe80::250:56ff:fe8f:aba9(fe80::250:56ff:fe8f:aba9) 56 data bytes
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=1 ttl=255 time=0.246 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=2 ttl=255 time=0.269 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=3 ttl=255 time=0.250 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=4 ttl=255 time=0.303 ms
64 bytes from fe80::250:56ff:fe8f:aba9%ens192: icmp_seq=5 ttl=255 time=0.316 ms

--- fe80::250:56ff:fe8f:aba9 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 135ms
rtt min/avg/max/mdev = 0.246/0.276/0.316/0.035 ms
[root@centos8 ~]#

なんでかと思ったら、sshコマンドでは、sshコマンドを実行したホストのどのインタフェースを使ってアクセスするのかを明示的に指定する必要があったようだ。

[root@centos8 ~]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:9c:2a:d1 brd ff:ff:ff:ff:ff:ff
    inet 172.17.44.49/16 brd 172.17.255.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 xxxx:xxx:xxxx:4700:2788:3aad:4bfa:6715/64 scope global dynamic noprefixroute
       valid_lft 2172237sec preferred_lft 185037sec
    inet6 fe80::2c85:a948:cd5:d5e1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@centos8 ~]#

つかうネットワークインタフェースは「ens192」なので、IPv6アドレスの後ろに「%ens192」をつけて実行

[root@centos8 ~]# ssh  root@fe80::250:56ff:fe8f:aba9%ens192
Password:
Last login: Wed Apr  7 16:24:37 2021 from fe80::2c85:a948
Oracle Corporation      SunOS 5.11      11.3    September 2015
root@solaris11:~# exit
logout
Connection to fe80::250:56ff:fe8f:aba9%ens192 closed.
[root@centos8 ~]#

問題無く接続できました。

Solaris11でホスト名/IPアドレスを変更する


Solaris10だったら以下のファイルあたりの変更でやってた

/etc/nodename
/etc/hostname.ネットワークインタフェース名
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf

Solaris11だとファイルを編集するのではなく、コマンドで変更する形になる

資料:Oracle® Solaris 10 から Oracle Solaris 11.3 への移行「Oracle Solaris 11 でのネットワークの構成

現在のホスト名確認


ホスト名変更

# svccfg -s svc:/system/identity:node setprop config/nodename=ホスト名
# svcadm refresh svc:/system/identity:node
# svcadm restart svc:/system/identity:node
# vi /etc/hosts で関係するホスト名を修正
# reboot

refreshのところは「svcadm refresh node」でも大丈夫説がある模様

ネットワーク設定確認

ネタ元 IPv4 インタフェースの構成

# ipadm show-addr
# ipadm show-if
# route -p show
# netstat -rn
# dladm show-phys
# dladm show-link

ネットワーク設定変更

現在値を消して、新規作成となるが2種類手順がある

アドレス設定のみ削除するもの

# ipadm delete-addr net?/v4
# ipadm create-addr -T static -a local=<IPアドレス>/<プレフィックス> net?/v4

ネットワーク定義全体を削除するもの

# ipadm delete-ip net?
# ipadm create-ip net?
# ipadm create-addr -T static -a local=<IPアドレス>/<プレフィックス> net?/v4

デフォルトゲートウェイ設定

# route -p add default <IPアドレス>

DNS設定確認

#  svccfg -s network/dns/client
svc:network/dns/client> listprop config
<略>
svc:network/dns/client> quit
#

DNS設定変更

(ネタ元 DNS クライアントを有効にする方法 )

#  svccfg -s network/dns/client
svc:/network/dns/client> setprop config/search = astring: ("<ドメイン名>" "<ドメイン名>")
svc:/network/dns/client> setprop config/nameserver = net_address: (<IPアドレス> <IPアドレス>)
svc:/network/dns/client> setprop config/options = timeout:1 
svc:/network/dns/client> select network/dns/client:default
svc:/network/dns/client:default> refresh 
svc:/network/dns/client> quit
#
# svcadm enable network/dns/client 

nsswitchの設定を確認する場合

# cat /etc/nsswitch.conf
# svccfg -s system/name-service/switch 
svc:/system/name-service/switch> listprop config
<略>
svc:/system/name-service/switch> quit
#

nsswitchを変更する場合の例

# svccfg -s system/name-service/switch 
svc:/system/name-service/switch> setprop config/host = astring: "dns files [TRYAGAIN=0]" 
svc:/system/name-service/switch> select system/name-service/switch:default 
svc:/system/name-service/switch:default> refresh 
svc:/system/name-service/switch:default> quit
# svcadm enable system/name-service/switch 
# svcadm refresh name-service/switch

Oracle公式に書いてあるDNSサーバ設定手順例

# svccfg -s dns/client setprop config/nameserver=net_address: 192.168.1.1
# svccfg -s dns/client setprop config/domain = astring: "foohost.org"
# svccfg -s name-service/switch setprop config/host = astring: "files dns"
# svcadm refresh name-service/switch
# svcadm refresh dns/client

rootユーザのログイン拒否問題

telnet は /etc/default/login の「CONSOLE=/dev/console」をコメントにする

sshは/etc/ssh/sshd_configに「PermitRootLogin yes」を設定して「svcadm restart ssh」

Ubuntu 18.04以降/CentOS7向けにMicrosoftがOpenJDK 11のパッケージ配布を始めた


Microsoftは従来からLinuxのいくつかのディストリビューション向けにバイナリパッケージを配布するレポジトリサーバ https://packages.microsoft.com/ を公開している。

たとえば、PowerShellを使いたい場合は「Linux への PowerShell のインストール」の手順を行って設定していた。

このたび、MicrosoftからOpenJDK 11のプレビュー版提供が開始された。「Announcing Preview of Microsoft Build of OpenJDK

Microsoft Build of OpenJDK」を見ると「Linux Installers for OpenJDK 11」という手順が公開されており、これを見ると、Debian 9と10、Ubuntu 18.04以降、CentOS8で従来から提供されているMicrosoftプロダクトレポジトリにおいて、msopenjdk-11の提供が始まったように見える。

うちのCentOS7環境はPowerShellを使える様にしているので使えるはず!と「yum search msopenjdk」を実行してみると見付からない・・・

設定されているレポジトリファイルはPowerShell手順にあるようにRHEL7のものだしなぁ・・・

# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

・・・OpenJDKの方のCentOS7手順を見てみる。

# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

取得しているディレクトリが https://packages.microsoft.com/config/rhel/7/ ではなく https://packages.microsoft.com/config/centos/7/ に変更されている。

というわけで、レポジトリファイルを変更して再実行!

無事検索されるようになりました。

が・・・よく見ると、CentOS7レポジトリでは「powershell」はなく「powershell-preview」というパッケージのみ提供な模様。(rhel7ではpowershell,powershell-lts,powershell-previewが提供されている)

CetnOS7ユーザは注意が必要なようです。

とはいえRHEL7/CentOS7ユーザはRedHat提供のOpenJDK 11が使えますけどね・・・(java-11-openjdk)。「OpenJDK RPMs for RHEL 7」「第2章 RED HAT ENTERPRISE LINUX での OPENJDK 11 のインストール

RHEL8/CentOS8についても同様で、OpenJDK 11をjava-11-openjdkというパッケージ名で提供しており、また、java-latest-openjdkでOpenJDK 16も提供しているので除外されているようですね。

Commvaultの自働スケジュールの動きを確認した


CommVaultにはフルバックアップと増分バックアップをバックアップサーバ上で論理合成して新しいフルバックアップにする、という合成バックアップ(Synthetic Full)という仕組みがある。

V11SP16より前までは増分バックアップを実行した後に続けて合成処理を行う、というスケジュールを作成することができたが、2021年の現在ではそのようなスケジュールを作成することはできず、増分とは別に合成バックアップ用のスケジュールを作成する必要がある。(参考)

問題となるのは増分バックアップの終了時間にあわせて合成バックアップを実行する、ということが難しい、ということ。

単純に増分を毎日0:00開始、合成フルバックアップを日曜12:00開始、とかに設定した場合、増分バックアップに12時間以上かかり、日曜12時もバックアップ中であった場合、同名のスケジュールが動作しているので合成処理がスキップされてしまうことになる。

ドキュメントをみると「自働」スケジュールを設定することを推奨されており、「週1回合成フルを実行する」としたい場合は「自働 7日」というスケジュールを実行することで、7日に1回実行されることになるようだ。

7日で検証すると時間がかかりすぎるので「自働 2日」を設定して検証してみた。

開始終了
合成フル2021/3/24 18:522021/3/24 19:00自働2日というスケジュールを18時半過ぎに設定
増分2021/3/25 3:002021/3/25 3:01
増分2021/3/26 3:002021/3/26 3:01
合成フル2021/3/26 19:172021/3/26 19:24前回の実行終了から48時間+17分で実行された
増分2021/3/27 3:002021/3/27 3:02
増分2021/3/28 3:002021/3/28 3:01
合成フル2021/3/28 19:432021/3/28 19:49前回の実行終了から48時間+19分で実行された
増分2021/3/29 3:002021/3/29 3:02
増分2021/3/29 20:102021/3/29 20:11開始時刻を20:10変更
合成フル2021/3/30 20:082021/3/30 20:14前回の実行終了から48時間+19分で実行された
増分2021/3/30 20:132021/3/30 20:18開始時刻を20:10したが、合成フルが動作していたので遅延?

実行するたびに時間が後ろにずれていくのが気になる・・・

この17分~19分はどこから来ているのかな?とスケジュール設定画面を見直してみると、「ファイルまたはログのアクティビティ検出頻度 0時間15分」という変更ができない項目がある。

これは、15分間隔で自動バックアップを実行するべきか判断する、ということになるんだろうか?

だとすればこの動きも納得かな、と


2021/04/05追記

合成バックアップが実施される予定の時間帯にシステムが停止していた場合、どうなるかを確認したところ、システム起動後に合成バックアップが実行されました。

microSDのアプリケーションクラス/ビデオクラスによる速度の違い実測


SD/SDHC/SDXCカードには速度に関する仕様がいくつかある。

以前は「スピードクラス」だけをうたっていたが、これだけだと実際にはある細かい性能差が表現できていないので「ビデオスピードクラス」というのと「アプリケーションクラス」というものが追加されている。

で・・・ラズパイでOS起動ディスクとして使う場合に何がいいのか、という話である。

Windows 10 on ARMの起動ディスクを作成し、初回起動するのにどれくらい時間がかかるかを確認してみた。

関連「microSDのA1/A2,V10/V30に差が出るか?

製品名クラス容量WoR書き込みお住まいの
地域選択
デスクトップ
表示
SanDisk Extreme ProU3/A2/V3064GB37分18分5分
SanDisk Extreme(金色)U3/A2/V3064GB28分16分5分
Lexar 633xU3/A1/V3064GB27分16分5分
SanDisk HIGH ENDURANCE(白)U3/V3032GB33分18分6分
KIOXIA EXCERIA PLUS(紫)U3/V3032GB32分17分5分
SanDisk Extreme ProU3/A1/V3032GB43分19分5分
Lexar 633xU1/A1/V1032GB30分17分6分
SanDisk UltraU1/A132GB33分17分5分
KIOXIA EXCERIA HIGH ENDURANCE(黄緑)U132GB31分  
Samsung EVO PlusU132GB74分35分8分

最近のmicroSDであればおもったより差がでない