qshinoの日記

Powershell関係と徒然なこと

民主党政権

なぜ民主党政権はうまくいかなかったのか? 戦後70年、“自立国家”への遠い道のり

戦後史は日米関係の駆け引きの歴史であり、対米「追従」路線VS対米「自立」路線の政治ドラマでもあった。民主党は、戦後からの悲願だった「自主独立」路線をめざした政党だったが、それがうまくいかなかったのはなぜだろうか?戦後70年の節目に考える、日本の国家としての自立とは?

 そのため、鳩山内閣はどんどん支持率を下げ(2010年5月には19.1%にまでダウン)、最終的には辞任に追い込まれることになる。しかしそこで示された政策は、アイデアとしては実はとても面白いものばかりだったのだ。

http://diamond.jp/articles/amp/76428?display=b

自助と公助

自力で生きていけない人たちを国や政府は助けるべきだとは思わないと言う人が日本では三人に一人以上もいることがアンケートでわかりました。

日本 38% アメリカ 28% イギリス 8% フランス 8% ドイツ 7% 中国 9% インド 8%

http://amamako.hateblo.jp/entry/20130223/1361554150

前原代表、公認候補擁立しない

2017/8/27

10/22に見込まれる衆議院議員選挙に向け、民進党の前原代表が無所属で立候補、民進党の公認候補を擁立しない方針。28日に民進党内で説明する意向。

前原代表は希望の党と合流の意向だが、希望の党の小池代表は民進党を離党したらと考えている模様。

こんな事をする為に民進党の代表選に立候補した訳ではなかろうが、今回の選挙という目先の利益だけを追い求めると、真にやりたい事を見失う事にならないだろうか。過去は変わらないが、代表が枝野だったら、どうしただろうか。

国の人件費

2017/9/25 衆議院解散という事で、関連情報

国の人件費

H26予算政府案

国の負担する人件費: 77,421億円

内訳/単位、億円

  • 国家公務員の給与費: 38,415
  • 議員歳費他*1 : 25,484
  • 国共済負担金等: 9,011
  • 退職手当: 3,594
  • その他: 557

国家公務員の人件費

上記の*1を除く費用。

  • 国家公務員の人件費: 51,937

内訳

  • 行政機関: 30,538億円、29.7万人。
  • 自衛官、特別機関*2: 21 399億円、27.9万人。

*2の人数内訳

  • 自衛官24.7万人/実員数22.9万人
  • 国会: 0.4万人
  • 裁判所: 2.6万人

人件費推移

昭和45年: 約1.5兆円、グラフ読み取り
平成12年: 10兆3467億円
平成15年: 約7.2兆円、グラフ読み取り、2003
平成16年: 約5.3兆円,グラフ読み取り,2004
平成25年: 約4.7兆円、グラフ読み取り/2013年
平成28年: 5兆1937億円,2016

*1 議員歳費、義務教育費、国庫負担金等:

スイッチ冗長化 by 非STP/非スタック

非Stackableスイッチで冗長化

VLAN分割による非スタッカブル、非STPスイッチを使ったスイッチ冗長化

サーバsvはwinLBFOのスイッチ非依存モードを使用する。

接続は下記の通り。

sv - sw1 - sw3
     ||   X
     - sw2 -sw4

svからsw1,2へは冗長接続。このままでは、sw1-sw2-sw3-sw1等の多数のループが発生する。そこでVLAN分割する事でループを回避する。

回避方法

各sw単位にVLANを割り振り、VLAN単位ではループが発生しない構成とする。sv-sw間は全てのvlanを透過する。

例えば、sw1のvlanパケットはsw1-sw2間のみ通し、その他を遮断。sw1-sw2-X-sw3-X-sw1のループ中、X印のsw2-sw3, sw3-sw1間が遮断されループを回避する。

また、sw3のvlanはsw1,sw2-sw3の2経路のみとし、sw1-sw2間、sw2-sw4間を遮断する。これにより、sw3-sw1-X-sw2-sw3の経路中、X印のsw1-sw2間が遮断され、ループしない。

sw1-sw2間は、sv-sw1間障害時にsw2経由でsw1に到達させるために必要となる。

sw1設定

sw1のポートを4種類に分類する。

  1. sv接続 : 全てのvlan透過。
  2. sw2接続: sw1,2のvlanのみ透過。
  3. sw3,4接続: それぞれ接続先swのvlanのみ透過。
  4. バイス接続: 本swのvlanのみ透過。

