8bit.samurai

ネットワーク屋さんの戯れ言

nsx.vxlan

今週末は珍しく仕事であっぷあっぷしてません。
ちょっとゆっくりできそう。

余裕ができたので、毎日対応しているけど結構色々とブラックボックスだったNSX関連で。

NSXとは?:VMWareのプラットフォームの一つであり、今までコンピュート・ストレージ観点から別物として存在していたネットワークを同じESXiで管理してしまおうという、自分的にはVMWareフレーバーのNFVと記憶してます。

VM同士でのネットワーキングをバーチャルアプライアンスで可能にしているわけなんですが、VXLANというテクノロジーが重要になってます。
例えば物理的に別々のESXiに存在しているけども、同じサブネット(Vlan)にいるVM同士が通信したい場合、構成上物理的なネットワークとしてはルータを挟んでいる可能性があります。ARPはL3機器を通過しないので従来のL2-L3プロトコルの概念では通信ができません。

そこでVXLANの登場です。
L2フレームをVXLANのヘッダーでエンキャプすることによって、物理的なネットワーク(アンダーレイ)はL3でもエンドポイントからはあたかも純粋なるL2のみのネットワークであるかのように通信を可能にします。いわいるL2タネリング。

キーワード:
■VXLAN(Virtual Extensive LAN):以上参照…L2oL3
■VTEP(Virtual Tunnel Endpoint):ホストからのL2フレームをVXLANヘッダーでエンキャプするポイント、NSXではVMKポートに値する。
VNI(VXLAN Network Identifier):VTEPがフレームをどのロジカルスイッチにフォワードするか明確にするID。Vlanによく似た役割だけど、IDは5000〜

もともとVMWareはバーチャルスイッチをハイパーバイザ用に提供しているんですが、NSXのロジカルスイッチはそれらと異なるもので、従来のVirtual Distribution Switch(VDS)にカーネルモジュール(Logical Switch)をアドオンする事によって、VXLAN通信を可能にする。

NSXの他のコンポ:

DataPlane:
■Logical Switch:以上参照
LDR(Distributed Logical Router):NSXドメイン内部ルーティング用のロジカルルータ。スイッチと同じくカーネルモジュール。
■DFW(Distributed Firewall):VNIC単位でのポリシーによるトラヒックフィルタリングが可能。カーネルモジュール。
■ESG(Edge Service Gateway):外部ネットワークとのルーティング用のロジカルルータ。その他ファイヤーウォール、ロードバランス、SSLVPN等のファンクションも提供可能。バーチャルアプライアンス

ControlPlane:
■DLR Control VMNSX Controller:主にルーティング・フォワーディングに必要なテーブルのメンテ。エージェントベース。

ManagementPlane:
vCenter・NSX Manager:死んでも実影響なし。

今日はここまで。

Py.File.Control.Stuff

今日は引き続きPython

ファイル関連は重要なんですが、使ってないとすぐ忘れてしまいます。

#opens file
myfile = open('gofuckurself.txt')

#reads file - returns entire file - \n等はシカトされる
myfile.read()

#resets cursor to start of file
myfile.seek(0)

#outputs list, where each item is a line within the file - \n適応がデリミタ
myfile.readlines()

#close files after use
myfile.close()

#closeするのが面倒くさい場合
with open('gofuckurself.txt') as f:

#read-write options - where x is 'r','w', etc...
with open('gofuckurself.txt', 'x') as f:

#w - 既存のファイルがあれば上書きされる、なければ新規で作成される
#a - アペンド:既存のファイルに書き足す

次はループ関連・アウトプットのコントロール

# controlling list outputs
list = ['go', 'fuck', 'ur$self']
for x in list:
 print(x,end=' ')

Output = go fuck ur$self 

# tuple unpacking
list_of_tups = [(1,2), (3,4), (5,6)]
for n1,n2 in list_of_tups:
 print(n1)
 print(n2)

Output = 
1
2
3
4
5
6

# dict unpacking
dict = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
for key,value in dict.items():
 print(key)
 print(value)

Output = 
k1
v1
k2
v2
k3
v3

for letter in 'poop':
 if letter == 'p':
  continue
 print(letter, end='')

Output = oo

print(list(range(0,100,5)))
#スライスをリスト化
Output = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]


list(enumerate('abcde'))
#インデックス追加
Output = [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]

for index,letter in enumerate('abcde'):
 print('At index {} the letter is {}'.format(index,letter))
Output = 
At index 0 the letter is a
At index 1 the letter is b
At index 2 the letter is c
At index 3 the letter is d
At index 4 the letter is e

#リストのマージ
l1 = [1,2,3,4]
l2 = ['go','fuck','your','self']
for i in zip(l1,l2):
 print (i)

