整理中
ネットワークの基礎 †
- 階層モデル
7階層モデル | 実装Protocol | 機器 | 概要 |
アプリケーション層 | HTTP,SMTP | | サービスとしての通信 |
プレゼンテーション層 | JPEG,TIFF,MPEG | | データの表現 |
セッション層 | NFS,SQL,RPC | | 一続きの処理を実現 |
トランスポート層 | TCP,UDP | | TCPセグメント,UDPデータグラム(End to End) |
ネットワーク層 | IP | GW,ルーター | IPデータグラム(ルーティング) |
データリンク層 | MAC | スイッチ,ブリッジ | 隣接する機器と通信 |
物理層 | 100Base-T | HUB,NIC,リピータ,トランシーバ | ピン数,コネクタ形状 |
- CSMA/CD
- Ethernet でも使われている通信方式
┯━┯━┯━┯━┯━
□ □ □ □ □
- バスを共有するネットワークの輻輳制御
- 誰かが話していてたらランダム秒黙って再試行する。
- TBEB : 頻繁に衝突するようならば、待ち時間を延ばす
- IP Address
クラス | 2進数表記 | アドレス範囲 | ネットワークアドレス(ネットマスク) | ホストアドレス(接続可能端末数) |
クラスA | 0******* | 1.0.0.0〜126.255.255.255 | 8(255.0.0.0) | 24(1677万台) |
クラスB | 10****** | 128.0.0.0〜191.255.255.255 | 16(255.255.0.0) | 16(65534台) |
クラスC | 110***** | 192.0.0.0〜223.255.255.255 | 24(255.255.255.0) | 8(255台) |
クラスD | 1110**** | 224.0.0.0〜239.255.255.255 | (IPマルチキャスト実験用) |
クラスE | 11110*** | 240.0.0.0〜255.255.255.255 | (実験用) |
- Private Address
クラス | 範囲(CIDR表記) |
クラスA | 10.0.0.0/8 |
クラスB | 172.16.0.0/12 |
クラスC | 192.168.0.0/16 |
- ユニキャスト : 特定の一台へ送信
- ブロードキャスト : サブネットの全端末へ送信
- マルチキャスト : 特定の複数台へ送信
- IP から MAC を引く = APR (Address Resolution Protocol)
- MAC から IP を引く = RAPR (Reverse Address Resolution Protocol)
ネットワーク関連のコマンド †
netstat †
ネットワークの状態を確認する
bash-3.00# netstat -f inet
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
solamame.32837 jp-in-f99.google.com.80 64240 0 49640 0 ESTABLISHED
solamame.32838 moz.com01.nslb.sj.mozilla.com.80 64240 0 49640 0 ESTABLISHED
solamame.32840 jc-in-f91.google.com.80 64240 0 49640 0 ESTABLISHED
solamame.32841 jp-in-f147.google.com.80 64240 0 49640 0 ESTABLISHED
solamame.32843 jp-in-f104.google.com.80 64240 0 49640 0 ESTABLISHED
solamame.32845 jp-in-f104.google.com.80 64240 0 49640 0 ESTABLISHED
solamame.32846 nol-vip05.cwwtf.bbc.co.uk.80 64239 0 49640 0 TIME_WAIT
solamame.32847 moz.com01.nslb.sj.mozilla.com.80 64240 0 49640 0 ESTABLISHED
IPv6 の状態の確認
bash-3.00# netstat -f inet6
ping †
ping <host> [<timeout>]
- timeout は、秒 指定。デフォルト値は、20秒
- ICMP (Internet Control Message Protocol)
- 連続実行は、
ping -s <host>
snoop †
トラフィックを見る
全パケットを見ると | snoop |
hostへ、hostからのパケットを見る | snoop <host> |
host1 と host2 の間でやりとりされるパケットを見る | snoop <host1> <host2> |
自ホストへの Telent 接続のパケットを見る | snoop -v tcp port 23 |
ファイルへ出力する | snoop -v tcp port 23 -o /tmp/snoopdump |
192.168.1.45 が割り当てられた NIC に関するパケットを見る | snoop 192.168.1.45 |
snoop は、パケットの内容を出力し続ける。止めるには Ctrl+C
NICの構成 †
SMF †
Name Service †
DNS,NIS,NIS+,LDAPの比較 †
/etc/nsswitch.conf †
NISマスターサーバの構築 †
NISデーモンとNISユーティリティ †
NISスレーブサーバの構築 †
NISクライアント環境の構築 †
DNSクライアント環境の構築 †
LDAPクライアント環境の構築 †
NIS+セキュリティの概要 †
ネームサービスのキャッシュ †
仮想メモリ †
NFS †
autofs †
クラッシュダンプ †
RAID †
SVM †
★未整理 †
NICの構成 †
SMF †
- ネットワークを使うアプリは、inetdから起動される
- 起動後は SMF の管理下にはいるが、管理には svcadm コマンドではなく inetdadm コマンドを使う
- inetdadm
- inetdadm -e <FMRI> : 有効
- inetdadm -d <FMRI> : 無効
- inetdadm -l <FMRI> : 表示
- svcadm
- svcadm disable <FMRI>
- svcadm enable <FMRI>
- svcadm reflesh <FMRI> : 実行中の構成を現在の構成に差し替える
- svcadm restart <FMRI>
DNS †
- Domain Name Service
- named
NIS †
NIS+ †
- Network Information Service Plus
- NISの拡張ではない
LDAP †
- Lightweight Directory Access Protocol
- X.500 の簡易版 (NDS(Novel Directory Service))
- NIS、NIS+で管理できる情報はすべて管理できる
- LDAPサーバはクライアントになれない。DNS、NIS、NIS+はサーバがクライアントになれる
Directory Service のまとめ †
| DNS | NIS | NIS+ | LDAP |
ネームスペース | 階層的 | フラット | 階層的 | 階層的 |
データストレージ | ファイル | 2列マップ | n列マップ | ディレクトリ |
サーバ | マスタ=スレーブ | マスタ=スレーブ | マスタ=レプリカ | マスタ=レプリカ |
プロトコル | TPC/UDP | RPC | RPC | TCP/UDP |
範囲 | internet | LAN | LAN | internet |
セキュリティ | あり(※) | なし | Secure RPC | SSL |
サーバがクライアントになれる | ○ | ○ | ○ | × |
※ DNSのセキュリティ : BIND9.2 から、認証ゾーンアップデートなどのセキュリティ機構を持っている
/etc/nsswitch.conf †
- どのネーミングサービスを使うかを設定するファイル
- ひな形をコピーして適宜編集する
- /etc/nsswitch.dns
- /etc/nsswitch.ldap
- /etc/nsswitch.nis
- /etc/nsswitch.nisplus
- /etc/nsswitch.files
- インストール時には、指定したネーミングサービスのひな形が /etc/nsswitch.conf にコピーされる
- 一行の内容
<info> <source> [<status>=<action>] <source>
<source> =
compat // /etc/group /etc/passwd /etc/shadow を見る
| dns
| file // /etc/passwd などを見る
| ldap
| nis
| nisplus
<status> =
SUCCESS
| NOTFOUND
| UNAVAIL // source が応答しない
| TRYAGAIN // source が利用できない
<action> =
continue // 次の source を使って名前解決を試みる
| return // 中止する
例:
netmask nis [NOTFOUND=return] files
→ NIS が見つからないと名前解決を終了する( files を使わない )
NISマップ †
- ndbm形式(2列、key=value形式)
- /var/yp/<domainName>/ ディレクトリに保存される
- テキストファイルから makedbm コマンドで生成する
- makedbm コマンドは、/var/yp/Makefile を実行する
- NISソースファイルとマップ名一覧
- makedbm は、マスターサーバのみで行う
- スレーブサーバには自動的に反映する (TODO確認)
- クライアントとはマスター・スレーブサーバに処理を依頼するだけなので関係ない
NISマスターサーバの構築 †
- プライマリNISサーバにrootでログインする
- /etc ファイル内の必要なファイルを確認
- /var/yp/Makefile の編集
- DIR、PWDIR が /etc になっているが、別の作業ディレクトリにすることが推奨されている
- 必要が有れば DNS リゾルバを有効にする (NISで解決できないときに、DNSに問い合わせる)
- /var/yp/Makefile で指定したディレクトリに、/etc/ からファイルをコピーする
- PWDIR → passwd、shadow、security、adjunet を置く。passwdマップになる
- INETDIR → ipnodes
- RBACDIR → audit_user、auth_attr、exec_attr、prof_attr
- DIR → 残りのファイル
- /etc/mail/alias だけはコピーできないので、ドメインで指定するすべてのメール絵リアスがあることを確認する
- NISソースからコメントを削除する
- /var/yp/Makefile である程度はクリーニングしてくれるが、コメントがあると NIS マップの生成が失敗したり、期待した NIS マップが出来なかったりする
- NISソースの最終確認
- NISドメインの設定
# domainname <nisDomain>
# domainname > /etc/defaultdomain
- スレーブサーバの登録
- /etc/inet/hosts、/etc/inet/ipnodes にホスト名とIPアドレスを登録する
- ypinitコマンドの実行
- /var/yp/Makefile が実行される
- 非致命的なエラーで中断しても出来た文のNISマップが作られる(NISソースがいくつか無いときなど)
- 実行中にスレーブサーバのホスト名を入力する必要がある
- 実行中に /var/yp/<domainName> を作り直すか聞かれる(すでにNISサーバとして運用中の場合)
- /var/yp/<domainName> に、<mapName>.dir、<mapName>.peg が出来る
- NISネームサービスを使うようにする
# cp /etc/nsswitch.nis /etc/nsswitch.conf
NISデーモン †
デーモン名 | 概要 |
ypserv | NISサーバデーモン |
ypbind | バインディングデーモン(クライアントはブート時にこのデーモンに対して自ホスト名をバインドを要求する) |
ypxfrd | 高速マップ転送デーモン |
rpc.yppasswdd | パスワード更新 |
rpc.ypupdated | publickeyなどほかのマップの変更 |
NISユーティリティ †
ユーティリティ名 | 概要 |
ypcat | マップ内のデータを表示 |
ypinit | NISデータベースを構築(make) |
ypmatch | マップ内のエントリを検索 |
yppoll | ypsrvデーモンを使ってサーバからマップオーダー番号を取得する |
yppush | NISマップをマスターサーバからスレーブサーバにプッシュする |
ypset | マシンから特定のサーバへのバインディングを設定する |
ypwhich | クライアントのNISサーバの名前とニックネームの変換テーブルを返す |
ypxfr | NISマップをマスタサーバからスレーブサーバへ転送する |
NISサービス †
# ypstop
# svcadm disable netwokr/nis/server
# ypstart
# svcadm enable network/nis/server
# svcadm restart network/nis/server
Computer#Unix