なんかてきとうに

わりと個人的な忘備録的ですよ。

PowerShell/Win32-OpenSSH/ を触ってみたよ

microsoftがOpenSSHをサポート! という話から 10/13づけでとりあえず動くバイナリが出てましたのでちょっと触ってみました。

ダウンロードは PowerShell/Win32-OpenSSH · GitHub のreleaseから。 インストール方法は Deploy Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki · GitHub にあります。 一応書いておくと

  1. ダウンロードしたファイルを任意の場所に解答

  2. 中のsetup-ssh-lsa.cmdを管理者として実行

  3. 再起動

  4. ファイルを解凍した場所でコマンドプロンプトを開く
    もしくはコマンドプロンプトを開いた後、解凍した場所へ移動

  5. ssh-keygenで4種類のssh_host_keyを作るパスワードはなしで。(別に1個だけでもいいけどなんか警告が出る)
    ssh-keygen.exe -t rsa -f ssh_host_rsa_key
    ssh-keygen.exe -t dsa -f ssh_host_dsa_key
    ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
    ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_key

  6. sshdを起動

以上でsshdが動かせます。

今回はローカルで試したのでローカルホストに接続してます。

クライアント側は ssh localhost でつなげると、パスワードを聞かれるので入力するとつながります。

つないだ先はpowershellかと思ったらどうもcmd.exeっぽく。

どこかにshell変更する設定ファイルがあるのかも。

で、ここからが挙動の話。

  • コマンド打つと、コマンド名が2回表示されます。自分の打ったのと合わせて3つ。
  • 存在しないコマンドを打つと、帰ってきたプロンプトに"そんなコマンドありません"的なメッセージがかぶります。
  • powershellを動かすと sshdが動いてるところでpowershellが動きます。 sshdが動いてるほうでpowershellを終了するまで応答が帰ってきません
    この件についてはwikiに書いてありました。
    powershell -File -
    とやるとpowershell使えます。
  • cmd.exeは普通にsshでログインしたプロンプトで動いてくれます。
  • sshdを動かしたあと、ログインされるとCtrl+C等でsshdが終了できなくなるのでtaskmanagerのお世話になる必要があります。(プロセス強制終了)
  • sshクライアントは Enterキーを押すまでキー入力を送ってくれないっぽいです。
  • 上記のことから、tab補完とかききません。

とりあえずさらっと触ってみたところこのくらい。

Enterキーを押すまでキー入力を送ってくれないっぽいので、 ssh した先でさらに sshしたりすると パスワードが*にならずそのまま表示されます。

これはさすがによろしくないのでは。

Windows Vagrant VirtualBoxでCentOS7なbase boxとかつくってみたはなし

やり方は本家のマニュアル見ましょう。

  1. vagrantのインストール。
    インストール後、pathが通ってなければ通しましょう。
  2. sshのインストール
    msys2とかMinGWとかcygwinとかなんでも(pathを通しましょう)
    注意)msys2とかcygwinからwindowsvagrantを使うときは
    .bash_profile とかに export VAGRANT_DETECT_OS=cygwin
    とやっておかないとttyありませんみたいに言われます。
  3. VirtualBoxのインストール。
  4. VirtualBoxへのCentOS7インストール
    HW設定にて オーディオとUSBサポートを無効
    名前をたとえばCentOS7に
    rootのパスワードは vagrant
    ユーザ vagrant パスワード vagrant でユーザを作る
  5. VirtualBox Guest Additionsのインストール
    yum install bzip2
    yum install gcc
    yum install kernel-devel-(バージョン).x86_64
    yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarc.rpm
    yum install dkms
    メニューのデバイスからGuest Additions CDイメージの挿入
    mount -r /dev/sr0 /mnt/
    /mnt/VBoxLinuxAdditions.run
  6. CentOS7の設定
    sudoers 行追加
    (1 vagrant ALL=(ALL) NOPASSWD: ALL )
    (2 Defaults:vagrant !requiretty)
    (3 Defaults:root !requiretty)
    vagrantユーザへ authorized_keys配置。
    chmod 700 .ssh
    chmod 600 authorized_keys
    いらないファイルの削除
    /etc/sysconfig/network-scripts/ifcfg-e*
    /etc/udev/rule.d/70-persistent-net.rules
  7. box化
    vagrant package --base CentOS7(VirtualBoxでつけた名前)
    package.box という名前で作成される
  8. vagrantにとりこみ (ここではbaseにしてるけど任意の名前にできる)
    vagrant add box base package.box
  9. vagrantで使ってみる
    適当なディレクトリで
    vagrant init (add box でbase以外を指定した場合はここにその名前を入力)
    vagrant up
  10. vagrantfile
    config.vm.network "private_network", ip: "192.168.565.10"
    とかやるとIPアドレス固定できる