各ポートを1. svポート、2. バイパスポート、3. ダウンポート、4. デバイスポートと呼ぶ。

svポート

任意のvlanを通す。 in/out共にtagを付けたまま通す。

バイパスポート

outは接続先sw2のvlanのみ通す。inは自sw1のvlanのみ通す。但し、in/outで透過パケットを制御できない場合は、自sw1と接続先sw2の二つのvlanを通す。in/out共にtagを付けたままパケットを通す。

ダウンポート

接続先swのvlanパケットのみ通す。outパケットはtag不要、inパケットはtagを付与する。

バイスポート

本swのvlanパケットのみ通す。 tagVlan未対応デバイスを接続するため、本ポートへのoutパケットはtagを外す。inパケットはtagを付与する。

sw2設定

sw1設定と同様。

sw3, sw4設定

自swのvlanのみ到達する為、設定不要。

補足: sw1,2二つのuplinkに接続されているが、sw3,4のvlanはsw1,2間が切れており、それぞれsvに戻るのみ。但し、宛先MacアドレスはsvのNICの一方のみのため、何方かのパケットは破棄される。また、mac学習後は何方か一方にしか返さない。

宛先macarp応答のMac。よって、arp応答Macがsvの一つのnicに固定されていれば問題なし。WinLBFOスイッチ非依存モードのarp応答Macは何方か一方からのみ返すチームmacであり問題なし。

winLBFO スイッチ非依存モード

スイッチ非依存モードのMacアドレス

  • 送信: 物理NIC
  • 受信=Arp応答: チームNIC, 何方かのNICのみ。

問題があるとすれば障害切替時。LBFOが障害検知し、チームmacを切替た場合の遷移は下記の通り。

  1. macarp応答。
  2. LBFOが障害検知し、切り替え。
  3. macへのパケット破棄。
  4. Arp応答に新Mac
  5. switchのmacテーブル切り替え
  6. macにパケット送信。

  7. macarp応答までは旧macにパケットが送付され破棄。

  8. スイッチのmacテーブル更新迄は、パケットは旧macにのみ送信される。

切り替え前スイッチのmacテーブルのエントリが削除される迄は、パケットが旧経路で送り続けられる。但し、チームmacは別のnicに切り替わっており、LBFOが切り替え前のnicに到達したパケットを破棄し続ければ、パケットが重複することはない。但し、切り替え前のパケットは消滅する。

  • 切り替え前パケット: 破棄
  • arp応答後のパケット: 分身
  • swのmacテーブル更新後: 正常

arp応答後からmacテーブル更新迄のパケットは新旧二つのnicに送られる。その期間、LBFOが旧nicで受け取ったパケットを破棄すれば同一パケットが重複してsvが受理する事はない。LBFO次第。

macエントリー削除は、ciscoでは最大599秒=約10分。結構長い。

同一macアドレスのパケットが別のポートに出た時に更新されるなら、arp応答で更新されるが、そこはスイッチの仕様。

その他の課題

  • LBFOが障害を検知する方法は?
  • LBFOが障害復旧する方法は?
  • sw3,4のuplinkが切れてもsvは検知できず、nicが切り替わらない。

中間経路がLinkDownしたら、Uplinkも障害にできるか?

それもvlan単位で。

参考資料

https://blog.putise.com/チーミングで負荷分散してもスイッチ側の設定が/amp/

MacテーブルAgingTime http://saru.xyz/mac-adress-table/

net LBFO cmdlet

コマンド分類

基本構造

  • Keyword: NetLbfoTeam
  • Verb: New, Remove, Get, Set, Add, Rename
  • Object: (none), Nic, Member

Verb-Object matrix

  • New: None
  • Add: Nic, Member
  • Remove: None, Member, Nic

  • Get: None, Member, Nic

  • Set: None, Member, Nic

  • Rename: None

NoneはObjectなし。Teamを表す。

Object説明

Teamが最上位のObject。その中に物理NICのMemberと論理NICnicがある。

Team: 上記ではNone。Teamの中に複数の物理NICメンバーで構成される複数の論理NICを持つ。Newで作成、Removeで削除。

member: チームを構成する物理NIC。TeamにAddで追加、Removeで削除。

nic: チームが作成する論理NIC。VLAN単位でNICが作成される。TeamにAddで追加、Removeで削除。

Team作成/削除

