Network」カテゴリーアーカイブ

2023年2月
 1234
567891011
12131415161718
19202122232425
262728  

最新の投稿(電子情報)

アーカイブ

カテゴリー

mariadb の utf8mb4 への移行完了

自宅サーバで、mysqlからmariadbへの移行、内部文字コードが Latin1 になっていたものを utf8mb4 への変更がようやく上手くいったと思う。そこで、学科のWebサーバも同様に移行作業を行う。ただ、文字コードの移行などの際にデータベースの物理ファイルを壊してしまったようで、どこまで上手く治ったのかが不安。

mysql5.7でFROZNモード

先日、mysql-server-5.6 からのアップグレードに失敗し、mariadb, mysql 8 などを入れたり消したりのトラブルを発生させちゃったけど、今日 “aptitude safe-upgrade” を実行したら、アップグレード時にデータベースの互換性で問題ありと判定され、FROZEN モードになってしまい、データベースとつながらなくなった。おかげで WordPress が動かなくなる。

明日からの試験で、Webでの講義資料公開ができなくなると、学生さんからも不満が出そう。

早々に修正と思うけど、FROZEN ファイルを読むと、mysql-server-5.7 が入っているけど、mysql-server-5.6 からのアップグレードに問題があるから、一度 5.6 にダウングレードしてから、5.7 にアップグレードしろ…との説明。

でも、5.6 はインストール対象から外されている。ひとまず、その後に dpkg-reconfigure mysql-server-5.7 を実行せよと書いてあるので、dpkg-reconfigure を実行。データベースの更新やらチェックが行われて、若干エラーが出たけどうまく修復できたみたい。rm /etc/mysql/FROZEN して systemctl start mysql を実行。無事 WordPress が動き出す。

WebAssembly環境の構築

卒研で WebAssembly を使った開発をしてもらっているけど、自分でも試したいので環境の構築。

Debian emscripten パッケージだけではダメだった

卒研の学生さんが、emscripten 使っているという話だったので、”aptitude search emscripten” を実行したら、パッケージがあったので、”aptitude install emscripten” を実行。鉄板の hello world をコンパイルしようとしたら、”LLVM version appears incorrect (seeing “11.0”, expected “10.0”)”というエラーが出て、コンパイルに失敗。

llvm の C コンパイラとのバージョンが合わない様子。ということで、git より環境を構築してみる。

git で emsdk 環境の構築

通常ユーザであれば、”git clone https://github.com/juj/emsdk.git” を実行すると、その PATH 直下に環境が作られるみたい。こういう使い方は好きじゃないので…

$ sudo bash
((( ひとまず emscripten は必要みたい )))
# apt-get install emscripten # 導入後は不要?
((( emsdk のインストール )))
# cd /usr/local
# git clone https://github.com/juj/emsdk.git
# cd emsdk
# ./emsdk install latest
# ./emsdk activate latest

Hello World を試す

((( 自分の環境で以下のコマンドにより環境変数をセット )))
$ source /usr/local/emsdk/emsdk_env.sh
((( Hello World をコンパイル )))
$ cd ~/public_html
$ mkdir test
$ cd test
$ vi hello.c
#include 
int main( int argc , char* argv[] ) {
   printf( "Hello World\n" ) ;
   return 0 ;
}
$ emcc test.c -s WASM=1 -o test.html
$ ブラウザで test.html を開く http://...URL.../~t-saitoh/test/test.html

ブラウザから自分のC言語(wasm)を呼び出し結果を出力

$ mkdir html_template
$ cp /usr/local/emsdk/upstream/emscripten/src/shell_minimal.html html_template
$ vi html_template/shell_minimal.html
((( C言語側を呼び出すボタンを埋め込む )))
<textarea class="emscripten" id="input"></textarea>
<input type="button" value="CALL WASM" onclick="Module._ems_func();"/>

((( test.cxx )))
#include <stdio.h>
#include <emscripten/emscripten.h>
#include <string>

int main( int argc , char* argv[] ) {
  return 0 ;
}

// void* getElementValue_( char const* id ) { ... } が作られる
EM_JS( void* , getElementValue_ , (char const* id) ,
{
  var e = document.getElementById( UTF8ToString( id ) ) ;
  var str = e.value ;
  var len = lengthBytesUTF8( str ) + 1 ;
  // コンパイル時に -s EXPORTED_FUNCTIONS="['_malloc']" しないとエラーがでる
  var heap = _malloc( len ) ;

  stringToUTF8( str , heap , len ) ;
  return heap ;
 } ) ;

// std::string型はC++の文字列処理の型
//   std::string s( "abcde" ) ;
//   s.c_str() で、C言語のNULターミネータ付きの文字列を参照できる。