(追記 sudoersへ3行目の追加。
vagrantfileに
config.vm.provision "shell", inline: <<-SHELL
sudo rpm -i /vagrant/some.rpm
SHELL
みたいなことをやったらttyがないとsudoできませんと怒られました。

provisionはrootユーザでやっているっぽいです。

QoS簡易まとめ

QoSとは

ネットワークにおいて、優先度を設定して、帯域がパンクするような場合等に優先度に応じて通信をさせるもの。 優先制御、帯域制御の2種がある。

品質保証サービス。

QoSの種類

  • IntServ (RFC 1633)
    通信ごとに優先度を設定してQoSを管理する方法RSVP

  • DiffServ (RFC 2474)
    通信をグループ化して、グループごとにパケットにマーキングして、その情報を元にQoSを管理する方法。
    マーキングにはTOSを使う。そこにDSCP値を書きこんでマークとする。
    TOSの上位3ビットを使う(IPプレシデンス)方法と上位6ビットを使う(DSCP)方法がある。

IEEE 802.* 簡易まとめ

IEEE 802.1シリーズはLAN接続関連の規格。

  • 802.1D STP

  • 802.1w Rapid STP 802.1D(2004)に統合

  • 802.1Q タグVLAN

IEEE 802.3はイーサネット関連の規格。

  • 802.3af PoE

  • 802.3at PoEplus

  • 802.3ad リンクアグリゲーション

  • 802.3ac VLANタグ拡張用のフレームサイズ拡張(1522byte)

802.11は無線LAN関連の規格

Linux bonding vlan

Linuxでbondingを使いつつvlanを使うと悲しいことになるようです。

eth0 eth1 でbonding(Active/Standby)構成にして、そこにVLANを作ると、 VLAN側には物理ラインの切り替わり情報が行かないようで、 切り替わったにも関わらずVLANからはGratuitous ARPが飛ばないので 切り替わりにすごく、時間がかかるという不幸。

VLANから定期的にarping投げるとかそういうバッドノウハウ的なのばかり見つかって悲しかったです。

VLANであればいくようです、今回、KVMホストでbonding組んでVLAN作ってそこにブリッジを作ってKVMゲストにつなげ、KVMゲスト上にIPアドレスをふるということをやっていたためでした。

KVMホストでActive/Standby構成のpreemptにしておくと、Active側が復帰してStandbyからActiveのほうに切り替わった時に GARPがとばせず……みたいな話でした。

KVMホストからarping打ち続けるとかどんなバッドノウハウでしょうか。。

ブレードサーバ続き

iLOの話。

HPのサーバにはIntegrated Lights-Outというサーバのハードウェアの状態を監視する機能が付いています。

電源をさしたら常に動いているようなもので、ブレードではなく、ラックマウントサーバ等では、独立したイーサポートを持っていて、

完全に別のネットワークにて管理できるようになっています。

しかし、サーバ上にある通常のNICと同じポートを使うこともできるようになっているので、ブレードサーバではそうして使うのかなと思っていたら

iLOのマニュアルには、そのNICと同じポートを共有することはc-Classのブレードサーバ出は使えませんと書いてありました。

色々確認してみると、c7000やc3000エンクロージャには、Onboard Administrator というマネジメントカードが1個付いていて、そこのイーサネットポート経由で各ブレードのiLOにアクセスするように書いてありました。

本当にそこしか使えないのかなぁ、と実機がないので資料をあさっています。

ブレードサーバ

最近、ブレードサーバに環境を構築するから。

ということでふわっとした要件定義のまま環境構築に必要な資料作ったりしてます。

HPのc7000というエンクロージャを使うことまでは確定していて、使うブレードの選定とかそんなのをやってたり。

エンクロージャにささるブレードのNICFlex-10もしくはFlexFabric とかいう、

10G のポートが2つついてるもので、ブレードのBIOSというかUEFIから10Gを4ポートに見せることができるみたいな

なんだかよくわからない機能が付いてて、FlexFabricのほうはそのうち1ポートをHBA(Fiberchannel用)に設定できますということらしく。

外部ディスクがFiberchannelなのでNICを3つのイーサとHBAに分離して使うことまでは確定したとか。

FlexFabricを使いたければ エンクロージャに搭載するスイッチモジュールもその機能が付いたものにしなくちゃいけないとか、

はては搭載するすべてのブレードでそのNICじゃないとだめとか、制約は色々あるものの、物理的な接続はシンプルになりますよ。というのがウリみたいです。

スイッチモジュールの設定とかとても面倒くさそうなんですけどね。

このタイプのスイッチモジュール側はエンクロージャから外部に出るポートが8個あって、うち4個はイーサ専用で4個は10GイーサもしくはFiberchannelがさせますみたいになってました。

ブレードなのでというわけでもないですが、仮想環境を構築して、みたいな話になってるので、各VMで必要とするネットワーク帯域考えたり、10Gのポートは外部ディスクとの接続も考慮した帯域になるので8G Fiberchannelとかにすると1本でまかなおうとすると通信に使える帯域は2Gしかないよなーとか。

そんなことを考えつつ、仕事としては資料作成ばかりで、手元に実機がないので、公式のマニュアルとか見ながらこれはできそうだとかこれは無理かも、みたいな整理して資料にまとめる日々です……

つらい。