インフラSEのぼちぼち備忘録

非登録セキスぺの情シスがMicrosoft関連技術(Azure、Windows、Exchange、SystemCenter、SQL、Powershell)を中心とした備忘録を残していきます。圧倒的にインフラよりです。たまにネットワークのことも書きます。※本アカウントの発信内容、その他は所属する組織の見解ではありません。

Docker for Windows / Docker Desktop でimageのpullがエラーとなる件

わけあってLinuxのコンテナを触ることになったわけです。 Windows コンテナーじゃなくて、Linuxのほうです。

で、手元にWindows機しかなかったので、どういう方法でDockerを試そうか考えて とりあえずchocolaty 経由で以下を入れてみました。

choco install docker-for-windows

で、powershellからdockerコマンドが使えるようになったので、試しにpull。

docker pull php

以下エラー。

Error response from daemon: Get https://registry-1.docker.io/v2/library/php/manifests/latest: unauthorized: incorrect username or password

f:id:kurone810:20190207013039p:plain

調べてみてもよくわかりませんでしたが、 Docker.WPF.HttpClientHelper.HandleStatusCode(HttpResponseMessage response) が例外投げてました。

ということで、 Check for Updates してみたところ回復しました。

f:id:kurone810:20190207012849p:plain

なんかよくわからんが動いてるからよし!

【セキュリティ②】情報セキュリティーはリスクマネジメントの一つです

つらつらかいてみよう。

まず、大前提として経営戦略は難しい。

セキュリティも難しい。

 

単純に"維持する"ことは難しい。

 

10年間黒字であり続けて従業員に十分な給与を払い続けることと同様に

10年間情報セキュリティインシデントを起こさないことは難しい。

 

経営戦略で言うとリスクマネジメント。

1特定・把握して、2分析・評価して、3対策する。

当たり前ですが、

当たり前にことを実践し続けるのって難しいと思うんですよ。

 

今回は1

特定・把握にのみ絞って考えてみます。

 

そもそもどうやってリスクを特定把握するのか?ですが。

 

一つの案としてルール化するというのがあるかと思います。

セキュリティ脆弱性検知とか。

 

しかし、ルール化は諸刃の剣でルール史上主義だとルールから漏れたリスクを特定・把握できなくなります。

 

ルール外のリスクを特定把握する方法としてはTBM/KYとかインシデントレポート、ヒヤリハットがあるとおもいます。

TBM/KYやヒヤリハットは専門家、属人化します。

 

 

ルール化をすすめすぎるとヒヤリハットの未然事象の報告文化が養成されず

ヒヤリハットに頼りすぎると、属人化するため測定ができない。

 

 

ジレンマがあるとおもいます。

 

また書こう

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【セキュリティ①】情報セキュリティーはリスクマネジメントの一つです。

背景

エンタープライズな環境にいると、よく聞くのが 「セキュリティーは大丈夫か?」という漠然とした管理職者からの問。

そんなことないです? 私はよくあります。

問題点

”情報セキュリティ”という言葉だけで技術的!よくわからん! 経営層の中で比較的ITが詳しい兼任CIO君よろしく!って感ないですか?

そしてそのCIOの部下に”よろしく!”って・・・・。

セキュリティ対策ってプロアクティブに動かないとダメだけど其れなりに費用もかかるし、経営の理解がないと動けたもんじゃないですよねー。 そこ権限委譲するなら経営の情報、権限くれないとつらい問題。

セキュリティという言葉をリスクマネジメントに変えてみる

言葉を変えるだけで、割と経営者が自分で考えて、協力しないといけない領域の問題なんだなという意識が生まれる気がしてます。

なぜそう思うかについては改めて書こう。

クライアントHyper-V上とvyOSでネットワーク検証する その5 OSPFで障害テスト

前回までに作ってみOSPF経由の接続でわざとvyOSを落として経路交換やらダウンタイムを見てみましょうかね。

測定用の簡易PowerShell

①ダウンタイム測定の簡易PowerShell

for($i = 0; $i -le 10000; $i++){
curl -Uri http://192.168.20.100 -TimeoutSec 1
    $date = date
    $date.DateTime
    sleep 1  
 }

②経路確認の簡易PowerShell

for($i = 0 ; $i -le 10000 ; $i++){
 tracert -d -w 2 192.168.20.100 
}


f:id:kurone810:20180816234437p:plain


クライアント側ゲートウェイ(プライマリがダウンした場合)

f:id:kurone810:20180816234015p:plain



2018年8月16日 23:46:34頃にダウン
f:id:kurone810:20180816234828p:plain


2018年8月16日 23:47:03頃に回復
f:id:kurone810:20180816235041p:plain


ダウンタイムは約30秒ですね~。


経路も確認
f:id:kurone810:20180816235749p:plain
f:id:kurone810:20180816235721p:plain

f:id:kurone810:20180816235537p:plain

クライアント側ゲートウェイ(プライマリが復旧した場合)

2018年8月17日 0:05:01頃に再度ダウン
f:id:kurone810:20180817000708p:plain

2018年8月17日 0:05:14頃に疎通
f:id:kurone810:20180817000842p:plain

15秒くらいですね~。


経路も確認
f:id:kurone810:20180817001022p:plain

f:id:kurone810:20180817001155p:plain


DC側の対向ゲートウェイ(プライマリがダウンした場合)

f:id:kurone810:20180817001735p:plain


2018年8月17日 0:18:23頃にダウン
f:id:kurone810:20180817002021p:plain

2018年8月17日 0:18:57頃に復旧
f:id:kurone810:20180817002224p:plain

35秒くらいでしょうかね


