bcコマンドについて。はじめに。2の階上
$ irb
irb(main):001:0> 2 ** 8
=> 256
irb(main):002:0> 2 ** 10
=> 1024
irb(main):002:0> 2 ** 16
=> 65,536
irb(main):004:0> 2 ** 20
=> 1048576
irb(main):003:0> 2 ** 24
=> 16,777,216
irb(main):005:0> 2 ** 30
=> 1073741824
irb(main):004:0> 2 ** 32
=> 4,294,967,296

*bashでも計算できる
virtual_os_iso $ echo $((2**8))
256
virtual_os_iso $ echo $((2**10))
1024

ibaseは入力となる進数の設定、obaseは出力となる進数の設定。初期設定は両方とも10進数
下は2進数から10進数の例。

aws $ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
ibase=2
11111111
255
00000001
1
11000000
192
11011111
223
Daws $

あとechoの結果をbcに渡す事で変換も出来る
 $ echo "obase=10; ibase=2; 11011111" | bc
223

refs
bcコマンド変換
bcコマンド変換2

ICANN(The Internet Corporation for Assigned Name and Number)が組織にネットワークアドレス、IPアドレスを割り振る際にクラスと呼ばれる分類をベースに割り当てている。クラスにはA,B,Cがある。第1オクテットについて、クラスAは0で始まり、クラスBは10で始まり、クラ スCは110で始まる。つまり、10進数で言うと、第1オクテットはそれぞれ、クラスAが1~127、Bが128~191、Cが192~223である。
また、ホスト部がすべて0の場合はネットワークアドレス、全て1の場合はブロードキャスト。クラスによりネットワーク番号を示す部分のビット数が異なる。
ネットワーク/ホスト部のビット数は、クラスAが8/24、Bが16/16、Cが24/8。なので、ネットワーク数と保有できるホスト数は次のようになる。

・クラスA
第1オクテット:「1~126」(00000001~01111110)0から始まるルール。01111111は、ループバックアドレスで自己診断用のアドレス
ネットワーク数:126 
ホスト数:16777214(2 ** 24 -2)

・クラスB
第1オクテット:「128~191」(10000000~10111111)10から始まるルール。
第2オクテット:「0~255」
ネットワーク数:16384 (2 ** 14 )
ホスト数:65534 (2 ** 14 -2)

・クラスC
第1オクテット:「192~223」(11000000~11011111)110から始まるルール
第2オクテット:「0~255」
第3オクテット:「0~255」
ネットワーク数:2097152(2 ** 21)
ホスト数:254(2 ** 8 -2)

refs:ネットワークとホスト部の境界。クラスフルとクラスレス

また、マルチキャスト用に予約されたクラスDがある。クラスDは1110から始まる。224.0.0.0~239.0.0.0

○サブネット
サブネットはIPアドレスを効率的に活用するためにある。
IPアドレスはネットワーク部とホスト部から成り立っている。これをサブネットに分割する場合、ホスト番号のビットをさらに分割し、サブネット部とホスト部にする。それにより「○番ネットワーク内、▲番ネットワークの☆番ホスト」となる。例えば、クラスBの172.16.0.0のネットワークがあり、ホスト部16bitをサブネット部6bit、ホスト部10bitにする。この状態でサブネット1番、1番ホストのIPアドレスは172.16.4.1となり、2進数はいかになる。
10101100 00010000 00000100 00000001

$ ipcalc 172.16.4.1
Address:   172.16.4.1           10101100.00010000.00000100. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   172.16.4.0/24        10101100.00010000.00000100. 00000000
HostMin:   172.16.4.1           10101100.00010000.00000100. 00000001
HostMax:   172.16.4.254         10101100.00010000.00000100. 11111110
Broadcast: 172.16.4.255         10101100.00010000.00000100. 11111111
Hosts/Net: 254                   Class B, Private Internet

また、クラスCのネットワークを考えた場合、ホスト部の8bitをサブネットとホストに分割できる。結果、サブネット数は0から256の8パターン、それと反比例してホストの数は254台から0台になる。

○サブネットマスク
例えば第1オクテットが10から始まる場合、クラスフルでは、これはクラスBでネットワーク部が16bit、ホスト部が16bitとなるが、クラスレスの場合はそう決められない。このため、IPアドレスを見て、ネットワークとホスト部を一目で理解するために必要なのがサブネットマスク。先ほどの例「クラスBの172.16.0.0のネットワークがあり、ホスト部16bitをさらにサブネット6bit、ホスト10bitに分割する」の場合、サブネットは255.255.252.0となる。ネットワーク部、サブネット部分のビットをすべて1でマスクする。

10101100 00010000 00000100 00000001
11111111 11111111 11111100 00000000 (サブネット2進数)
255           255           252           0              (サブネット10進数)