Output = 
(1, 'go')
(2, 'fuck')
(3, 'your')
(4, 'self')

#リストでの最小・最大
l = [1,2,3,4,5]
min(l)
max(l)

#オブジェクトのエレメントをシャッフル
from random import shuffle
shuffle(mylist)

#ランダムで番号をアウトプット
from random import randint
randint(0, 100)

イースター何もしなかったなぁ。

certificate.101

お久しぶりです。

最近MHWのせいで全然書けてない。

憎き自分の心の弱さw

今日は証明書について諸々と基本的な事を…

ざっくりと仕組みから

デジタル証明書って何ですか?:サーバーがクライアントに提供するもので、”私は本当に〇〇です”という証明になるもの。パブリックネットワークでは一般的にCA(公的に認められている公認局)がサーバーに対して発行しているデジタル証明書が使用される。公認局を挟まないデジタル証明書も存在し(Self-signedの証明書)、それは主にインターナルネットワーク(社内のみ等)に使われる。

それってどうやって機能するの?:事前にサーバー側が、CAに対して必要な情報と公開鍵を送付→CAが証明書を発行し、それにデジタル署名を行う→サーバー上でアクセスに対して証明書を有効にする→クライアントがサーバーにアクセス要求をした場合、サーバー側でデジタル証明書を提示する→CAでデジタル署名を行っているため、クライアント側でもCAの公開鍵でこれが正当な物なのか確認することが可能

詳しくはこちら:
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

次は証明書において一般的に使用されているフォーマット・エンコード方法:

エンコーディング
DER:バイナリ方式によるエンコード
PEM:ASCII(Base64)方式のエンコード…-----BEGIN CERT...で始まる

形式:

CRT:一般的な証明書のフォーマット
CER:MS用のフォーマット
KEY:公開鍵も秘密鍵もKEYフォーマットを使う

PFX:PKCS12で定められたアーカイビングフォーマット

OpenSSL関連:

#CRTの情報を確認
openssl x509 -in hogehoge.crt -text -noout

#CRTの有効期限を確認
openssl x509 -in hogehoge.crt -noout -enddate

#CRTの正当性を確認
openssl verify hogehoge.crt

#PFXへの変換
openssl pkcs12 -export -out secure-dayo.pfx -inkey kagidayo.key -in shoumeishodayo.crt

デジタル証明書って、セオリー自体は色々と調べれば調べるほどわけがわからなくなるんですよね。

Have a great week!

PyPy

またまた騙しのタイトルでありんす。

Ansible活用の機会が増えそうなので、Pythonのおさらいをしてます。

結構前にMITのコースをやったんですが、あまり使ってなかったので色々忘れてましたw

edxは結構Pythonに関してはコースが充実してます(Udemyと違ってタダだしね)

www.edx.org

私はSpyderをIDEとして使ってます;シンプルさとプロジェクト・コンソールのレイアウトが好みだからです。
Anacondaをインストールすると自動でついてきますが、スタンドアローンとしてpipでインストールも可能。
www.anaconda.com


String用ノーツ:

# .formatによるStringのマニピュレーション
shitter = "bob"
action = "shit"
print("Today, all {a} did was take a {b}".format(a=shitter,b=action))

アウトプットは:Today, all bob did was take a shit

# split()によるString→Listによる分裂化
action = "take shit"
action.split()

アウトプットは:['take', 'shit']

# split("x")による分裂のマニピュレーション
action = "take shit"
action.split(”i”)

アウトプットは: ['take sh', 't']

# .formatによるDecのマニピュレーション
num = 3453.456456
# :.xfによりDecimal Pointのマニピュレーションが可能
print("My bank account pin is {:.2f} have fun".format(num))

アウトプットは:My bank account pin is 3453.46 have fun

List用ノーツ:

# xをアペンドする
mylist.append(x)

#xをListのケツ(デフォでインデックスが-1なため)から除去;インデックス指定で好きな箇所から除去可能
mylist.pop(x)

#Listを逆にする
mylist.reverse()

#Listをソート
mylist.sort()

#インデックス - xのシークエンス番号を出す
mylist.index('x')

#カウント - xが何回入ってるかカウントする
mylist.count('x')

Listのマニピュレーションはvariableを直接変更するので、returnされないので注意(例:y = mylist.sotr()を実行してもyは空っぽ)

Dictionary用ノーツ:

Dictionary/Listの使い分け:
Dictionaryはソートされないので、キーでオブジェクトを取るときに。
Listはソート可能なので、オブジェクトを場所ベースで取ってくるときに便利。

#Dictionary内のネスティング

d = {'k1':"my balls",'k2':{'warminside':"hello!"}}
#ネストされたDictionaryのValueのみ出す
d['k2']['warminside']

アウトプットは:'hello!'