経路も確認
f:id:kurone810:20180817002313p:plain

f:id:kurone810:20180817002701p:plain

DC側の対抗ゲートウェイ(プライマリが復旧した場合)

2018年8月17日 0:31:39に再度ダウン
f:id:kurone810:20180817003517p:plain

2018年8月17日 0:31:43に復旧
f:id:kurone810:20180817003632p:plain

5秒以内ですか!なるほど。

経路も確認
f:id:kurone810:20180817003734p:plain


f:id:kurone810:20180817003949p:plain




無事にネットワークの自動復旧は確認できたわけですが、

こんなネットワークを組むことはないかもしれませんが、
LAN側のプライマリゲートウェイの復旧時に発生するダウンタイムより
DC対向側のゲートウェイが復旧した際のダウンタイムのほうが短いという気づきがありました。

ちゃんと確認してませんが、vyOSの復旧起動後にVRRPのほうがOSPFより早く復旧し、ゲートウェイに昇格するが、OSPFのルーティング情報の復旧までは引き続きダウンするためかと思います。

と、するとOSPFのルート情報が切り替わる直前でVRRPも復旧するようにチューニングすればダウンタイムを減らせるかもしれません。

うーん奥が深い。

今度は少し構成に手を入れて、ECMPか、vyOSのアウトバウンドの回線負荷分散機能を利用し、待機系ネットワークの有効利用を検証したいです。

クライアントHyper-V × Windows Server コンテナーのIIS × OSPF経由で試してみる

  • ホストVMWindows Server2016 Server Core)にIPを設定
  • NATモードでコンテナを起動(※Dockerイメージは取得済みの前提)
  • ホストVMWindows FireWallを無効化

f:id:kurone810:20180816000052p:plain
※赤枠の中の話。

ホストVMWindows Server2016 Server Core)にIPを設定

PowerShellで以下を実行

New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "192.168.20.100" -PrefixLength "24" -DefaultGateway "192.168.20.250"

NATモードでコンテナを起動(※Dockerイメージは取得済みの前提)

docker run --name iis01 -p 80:80 -it microsoft/windowsservercore powershell
|


コンテナ上でIISの役割をインストールします

Install-WindowsFeature Web-Server

f:id:kurone810:20180816002504p:plain

f:id:kurone810:20180816002647p:plain

ホストVMWindows FireWallを無効化

まずコンテナからはCtrl + P+Q でホストに戻ります。
DockerへのIPマスカレードなネットワークの通信制限はホストのWindows FireWallの設定が適用されるため今回は無効化します。

Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled false


右側の端末相当のホストPCのWebブラウザからサービスを確認しました。
f:id:kurone810:20180816004253p:plain
f:id:kurone810:20180816003911p:plain



f:id:kurone810:20180816004620p:plain

クライアントHyper-V上とvyOSでネットワーク検証する その4 OSPFを設定

さてシンプルなOSPFとしてarea 0を設定していきます。

f:id:kurone810:20180812114210p:plain


上記赤枠LAN1号機を一例:OSPFのアドレスを設定

set protocols ospf area 0 network 192.168.10.0/24
set protocols ospf area 0 network 10.0.1.0/24

インターフェースに適用

set interfaces ethernet eth0 ip ospf 
set interfaces ethernet eth1 ip ospf 

各4つのvyOSに設定。


さて、これで最低限の回復性(VRRP + OSPF)は実装できたかなと思います。

設計としては内部-WAN1経由するネットワークをActive
内部-WAN2を経由するネットワークをPassiceとしてスタンバイできてるはずです。


次はDC側にWindows ServerコンテナーでIISを立てて実際にダウンタイムを計ってみたいなと思います。

クライアントHyper-V上とvyOSでネットワーク検証する その3 VRRPを設定

さて、vyosの仮想マシンができたので、実際にネットワークで遊んでいきます。

  • インターフェースのIP設定
  • VRRPの設定

1.インターフェースのIP設定

適当にIPアドレスとインターフェースの採番を決めます。
f:id:kurone810:20180810001454p:plain

conf

f:id:kurone810:20180810001852p:plain


2号機Eth1の一例だけ

set interfaces ethernet eth1 address 10.0.2.2/24

f:id:kurone810:20180810002054p:plain

show interfaces

"+"がついているのはまだコミットされていない。
f:id:kurone810:20180810002642p:plain

commit

※commit後に再確認
f:id:kurone810:20180810002903p:plain


設定の保存もしておきましょう

save

f:id:kurone810:20180810003119p:plain


残りのインターフェースも設定する。

VRRPの設定


LAN(CL)1号機に次の設定追加

set interfaces ethernet eth0 vrrp vrrp-group 10 priority 255
set interfaces ethernet eth0 vrrp vrrp-group 10 sync-group lan-sync
set interfaces ethernet eth0 vrrp vrrp-group 10 virtual-address 192.168.10.250

f:id:kurone810:20180810005648p:plain

LAN(CL)2号機に次の設定追加

set interfaces ethernet eth0 vrrp vrrp-group 10 priority 200
set interfaces ethernet eth0 vrrp vrrp-group 10 sync-group lan-sync
set interfaces ethernet eth0 vrrp vrrp-group 10 virtual-address 192.168.10.250

f:id:kurone810:20180810010217p:plain



f:id:kurone810:20180810011126p:plain

Pingが1発落ちましたが通信は継続。
f:id:kurone810:20180810011201p:plain


再起動完了後に宛先の到達エラーが1発
f:id:kurone810:20180810012058p:plain

結構Hyper-V上だけでも遊べますね!
次はOSPFを設定してみたいです。