$ ipcalc 172.16.0.0/22
Address:   172.16.0.0           10101100.00010000.000000 00.00000000
Netmask:   255.255.252.0 = 22   11111111.11111111.111111 00.00000000
Wildcard:  0.0.3.255            00000000.00000000.000000 11.11111111
=>
Network:   172.16.0.0/22        10101100.00010000.000000 00.00000000
HostMin:   172.16.0.1           10101100.00010000.000000 00.00000001
HostMax:   172.16.3.254         10101100.00010000.000000 11.11111110
Broadcast: 172.16.3.255         10101100.00010000.000000 11.11111111
Hosts/Net: 1022                  Class B, Private Internet

これをCIDR形式という。従来のクラスフルアドレッシング(クラスA~C)に比べて、クラスレスアドレッシングという。1bit単位でネットワーク部/ホスト部を分けられる。サブネットはIPアドレスを書くときは必ずお供として書き加える。
172.16.4.1/20

CIDR,サブネットについては珍しくwikiがわかりやすい。refs:CIDR(wiki)

○覚える
各サブネットマスクに対応する2進数
00000000 = 0
10000000 = 128, 11000000 = 192, 11100000 = 224, 11110000 = 240,
11111000 = 248, 11111100 = 252, 11111110 = 254, 11111111 = 255

例えば、クラスCの192.168.1.0/24のネットワークを/27でマスクする場合、2**3 = 8のサブネットが作れる
ネットワーク部  サブネット  ホスト部  ネットワークアドレス   ホストアドレス範囲                             ブロードキャストアドレス
192.168.1.        000           00000    192.168.1.0/27         192.168.1.1/27~192.168.1.30/27      192.168.1.31/27
192.168.1.        001           00000    192.168.1.32/27       192.168.1.33/27~192.168.1.62/27    192.168.1.63/27
192.168.1.        010           00000    192.168.1.64/27       192.168.1.65/27~192.168.1.94/27    192.168.1.95/27
192.168.1.        011           00000    192.168.1.96/27       192.168.1.97/27~192.168.1.126/27  192.168.1.127/27
192.168.1.        100           00000    192.168.1.128/27     192.168.1.129/27~192.168.1.158/27 192.168.1.159/27
192.168.1.        101           00000    192.168.1.160/27     192.168.1.161/27~192.168.1.190/27  192.168.1.191/27
192.168.1.        110           00000    192.168.1.192/27     192.168.1.193/27~192.168.1.222/27  192.168.1.223/27
192.168.1.        111           00000    192.168.1.224/27     192.168.1.225/27~192.168.1.254/27  192.168.1.255/27

○デフォルトゲートウェイ
・ルータ、ファイアウォール、プロキシサーバなどがデフォルトゲートウェイの役割をする事がある。

○AS(autonomous system),自律システム、ルーティングプロトコル
ASは1つの管理団体によって管理される一つのネットワークの集合体。ASはルーティングでは1つの範囲として扱われる。AS内に複数のネットワークがある。AS間の内部と外部でネットワークがあるから、AS内部とAS外部のルーティングがある。外部がEGP、内部がiGP。EGPではBGPがスタンダード

○NAT,プライベートIP,グローバルIP
NATもIPアドレスを効率的に使うための技術。ネットワークアドレス変換。プライベートIPとグローバルIPを変換する。プライベートIPでは、ネットワークに接続できない。グローバルIPはネットワークに接続できる、不足気味。
ネットに繋がないなら、IPはユニーク性を維持しなければならないというルールに従う必要はない。ICANNはそんなネットワークのために、自由に使っていいアドレスを用意している。これがプライベートIP。ICANNに管理されないIPアドレスはクラスAが一つ、クラスBが16、クラスCが255個のネットワーク数。

・クラスAのプライベートIP
IPアドレス 10.0.0.0 ~ 10.255.255.255
00001010 ******** ******** ********

・クラスBのプライベートIP
IPアドレス 172.16.0.0 ~ 172.31.255.255
10101010 0001**** ******** ******** (0001****の部分がネットワーク部なので****は自由)

・クラスCのプライベートIP
IPアドレス 192.168.0.0 ~ 192.168.255.255
11000000 10101000 ******** ******** (第3オクテットの********がネットワーク部)

外に繋がないプライベートIPなら完全に自由に決めていいのでは?と思うんだけど、なぜ上のようなルールがあるのだろうか・・・?
実際、awsを使った場合、vpc cidrが上でなくても(例えば、54.207.58.0/24とか)作れた。private ipは54.207.58.13とかになる。このipはhost,whoisとかで調べるとvendorのグローバルipだし、ipcalcだとClass A。結局、cidrは自由に設計し、private ipもそれに合わせて払い出せばいいように思える。