#Dictionaryのマニピュレーション

d = {'hairy':"sore",'bush':"nuts"}

#キーのみ見せる
d.keys()
#バリューのみ見せる
d.values()
#全部見せる
d.items()

アウトプットは:
dict_keys(['hairy', 'bush'])
dict_values(['sore', 'nuts'])
dict_items([('hairy', 'sore'), ('bush', 'nuts')])

今日はここまで。

PiPi

タイトルに騙されないようにしましょう。
というわけで、今日はRasberry Pi3の修復やってます。
母にクリスマスにOSMC入れた状態でプレゼントとしてあげたんですが、OSがブートしなくなったみたいで。
せっかく(後何回かやる羽目になりそう)なので、色々とコマンドとノウハウ書いときます。

SDカードのワイプ:

#以下のコマンドでSDカードのマウント場所を特定
sudo fdisk -l 

#私の場合、ワイプ対象は/dev/mmcblk0

#以下のコマンドでワイプ
dd if=dev/zero of=dev/mmcblk0

ちなみに、fdiskでなくても、GUIのディスクユティリティでもディレクトリは確認できます。
それにしても、ワイプは時間かかるな。

SDカードのフォーマットとNOOBSの移行:

#このコマンドでfdiskユティリティを作動
sudo fdisk /dev/mmcblk0

#d:削除
#p:プリント
#n:新規
#t:パティションのタイプ変更
#w:書き込み
#ワイプが終わったら、新規パティションを作成→タイプをFAT32に変更(オプションはb)→書き込み

#次はフォーマットの適応;必ずパティション自体を指定する事
mkfs.vfat /dev/mmcblk0p1

#SDカードを抜き差しして、マウントさせます、そしてマウント情報の特定
mount | grep -i mmcblk0p1

#アウトプットとして、/dev/mmcblk0p1 on /media/user/hghg と出ますので、そこにワープ
cd /media/user/hghg

#予めダウンロードしていたNOOBSのZipファイルをここに解凍
cd /media/user/hghg$unzip /home/user/Downloads/NOOBS_ver.zip

#完了でき次第アンマウント(ここで忙しいです的なエラーが出たら-lか-fオプションで強制退場できます)
sudo umount /dev/mmcblk0p1 

これでNOOBS入りのSDカードの出来上がりです。
Piに挿して起動させれば、OSインストール画面が立ち上がります。

これ通りやっただけなんですけどね!
NOOBS For Raspberry Pi – Rants & Raves – The Blog!


海外にいてもサザエさん症候群はなおりませんね。
Have a great week!

ASA.upgrades

おはよう、どうせ三日坊主のブログです。

前回でも書いたんですが、ASAのパッチング作業を今週末で行ってます。(というか、待機中にこれ書いてます。w)

ASAのアップグレードなんか、人生絶対やらんだろうな、と思ってたんですが案の定やることになりましたね…はい。

というわけで、今後用に書き込みっと。

 

ASDMは案外使える:

CCNA-Securityの試験以来使ってなかったんですが、ファイル管理システムが結構使いやすいので、tftp・scp環境が整ってない場合オススメです。

…もっとも僕の場合、WindowsサーバーのAdmin権限がなく、ASDMのアップグレードをバイパスできなかったので、あまり使えなかったんですが。

 

ASAはデフォルトでSCPを嫌う:

SCPを使ってコピーする場合、

ssh scopy enable

ASA上で適応されてないとBANされます…ちなみにscpコマンドは…

scp {filename} {user}@{ASA}:{filename} 

 

HAは若干めんどくせえ:

以下リンクの方法が一番合理的でトラブル無しでできました。

www.802101.com

Thank you internet!!

 従来のboot systemの設定を削除しておらず、バージョンが上がらない、なんてアホな事もやってしまいしたが、気にしない気にしないw

というわけで、戯れ言半分で書いてるわけなんですが、結構今回の脆弱性はガチらしいですね。

CVSSでも最高得点の10点満点で

NVD - Vulnerability Metrics

もうすでにエクスプロイトが存在しているていで早急にパッチングした方がいいですね。

That mega-vulnerability Cisco dropped is now under exploit | Ars Technica

終わったので、日曜は心置きなくビールが飲めそうです。

Have a great weekend!

 

and then there was light

30を過ぎて記憶力が薄くなってきたので、ブログを書くことを断腸の想いで決意いたしました。

主に技術関係のノーツですが、誰かの(主に自分)お役に立てれば。

tsts

日本語でおk
English is fine

# けっこういろいろできるね
while kpi < 100:
 bangMyHeadCount += 1
kpi = 0

request system halt power-off

こいつのせいで今週末も仕事詰めでありんす。
tools.cisco.com

(私よ)よい週末を!!