std::string getElementValue( std::string const &id )
{
  void *p = getElementValue_( id.c_str() ) ;
  std::string s( (char const*) p ) ;
  free( p ) ;
  return s ;
}

void setElementValue( std::string const &id , std::string const &value )
{
  EM_ASM( {
      var e = document.getElementById( UTF8ToString( $0 ) ) ;
      e.value = UTF8ToString( $1 ) ;
    } , id.c_str() , value.c_str() ) ;
}

#ifdef __cplusplus
extern "C" {
#endif

  /* HTMLに埋め込んだ onclick=_ems_func() で呼び出される*/
  void EMSCRIPTEN_KEEPALIVE ems_func() {
    std::string input = getElementValue( "input" ) ;
    setEnvironmentValue( "output" , input ) ;
  }

#ifdef __cplusplus
}
#endif

((( test.cxx をコンパイル )))
$ source /usr/local/emsdk/emsdk_env.sh
$ em++ -o test.html test.cxx -O3 -s WASM=1 -s EXPORTED_FUNCTIONS="['_main','_malloc']" --shell-file html_template/shell_minimal.html

情報処理演習室のルータを交換

EI棟3F演習室で、Aruba の WiFi 環境のための Buffalo ルータを使っていたけど、警告メッセージが出始めたので、確認したらルータの管理画面さえ表示できなくなってきた。古いルータだったので寿命と思われる。

かといって、このルータは、4EI教室,5EI教室,2F実験室,3F演習室,4F創成LABを束ねる Aruba WiFi の上流にあたるため、実験室がことごとく使えなくなる。そこで、手持ちのマニアックな Edgerouter-X に入れ替える。

「サイバー攻撃の手口と守り方」の準備

2/6(土)に「サイバー攻撃の手口と守り方~情報セキュリティ入門~」にて、CTFを中高生に体験してもらう準備のお手伝い中。

コマンドラインをたたいてもらう体験の部分は、クラウド上に準備した noVNC を使い、ブラウザさえあれば参加可能。問題は、以前 K-SEC 主催の CTF 問題から「いんすぱいぁ(≠ぱくった)」されて作った問題を少々。

基幹システムが停電で停止

1/29(Fri) 朝 08:30 から、学内ネットワークがつながらないとの連絡。

状況を確認すると、基幹システムの仮想マシンが落ちている様子。履歴からすると、夜中の02:30頃にUPSの警告が飛んでいる。

改めてシステムを起動するけど、基幹システムの全部が落ちているから、復帰にも時間がかかる。ようやく、9:35 になって DNS も起動し、無事復帰…と思われる。電源の状況は追って調査だけど、慌しかったし、ボチボチと確認だな。


爆音SW-HUBのFAN交換

以前、教室に設置するHUBとして業者さんが持ってきた Giga-SW-HUB だけど、冷却FANが余りにも爆音すぎて、交換となったのが長らく死蔵品になっていた。もったいないので静音FANに交換して、別に利用することにした。

コネクタ形状は同じだけど、電極順序が違っててハンダ付けしたけど、無事稼働。(FANなしで動かそうとも思ったけどFAN警告ランプがつくので何らかのFANは必要) 排気能力はガタ落ちだけど、自室で使う分にはそんなに流量ないし、発熱で早めに劣化で壊れても、死蔵品になっているよりはマシだろう。

{CAPTION}

{CAPTION}

Teams 説明会のトラヒック

今日は、遠隔授業に備えて教職員対象の Teams などの説明会が行われた。遠隔授業のやりかたの方針や、すでにTeamsを実践しようと試している先生の説明。最大80名ほどの視聴であった。(視聴はほとんどの方が学内)
私もTeamsでの説明を行ったが、ブラウザ画面にペン書きをしても、説明の音と動画では10秒から30秒の遅延があったと視聴していた先生が教えてくれた。であれば遅延も頭に置いた説明が必要となりそう。Teamsの生アプリと、Webアプリでも遅延がかなり違うとのことだった。
あまりにも遅延が大きいので、今回のトラヒックの状況を確認してみた。目盛りが少し切れているが、Teams会議中の、対外接続の最大の瞬間値で260Mbpsほど。本校の対外接続のmaxが1GbpsのSINET接続なので、回線としては余裕のはず。となると、遅延の原因は、Teams のサーバ側の可能性が高い。

fukuikousen-bot の更新周期を短く

福井高専のホームページの最新情報を、つぶやく bot ( https://twitter.com/FukuiKousen )を動かしているけど、この連日、コロナウィルスのため重要な公式情報の流れる機会が増えている。

通常は、5時,9時,11時,15時,19時 としていたが、当面頻度を高めておこう。8時から22時まで2時間刻みとしておく。

 

ネットワークセキュリティのためのTips