NATはプライベートIPとグローバルIPの変換表があるNATテーブルを持つ。NATの弱点は保有するグローバルIPアドレス数以上のホストは、同時に接続できない。なので、自由にインターネットに接続詞、さらにグローバルIPアドレスを消費しないようにするための別の手だてが必要。それがNATを発展させたNAPT、IPマスカレードと呼ばれる。NAT機能はルータ、ゲートウェイなどにある。

○NAPT、IP masquerade(マスカレードは仮装舞踏会、仮装する)、静的NAPT
NATはIPアドレスの変換だけだったが、NAPT(Network address port translation)はそれプラスポート番号も変換する。NAPTはそのポート番号変換の動きをするので、その動作のおかげでセキュリティ面でも利点がある。変換されていないポート番号宛にデータがきても変換されないから内部に入れない。
そのセキュリテぃがNAPTの欠点になっている事もある。それは、LAN内部に外部に公開したいサーバがある場合。例えばLAN内外部に公開するウェブサーバがある場合、外部からは80番ポート宛にパケットが届く。NAPTテーブルに記憶されていないポート番号は変換されず、LAN内部に入らない。解決策はNAPTテーブルに手動で変換を入力する。これを静的NAPT,静的マスカレードという。
もう一つの弱点はFTP。FTPはデータ部分に送信元のIPアドレスとポート番号が記述され、それを使ってFTP通信を行うから。これがIPアドレスのままだとおかしい。よって、FTPでのデータ転送は不可能。FTPみたいにデータ部分に送信元のIPアドレスとポート番号が記述されるようなアプリケーションはすべからくダメ、という事になる。これはNAPTだけではどうしようもない。個別にルータが対応しているの実情。

○ルーティング
デフォルトルートは、他に一致するエントリがないパケットが送信されるルート。0.0.0.0/0。宛先ネットワークが0.0.0.0ですべて、ネットマスクが0で全くチェックを行わない。これがあると破棄されるパケットがなくなる。インターネットとのゲートウェイになる。また、192.168.1.0/24のルーティング情報がルーティングテーブルにある場合、192.168.1.15宛のパケットはそのルーティングとデフォルトルーティングの両方に該当する。が、ロンゲストマッチ(最長マッチ)のルールにより、192.168.1.0/24の方にマッチしデータが送信される

○パケットフィルタリング、ファイアウォール、不正侵入検知装置、ACL
196,197
パケットフィルタリングはセキュリティの基本機能の一つ。多くのルータで実装。文字通りパケットをフィルタ(選別)する。本格的なセキュリテぃ対策危機にはファイアウォール、不正侵入検知装置(IDS)がある。IDS(Intrusion Detection System)。こういう本格的な機器ではなくルールにもフィルタリングは実装されている。
ファイアウォールが不正なパケットを遮断するのに対して、IDSは不正な目的に使用されるトラフィックも遮断する事が可能。なにが違うんだ・・
シスコでは、ルータ等のパケットフィルタリング機能をACL(Access Control List)と呼ぶ。

○ネットワーク図、Fa0/1,Fa0/24、ネットワーク機器、ボックス型、シャーシ型
209
FaはFastethernet(ファーストイーサネット)。0/1の0はモジュール番号(スロット番号)、1はインタフェース番号。ネットワーク機器にはボックス型とシャーシ型がある。ボックス型が本体に固定で備わっている、シャーシ型は本体に装着するためのスロットがある。ボックス型のモジュール番号は0になる、1個しかないから。ファーストイーサネットは主にUTPを使う。ケーブルはカテゴリ5以上。

○ラック、インチ、1U
217
19インチラック、ネットワーク機器を入れる。1インチは25.4ミリ、19インチはラックの横幅で483ミリ。1Uは44.45ミリ。ネットワーク機器であれば1U~2Uの高さで収まる機器が一般的、ラックの横幅は19インチで一定、高さは6uから42uのものまでニーズに合わせて高さを選べる
refs:19インチラック(wiki)

○DHCPサーバ
DHCPサーバはその機能をルータが内蔵している事はよくある。

○macでCUIで自分のLANのルータ、DNSのIPを調べる場合
$ ipconfig getpacket en3
en3は例

○ipcalcコマンド
util $ ipcalc 192.168.1.0/24
Address:   192.168.1.0          11000000.10101000.00000001. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.1.0/24       11000000.10101000.00000001. 00000000
HostMin:   192.168.1.1          11000000.10101000.00000001. 00000001
HostMax:   192.168.1.254        11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255        11000000.10101000.00000001. 11111111
Hosts/Net: 254                   Class C, Private Internet

・参考本

