Home > ブログ > Fedora29への更新

ブログ

Fedora29への更新

少し前ですが、作業用のデスクトップをFedora29に更新しました。記事投稿のテストも兼ねて感想を。

Fedora29では大きな変更(*1)もないようでほとんど戸惑うことなく使用できます。一点だけ、VMWare上にインストールした場合に、外部へssh接続しようとすると以下のようなエラーとなり、鍵関連の設定がどこかまずいのかと悩みました。

$ ssh xxxx
packet_write_wait: Connection to xx.xx.xx.xx port 22: Broken pipe

検索すると色々出てきますが、OpenSSH 7.8でQoSのデフォルト設定が変更になったことが原因です(Fedora29のOpenSSHはVer. 7.9)。変更履歴はこちら(https://www.openssh.com/txt/release-7.8)を見ていただくとして、要約すると、従来はIPQoSオプションのデフォルト設定値が対話的セッションの時はlowdelay、非対話的セッションの時はthroughputだったのが、7.8で対話的セッションの時はaf21、非対話的セッションの時はcs1に変更になりました。

一方VMWare側はQoSのDSCP値が設定されているとRSTを送り返すため(*3)、TCP接続が切断され、上記のエラーとなります。これは、最近アップグレードしたVMWare Workstation 15/VMWare Fusion 11でも現象は変わりませんでしたが、将来のバージョンでは対応されるかもしれません。

上記の理由のため、この問題を回避するには、ssh接続時のQoSオプションを従来の値(lowdelayかthroughput)に戻すことになります。これをsshコマンドで都度行うには以下のようにします。

ssh -o IPQoS=lowdelay target_host

ここでは対話セッションなのでlowdelayを指定していますが、throughputでも問題ありません。ネットで広まっている例ではthroughputが多いですが、あまり気にする必要はないでしょう。毎回オプション指定するのも面倒なので~/.ssh/configに以下のような記述をしておけば、今までどおりオプション指定を省略してssh接続できるようになります。

Host *
    IPQoS=lowdelay

Fedora29の感想というか、VMWare+OpenSSH7.8〜の話になってしまいました。繰り返しになりますが、Fedora29は従来から大きな変更もなく新しいバージョンのソフトウェア(PHPは7.2.13)が使えるので開発にはおすすめです。あと壁紙がかっこいいです。

Fedora29のデスクトップ
Fedora29のデスクトップ

(*1) ここでいう大きな変更とはiptablesがfirewalldになったり、/etc/init.dからsystemctlになったりするような変更。
(*2) IPQoSオプションの詳細はssh_configのmanを参照。
(*3) https://communities.vmware.com/thread/590825 参照。VMWare社の公式な文書は見つけられませんでした。

投稿日:2019/01/26 00:51

タグ: Linux

Top

アーカイブ

タグ

Server (18) プログラミング (15) 作業実績 (15) PHP (11) ネットワーク (9) C (7) C++ (7) Webアプリ (6) EC-CUBE (6) Nginx (5) OpenSSL (5) laravel (4) Linux (4) 書籍 (4) JavaScript (3) AWS (3) Rust (3) Vue.js (3) Golang (2) Symfony (2) Apache (1) デモ (1) お知らせ (1) MySQL (1) CreateJS (1) OSS (1)