作成
# チームを作成
PS C:\> New-NetLbfoTeam -Name "Public-TEAM" -TeamMembers ("イーサネット 2", "イーサネット 3") -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic -Confirm:$false
削除
Remove-NetLbfoTeam -Name "Public-TEAM"

モード

-TeamingMode

Lacp : LACP動的
Static : 静的
SwitchIndependent : スイッチ非依存

-LoadBalancingAlgorithm

Dynamic : ダイナミック
HyperVPort : Hyper-Vのポート
TransportPorts : アドレスのハッシュ
IPAddresses : IPアドレス (GUIでは設定できず、PowerShellからのみ設定可能)
MacAddresses: MACアドレス (GUIでは設定できず、PowerShellからのみ設定可能)

Member追加/削除

追加
# ネットワークアダプターの追加
Add-NetLbfoTeamMember -Team "Public-TEAM" -Name "イーサネット 3" -AdministrativeMode Active
削除
# ネットワークアダプターの解除
Remove-NetLbfoTeamMember -Team "Public-TEAM" -Name "イーサネット 3"

Nic追加/削除

追加
Add-NetLbfoTeamNIC -Team "Public-TEAM" -VlanID 2
削除
Remove-NetLbfoTeamNic -Team "Public-TEAM" -VlanID 2

Team設定

モードを変更する。TMとLBを変更可能。

  • TM: Teaming mode
  • LB: Load balancing mode
Set-NetLbfoTeam -Name "Public-TEAM" -TeamingMode Static  -LoadBalancingAlgorithm IPAddresses

Nic設定

VLAN idを変更する。

Nic/vlaid設定
Set-NetLbfoTeamNic -Name "Public-TEAM" -VlanID 1
# チーム名指定も可能
# Set-NetLbfoTeamNic -Team "Public-TEAM" -VlanID 1
Nic/vlanid削除
Set-NetLbfoTeamNic -Name "Public-TEAM - VLAN 1" -Default
# チーム名指定も可能 
# Set-NetLbfoTeamNic -Team "Public-TEAM" -Default

member設定

Active/Standbyを変更する。

Set-NetLbfoTeamMember -Name "イーサネット 3" -AdministrativeMode Standby

Rename

Rename-NetLbfoTeam -Name "Public-TEAM" -NewName "Public-TEAM-New"

IPアドレス設定/DNS設定

IPアドレスDNSをNet cmdletでnicを指定して設定する。

# IPアドレスの設定
Get-NetAdapter -Name "Public-TEAM - VLAN 2" | New-NetIPAddress -IPAddress "192.168.133.14" -PrefixLength 24 -DefaultGateway "192.168.133.1"
# DNSの指定
Set-DnsClientServerAddress -InterfaceAlias "Public-TEAM - VLAN 2" -ServerAddresses "192.168.133.2"
# IPv6のバインド停止
Get-NetAdapterBinding -Name "Public-TEAM - VLAN 2" -ComponentID ms_tcpip6 | Disable-NetAdapterBinding

コマンド一覧

PS C:\> Get-Command -Module NetLbfo

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Add-NetLbfoTeamMember                              NetLbfo
Function        Add-NetLbfoTeamNic                                 NetLbfo
Function        Get-NetLbfoTeam                                    NetLbfo
Function        Get-NetLbfoTeamMember                              NetLbfo
Function        Get-NetLbfoTeamNic                                 NetLbfo
Function        New-NetLbfoTeam                                    NetLbfo
Function        Remove-NetLbfoTeam                                 NetLbfo
Function        Remove-NetLbfoTeamMember                           NetLbfo
Function        Remove-NetLbfoTeamNic                              NetLbfo
Function        Rename-NetLbfoTeam                                 NetLbfo
Function        Set-NetLbfoTeam                                    NetLbfo
Function        Set-NetLbfoTeamMember                              NetLbfo
Function        Set-NetLbfoTeamNic                                 NetLbfo

課題

nic追加の際に、nic名が自動で作成され、プログラム的に制御が複雑化する。

add-nic

add-nicのパラメータに-nameがあるので、これで新nic名を指定すれば名前を固定できるか?

Parameter Set: cim:CreateInstance0 Add-NetLbfoTeamNic [-Team] [-VlanID] [[-Name] ] [-AsJob] [-CimSession <CimSession[]> ] [-ThrottleLimit ] [-Confirm] [-WhatIf] [ ]

参考資料

technet https://technet.microsoft.com/ja-jp/library/jj130850(v=wps.630).aspx

sample http://blog.shibata.tech/entry/2016/04/13/211524