3分間 ネットワーク 基礎講座/技術評論社
¥1,869
Amazon.co.jp
[改訂新版] 3分間ネットワーク基礎講座/技術評論社
¥1,869
Amazon.co.jp
1週間でCCNAの基礎が学べる本/インプレスジャパン
¥2,520
Amazon.co.jp
昨日からymobile(旧イーモバ)の速度が急激に遅くなった。今月はかなり使用していたから、何か制限にひっかかったかなと感じ、ネットで調べたけど、それよりもサポートに聞いた方が確信に迫れると思い電話した。そのときのメモ。

まず、事前情報(my ymobileで確認できる)
・端末はpocket wifiのGL06P。
・プランはLTEのバリューセット。データ通信タイプはフラットの月定額。
・今月の通信量は約27GB。2億2700万パケット。

そして、サポートと話した結果
・2014年5月以降から開始された月10GBの制限にかかったらしい。実際は約27GBまでは快適だったので、あくまで10GBというのは目安だろう。個人差とか、その他色々な条件もあるだろうから参考までに。
・制限がかかった後の速度は128kbps。昔のisdn並みだね、はっきり言って使い物にならん。isdnが高速だと言われてた時期を思い出した。
・で、解決策だけど、この制限は月の制限だから来月までどうにもならないらしい。
・例えばプランを4gに下した場合、定額の月の制限が7Gになる。そして、追加料金二千円強を払えばプラス2GB。さらに2千円強払えばプラス2千円というループ。今回の通信量を考えたら料金がとんでもないことになりそうだから無理。

現状はスマホxperiaのデザリングで凌いでいる(キャリアはdocomoで3g)。ただ、調子がいいときでも2Mbps程度で少しきつい。しかも、ぶちぶち切れたりする。結局質が悪い。このままだと、今後のモバイルネット環境が不自由になりそうなので、wimaxも視野に入れるために調べてみようと思う。けど。なにか一つで全てをの条件を満たすような物は難しそう…

■du

・du指定したディレクトリの容量を確認するためのコマンド。オプションをつけないとサブディレクトリすべてが対象になる

○duで/homeディレクトリ内の各ディレクトリのディスク容量を出力

[root@localhost ~]# du -s /home/*

16    /home/hogeuser

296    /home/vagrant

52    /home/veewee


○さらにsortで容量の大きい順にソート

[root@localhost ~]# du -s /home/* | sort -nr

296    /home/vagrant

52    /home/veewee

16    /home/hogeuser

#du -k apache2

12 apache2/lib/pkgconfig
7232 apache2/lib
3024 apache2/bin
268 apache2/build
1272 apache2/include
23608 apache2/modules

・apache2ディレクトリ内の容量をディレクトリ毎に表示。

# du -ks apache2
64628 apache2

・カレントディレクトリにあるディレクトリすべての容量を表示。-hはhuman readable、-sはsummarize、display only a total for each argument
>du -hs *

・カレントディレクトリの容量を表示
>du -hs .

・hogedirの容量を表示
>du -hs hogedir
1.4G    hogedir

・hogedirディレクトリのサブディレクトリ毎の容量を表示
>du -hs hogedir/*

・apache2ディレクトリの容量を表示。

$ sudo du -sm *

・一つ下のディレクトリが対象
$ sudo du -d 1 -h

・わからないとき
$ man du
$ info du

■ls

#ls -lht
hオプションでメガ単位

■df
#df -h
ディスク容量を使用量を表示

refs:dfコマンド
refs:ディレクトリ以下の容量を調べるduコマンド


対象 コマンド
システム vmstat
システム ps
システム users
システム uptime
メモリ vmstat
メモリ /proc/stat
ネットワーク /proc/net/dev
ページファイル /proc/swaps
ディスク /proc/partisions
ディスク vmstat
ディスク /proc/diskstats
プロセス ps
プロセッサ vmstat
論理ディスク df
sudo,suについて

■mac
macだと"sudo bash"でパスワードを入力すれば、永続的にrootになれる。「$ sudo - 」「$ su - 」「$ su」「$ su root」はダメだった。
vagrantのcentosは、「$sudo bash」「$sudo -i」もしくはパスワードvagrantで「$ su - 」「$ su」「$ su root」でrootになれた。「$ sudo - 」はダメだった。
vagrantのdebianは、「$sudo bash」$sudo -i」パスなしでrootになれた。「$ sudo - 」「$ su - 」「$ su」「$ su root」はダメだった。
awsのcentos(rootのパスワード設定済み)は、「$ su - 」「$ su」「$ su root」にパスワード入力でrootになれた。「$sudo bash」「$ sudo - 」ではダメだった。
awsのamazonlinux(rootのパスワードなし)は、「$sudo bash」「$sudo -i」でログインできた。「$ su - 」「$ su」「$ su root」はだめだった。