2012/06/30

【IPv6 Ready Logo】Core符合性測試 - 自動測試


在上一篇提到了Core手動測試的步驟
這篇會介紹如何將手動測試改為自動測試

受測的設備(NUT)必須要有RS232的輸入方式
FreeBSD(TN)也必須要有RS232(console)的連線port
請參考下面的圖示

自動測試就是FreeBSD會透過Console Port去下指令
這樣使用者就不用一直呆在設備旁了

● v6eval-remote
請先去下載v6eval-remote (目前已經沒有在維護了)
並做以下的設定
# tar vfxz v6eval-remotes-3.0.tar.gz
# cd v6eval-remotes-3.0
# vi Makefile
    DOCFILES=00README.remotes INSTALL.remotes \
    COPYRIGHT
# vi ./bin/remotes/Makefile
    SUBDIR= unknown \ 
    manual \
    linux-v6 \
    usagi-i386 \
    usagi24-i386 \
    freebsd-i386 \
    freebsd43-i386 \
    kame-freebsd \
    ms-winxp \
    ms-win2k
# make
# make install

● /usr/local/v6eval/etc/nut.def
設定完成之後,請到/usr/local/v6eval/etc/nut.def
將System的值改為受測設備的作業系統
若是沒有相同的,則可以選近似的進行改寫
以下是針對linux做範例
System    linux-v6

● /usr/local/lib/perl5/site-perl/5.12.4/V6evalRemote.pm
在自動測試前,請勿必先看過這個檔案
還有/usr/local/v6eval/bin/裡面的檔案
若是有需要修改的請自行修正
下面是一定要修正的地方
$Device=”cuau0”
$User=”root”
$Password=”v6eval”

● RS-232測試
設定連線
# touch /var/log/aculog
# chown uucp:dialer /var/log/aculog
# chmod 660 /var/log/aculog
測試連線
# cu –l /dev/cuau0 –s 38400 (38400是 baud rate)
# ~. (終止連線)
測試是否能使用自動測試
# /usr/local/v6eavl/bin/linux-v6/loginout.rmt –o 1

上述都設定完成之後
就可以執行下述的指令進行自動測試了... gogogo ~
# cd Self_Test_5-0-0
# make clean
# make ipv6ready_p2_host



2012/06/29

IPv6... ICMPv6


之前介紹了IPv6的定址方式,會建議先看過再來看這篇
接著介紹一些關於Neighbor Discovery的內容

Neighbor Discovery Protocol(NDP)是用來偵測周圍的IPv6設備與位址是否重複的功能
利用以下的五種封包:
● Neighbor Solicitation(NS): Host送給link layer的request
● Neighbor Advertisement(NA): Host送給link layer的response
● Router Solicitation(RS): Host送給Router的request
● Router Advertisement(RA): Router回給Host的response & 定期的multicast封包
● Redirect: Router

下面是IPv6 Cache Table的內容
● Neighbor Cache: 類似IPv4的MAC Table
- Neighbor: 鄰居的IPv6 address
- MAC: 鄰居的MAC
- State: reachable(可收到), stale(過期), delay(到stale才回應), proble(等回應), invalid, unknown, incomplete
- Flags: router 或 host

● Prefix List: 看哪些IP的prefix是在同一個domain(不須經由router)
- Prefix: prefix與prefix length
- vltime(valid time): 此prefix還可以合理的存活多久
- pltime(preferred life time):  透過stateless configuration(DHCP或Router)所給的存活時間
- onlink: on-link(同一個domain), off-link(不同domain)
- autonomous: 是不是DHCP或Router所給的prefix

● Destination Cache: 目標IP與Next Hop的對應
- Destination Address:  目標IP
- Next Hop Address:  送的下一個IP,可以為目標的IP

● Route List: IPv6的routing table
- Address: 目標IP或prefix
- Gateway/Interface: gateway或interface

● Default Router List:
- Address: router的IP
- Preference: high, medium, low (如果有多個router都在同個level,就輪流)
- Lifetime: 可存活多久
- Flag: statefuk address, additional configuration setting

IPv6網路卡起始的流程
1. 自動生成link local address
2. 送出NS,看看有沒有設備的link local address跟自己的一樣
3. 收到NA之後,存到Neighbor Cache
4. 送出RS,收到Router回送的RA,存到neighbor Cache, prefix list, destination cache

當一個switch要送封包的時候
1. 看Destination Cache決定Next Hop
- 有,直接送到Next Hop送出資料
- 沒有,到第2步
2. 看Prefix List是否在同一個Domain
- 有,就可以直接送給它(代表在同一個Domain)
- 沒有,到第3步
3. 看Router List
- 有,用Neighbor Cache找出MAC,並送出資料
- 沒有,開始IPv6 resolution的過程
透過以上的步驟,可以減少IPv6的封包

2012/06/20

【IPv6 Ready Logo】Core符合性測試


這篇要介紹如何建置IPv6符合性的測試環境
因為Core的測試設備分為兩種:Host與Router
我先以簡單的Host來做範例
先介紹一下兩個名詞:TN (Test Node) 與 NUT
TN:就是下面介紹的FreeBSD的主機
NUT:則是我們所要受測的IPv6設備

首先要找一台不要太新的電腦
如果有COM Port更好,因為自動測試會需要它
接著去下載FreeBSD 9.0
http://www.freebsd.org/where.html
因為測試的環境必須在這個OS下面
安裝完成之後
還必須要安裝Perl-5.12與Perl的相關模組
因為測試程式的語法是由Perl寫出來的

● Perl-5.12.4
# cd /usr/ports/lang/perl5.12
# make
# make install
如果無法連上網路請自行下載BSDPAN-20111107.tar.bz2與perl-5.12.4.tar.bz2,並執行以下指令之後,再重新試上面的指令
# cp perl-5.12.4.tar.bz2 /usr/ports/distfiles/perl
# cp BSDPAN-20111107.tar.bz2 /usr/ports/distfiles/perl
● Expect
# cd /usr/ports/lang/p5-Expect
# make
# make install
如果無法連上網路請自行下載IO-Tty-1.10.tar.gz與Expect-1.21.tar.gz,並執行以下指令之後,再重新試上面的指令
# cp Expect-1.21.tar.gz /usr/ports/distfiles
# cp IO-Tty-1.10.tar.gz /usr/ports/distfiles
● Digest-MD5
# cd /usr/ports/security/p5-Digest-MD5
# make
# make install
如果無法連上網路請自行下載Digest-MD5-2.51.tar.gz,並執行以下指令之後,再重新試上面的指令
# cp Digest-MD5-2.51.tar.gz /usr/ports/distfiles
● YAML
# cd /usr/ports/textproc/p5-YAML
# make
# make install
如果無法連上網路請自行下載YAML-0.77.tar.gz,並執行以下指令之後,再重新試上面的指令
# cp YAML-0.77.tar.gz /usr/ports/distfiles

接下來要安裝測試的軟體了
● v6eval (用來收送IPv6封包用的)
請去此處下載:v6eval-3.3.2
因為FreeBSD9.0在make這套時會有Error Message: "CmMain.cc:51:18: error: utmp.h: No such file or directory",所以請下載:v6eval.diff_.gz
# tar zxvf v6eval-3.3.2.tar.gz
# cp v6eval.diff_.gz v6eval-3.3.2
# cd v6eval-3.3.2
# gunzip v6eval.diff_.gz
# patch -p0 < v6eval.diff_
# make
# make install
● Self Test Tool (Perl寫的Script用來執行v6eval讓它去收送封包)
請去此處下載:Self_Test_5.0.0
# tar vxfz Self_Test_5-0-0.tgz

在安裝完所有的軟體之後,就要設定相關的檔案了
● /etc/rc.conf (請修改rl0為連接NUT的port)
ipv6_enable=”NO”
ifconfig_rl0=”up”
devfs_system_ruleset=“devfsrules_unhide_bpf”
● /etc/devfs.rules
[devfsrules_unhide_bpf=1025]
add path ‘bpf0’ user root group wheel mode 0660 unhide
add path ‘bpf1’ user root group wheel mode 0660 unhide
add path ‘bpf2’ user root group wheel mode 0660 unhide
add path ‘bpf3’ user root group wheel mode 0660 unhide
add path ‘bpf4’ user root group wheel mode 0660 unhide
add path ‘bpf5’ user root group wheel mode 0660 unhide
add path ‘bpf6’ user root group wheel mode 0660 unhide
add path ‘bpf7’ user root group wheel mode 0660 unhide
● /etc/group
wheel
● /usr/local/v6eval/etc/tn.def (請修改rl0為連接NUT的port)
RemoteDevice  cuau0
RemoteDebug  0
RemoteIntDebug 0
RemoteLog  1
RemoteSpeed  0
RemoteLogout  0
RemoteMethod serial
filter    ipv6
Link0  rl0  00:00:00:00:01:00
● /usr/local/v6eval/etc/nut.def (TargetName與HostName設定要測試設備的名稱,Link0請設定NUT的port與MAC)
System    manual
TargetName   abc
HostName   abc
Type    host
User    root
Password   v6eval
Link0  eth0  00:00:92:a7:6d:f5

以上就是將測試的環境給設定好了~

接著將我們要測試的設備接上FreeBSD主機
就可以進行下面的測試指令了
因為一共分五大項,若要一次測試
# cd Self_Test_5-0-0
# make clean
# make ipv6ready_p2_host
若要分項測試,針對Spec作測試
# cd Self_Test_5-0-0/spec.p2
# make clean
# make ipv6ready_p2_host
若要針對Spec的17~24項作測試
# cd Self_Test_5-0-0/spec.p2
# make clean
# make AROPT="-s 17 -e 24" ipv6ready_p2_host

在手動的測試中會有三種狀況會等您的動作
● 等開機完成到Login的畫面,再按下Enter
reboot> Reboot NUT.
reboot>     * Wait until NUT boot up completely.
reboot>         Ex.) Wait until catch up login prompt.
reboot> 
reboot> Press Enter key for continue. 
● 重新開機之後,馬上按下Enter
reboot_async> Reboot NUT.
reboot_async>     * You don't need to wait NUT untill boot up completely.
reboot_async>     * You have to exit this script quickly.
reboot_async>     * This script is used for catching up boot sequence.
reboot_async>         Ex.) DAD, MLD Report, ...
reboot_async> 
reboot_async> Press Enter key for continue. 
● 先輸入好ping6的指令,按下Enter的五秒內,執行ping6的指令
ping6> Press enter key, and excute the following commands within 5 seconds.
ping6> Do ``ping6  DataSize= 1352, Send Count= 1, Interface= bfe0, Destination= FF1E::1:2''

【IPv6 Ready Logo】Core 測試流程


當自己的產品已經有支援IPv6之後
要如何證明呢?
當然是送到最有公信力的機構去做認證
台灣有一個IPv6的認證中心:中華電信研究所IPv6測試實驗室
透過這個實驗室的協助,我們的設備就可以宣稱有IPv6的功能了

測試的項目很多有
● Core:測試基本IPv6的功能
● IPSec:測試IPv6加密與安全性的部分
● DHCP:測試自動取得IPv6與DNS的功能
● SNMP:測試IPv6網路管理的部分
● ...
每一個項目都有一張貼紙
Core的測試是最基本的
有了Core之後才能用同一台去取得其他的項目

那要怎麼通過認證呢? 
簡單來說分為兩個步驟:
第一個步驟就是符合性測試的部分 (Conformance Test)
一共有五大項,三百多個測試項目
這部分要自己測試的,當所有的測試項目通過了
再將報告寄給中華電信研究所
他們審查過之後就可以到他們那邊進行互連性的測試 (Interoperability Test)
要跟其他四種不同的OS進行測試
當測試完之後沒有問題
就可以請他們協助將文件寄到國外去申請Logo了

2012/06/06

VRRP...


VRRP (Virtual Router Redundency Protocol)

每個網路都會指定default gateway
若default gateway壞了所有的對外網路就完全不通了
所以VRRP(rfc2338)就是用來避免這樣的事情發生

Virtual Router是由一群實體的layer 3 device所組成
這些網路設備都有相同的IP
但是只有設定為master的那台會有作用
master也會固定送hello message給其他的設備
其他的設備都處在stand by的狀態
當master掛了之後
其中的一台就會取代master的角色

2012/03/03

【Linux】IPv6 Stateful Auto Configuration

在上一篇我有提到IPv6有另一種自動設定IP的方式

● Stateful
透過DHCP server所給的網路位址 + EUI-64所產生出的網卡位址
看DHCP server的設定,有時也會給定全部的位址而不用網卡位址
 


基本上跟IPv4獲得IP的方式雷同
但是IPv6的DHCP Server可以選擇要只給網路位址或給全部的位址
既然已經有了router給網路位址的作法
為什麼還要出現一個DHCPv6的功能呢?
這樣來說MIS可以更方便的管理設備
反正網址這麼多, 一台設備又可以有很多的IP
所以就沒差了...

下面的範例Server可以送IPv6的address給PC




● Server
# yum remove dhclinet
# yum install dhcp
# vi /etc/dhcp/dhcpd6.conf
    option dhcp6.rapid-commit;
    default-lease-time 120;                  
    ddns-update-style interim;
    ddns-domainname example.com";      
    authoritative;                                    
    subnet6 2011:1:2::/48 {
        range6 2011:1:2::129 2011:1:2::254;
        option dhcp6.name-servers 2011:1:2::2012;
        option dhcp6.domain-serach "ipv6.domain.example";
    }
# ifconfig eth0 inet6 add 2011:1:2::123/48
# service dhcpd6 start

● PC
# dhclient -6 eth0
# ifconfig

透過上面的設定PC就可以拿到IPv6的網路位址
會介於2011:1:2::129到2011:1:2::254之間

2012/02/24

【Linux】IPv6 Stateless Auto Configuration


之前在IPv6那篇文章中有提到
有兩個自動設定IP的方式

● Stateless
網路的位址是由 router所給的 + EUI-64所產生出的網卡位址,
這樣就是一個完整的IPv6 address

● Stateful
透過DHCP server所給的網路位址 + EUI-64所產生出的網卡位址
,看DHCP server的設定,有時也會給定全部的位址而不用網卡位址


這篇先介紹如何將Linux的設備變成IPv6 Router
可以送出IPv6的網路位址
讓PC可以收到IPv6的網路位址再加上自己的MAC自動產生IPv6的IP


Linux Server這邊要安裝radvd這套軟體
這套軟體可以發送Network address並且做IPv6的Routing

● Server
# yum install radvd
# vi /etc/radvd.conf
interface eth0
{
    AdvSendAdvert     on;
    MinRtrAdvInterval   3;
    MaxRtrAdvInternal 10;
    prefix 2001:db8:0:f101::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
};
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
# echo 1 > /proc/sys/net/ipv6/conf/default/forwarding
# vi /etc/sysconfig/network
NETWORKING_IPV6=yes
# service radvd start


接這就可以用 # ifconfig 去看到新的IPv6 address (2001:db8:0:f101::interface address)
● PC
# ifconfig




2012/02/23

【Linux】設定IPv6


最近的工作有設定到一些IPv6的相關功能
寫下來做個紀錄
順便跟大家分享一下

這兩台都是Linux的設備
一開始要先將IPv4與IPv6設定好,之後才可以用ping的方式看看有沒有連起來

● PC
# ifconfig eth0 192.168.1.2                      
# ifconfig eth0 inet6 add 3ff1:1:2::2/64               
# service iptables stop                              
# service ip6tables stop                            

● Server
# ifconfig eth0 192.168.1.1                             
# ifconfig eth0 inet6 add 3ff1:1:2::1/64                
# service iptables stop                                 
# service ip6tables stop                                

接下來就可以ping看看有沒有連起來
● PC
# ping 192.168.1.1                             
# ping6 -I eth0 3ffe:1:2::1

● Server
# ping 192.168.1.2
# ping6 -I eth0 3ffe:1:2::2

2011/12/21

IPv6...


由於IPv4的網路位址已經耗盡了
所以下一代的網路定址IPv6顯得更為重要
 IPv6與IPv4最主要的差別是
網路位址的大小由32bits升級到128bits

網路的位址就變成下面的格式
2001:0db8:1a2b:0015:0000:0000:1a2f:0000
因為真的太難記了
所以有了下面兩種縮寫的規則
● 開頭0可以被忽略,多個0可縮寫成為一個
2001:db8:1a2b:15:0:0:1a2f:0
● 多個0的blocks可以被組成 :: (只能出現一次)
2001:db8:1a2b:15::1a2f:0

IPv6一樣有網路遮罩(Netmask)的概念
被稱作Prefix,在這個prefix所包含的位址皆為網路位址
2001:db8:1a2b:15::1a2f:0/64
上面的例子就是說前面的64個bits為網路位址

以前在IPv4有unicat, multicast以及broadcast
現在IPv6把最耗網路頻寬的broadcast改為anycast
這個anycast只有router能發出
是用來發給最近的router
這樣就可以知道最近的router是哪個
之後再傳遞封包的時候就可以用這台router傳送資料

unicast的網路位址分為兩種型態
● Global Address
全世界唯一
開頭位址為2或3,最後64bits是網卡位址
● Local Link Address
不能出router
fe80開頭,最後64bits是網卡位址 (只要有enable IPv6就會自動生成)
那要如何將網卡的位址(48bits)轉為IPv6的網卡位址(64bits)呢?
EUI-64就是要負責這樣的轉換規則
  - 第7個bit為補數
  - 加入FFFE到第3與第4個位址中
00:ab:cd:12:34:56 → 02ab:cdff:fe12:3456

由於IPv6的位址真的太複雜了
所以不希望大家用手動的方式設定網址 (也可以自己手動設定)
除了上面轉換MAC為IPv6 interface address的方法之外
IPv6還定義了兩個auto-configuration的方法 (自動設定IP)
● Stateless
網路的位址是由 router所給的 + EUI-64所產生出的網卡位址
這樣就是一個完整的IPv6 address
● Stateful
透過DHCP server所給的網路位址 + EUI-64所產生出的網卡位址
看DHCP server的設定,有時也會給定全部的位址而不用網卡位址





2010/10/26

DHCP...


DHCP (Dynamic Host Configuration Protocol)
是用來自動取得IP的一種通訊協定
定義在RFC2131 & RFC2132
在switch中有提供兩種DHCP的作法
● DHCP server : 提供client所需的ip
● DHCP relay agent : 將client所送出的dhcp request轉送到網路上(因為DHCP client & DHCP server在不同的broadcast domain), 並且將broadcast的封包轉成unicast的封包

可以依據不同的Relay Agent Information 來分配IP以及做認證的用途 (RFC3046)
Relat Agent Information的資訊加到option82這個DHCP header的欄位中
包含了
> Slot ID(1byte) : 沒有插卡的設備為0
> Port ID(1byte) : DHCP client所接的port
> VLAN ID(2bytes) : DHCP client所屬的vlan
> Information(15bytes) : 可已自行key入的資訊

DHCP relay分為兩種mode
> Global mode : 所有的DHCP request都送到相同的DHCP server
(如果不同的VLAN要assign不同的IP range, 請將option82的選像打開。才會將vlan的資訊送給DHCP server)


> VLAN mode : 收到來自不同VLAN的DHCP request會轉送到不同VLAN的DHCP server (在設定前必須先將每個vlan的IP設好)

2010/10/24

30歲前一定要搞懂的自己...


這本書是我一個很好的朋友借給我看的
是一位心理醫生所寫得書
在這個青黃不接的三十歲時
有機會可以看一下
以下是我對這本書的一些歸納與整理
分為五個大的段落
(1) 面臨的問題
(2) 防衛機制的檢視
(3) 工作 & 人際
(4) 愛情 & 婚姻
(5) go~

(1) 面臨的問題
● 酷 ←→ 自戀
為了不受傷害 → 不執著於任何事物
追求快樂 (享樂)
● 情緒問題 ( 傾聽 → 找出原因)
● 夢想 & 現實產生衝突 (過度期)
獨立 (告別保護 & 背負責任)
● 選擇的自主權
不確定性
責任
選擇後會覺得其他也許更好
● 想逃避,請思考目的地
● 自我中心 (判斷別人的標準與自己的標準不同)
→ 克制自己的欲望
● 有問題,請提出煩惱
1. 拋棄主觀 & 偏見,觀察別人
2. 找出信賴 & 尊重的人
3. 將煩惱提出
(腳踏實地生活的安定 & 自信以及愛護自己的心)
(彼此席席相關,可能在無意中傷害對方所以要更謹慎、溫和看待他人 & 這個世界)
(嬰兒 = 天使,因為小嬰兒需要愛才能活下來)

(2) 防衛機制的檢視
● 不相信世界
因為傷害來自親近的人 (沒有絕對安全的地方,但是這個世界好人比壞人多)
1. 保持謙虛,尊重別人
2. 受到傷害要適當回應
● 過去的影響 (受傷的小孩→不成熟的防衛)
1. 盡情的哭泣
2. 找出痛點,並且上藥
● 負面的防衛機制
投射:無法接受→都是別人的錯
投設性認同:引出別人的錯
戲畫化:將害怕的人變成滑稽的人,降低恐懼
逃避:保持安全的距離
退化:回到幼年時期
攻擊性轉向自我:自我毀滅
否認:無法接受的想法,直接否決
隔離:從想法中抽離,只保留單純
抵銷:會導致別人受傷,試圖回復原狀
反應結構:做出與內心不同的舉動
● 正面的防衛機制
壓抑:痛苦 & 慾望壓抑在內心 → 衝撞
認同、象徵化、昇華、合理化、代替形成、利他主義 → 溫暖 & 多情

(3) 工作 & 人際
● 問題
找不到方向 (不是努力就可以)
不同世代價值觀 & 生活方式的衝突
禁不起責備
沒有決定權的中堅
● 自我期許過高 ←→ 自我形象差距
知足:人不可能完美,有成就就享受喜悅
● 天使(道德受虐狂) → 非我不可
犧牲當成愛的交換條件 → 失去自我、憤怒、空虛、憂鬱
● 不相信別人 (強迫症)
→ 內心孤單、疲倦、憤怒
● 倦怠期 (因為不斷重複的事物)
→ 內心再整合吸收
● 比較
短期:帶動競爭力
長期:失去挑戰精神,剝奪新事物的樂趣
→ 感受人生、享受人生
● 工作 & 生活均衡
1. 休假計畫
2. 自己人生的主人
3. 沒有"非你不可"
4. 工作 → 幸福
● 辭職 → 為自己的決定負責
有衝突請數到三再開口
● 職場上面沒有親情
1. 設身處地尊重別人
2. 對自己分內的工作盡心負責
3. 言行不要傷害別人
4. 尊重彼此的私領域

(4) 愛情 & 婚姻
● 害怕被拒絕
配不上對方的自卑 & 罪惡
在被拋棄前離開對方
● 在意過去
佔有對方的過去,缺乏自信
● 確認愛情
戀愛的過程 ( 陷入→ 談 → 停留 [分享生活、給予溫暖、了解肯定對方])
● 停止忌妒 → 享受愛情
男性care 肉體外遇
女性care 精神外遇

● 理想情人 (人是不完美的)
心懷感謝 & 體貼對方
接受現實,接受對方
● 要求情人扮演父母的腳色
必須相互調和,非單方要求
● 別離 (失去) → 心理狀態:否認→憤怒→悲傷&接受→送往&出發
告別父母親
告別理想自我
● 親密關係 (真正關心自己命運的人)
1. 穩固自我認同
2. 與對方持續交流 (分享內心深處的自我)
● 媽媽女孩 & 男孩
缺乏自主性 → 自卑感
最好的孝順
1. 自己幸福
2. 感恩 & 照顧
3. 將愛傳給孩子
● 共鳴 (同理心) → 相互了解
● 受傷症候群 (因為過去受傷,所以可以任意要求)
1. 對自己現在行為負責
2. 不代表傷害別人的行為可以原諒
3. 不能不顧自己,一心只想犧牲

● 婚姻 (愛)
1. 現實層面(經濟)
2. 文化層面
3. 心理層面(潛意識)
吵架時,讓對方看到自幼稚&小氣,因為具備了愛與信任 → 會包容,互相體諒尊重
給孩子愛但是別太多期待
做好克服現實障礙的準備
接受 & 尊重彼此的差異
1. 承認愛情的限制
2. 縮小彼此的差異
3. 隱瞞對方

(5) go~
1. 下定決心就能成功 (熱情、準備、心態)
2. 愛得更熱烈、更誠摯
3. 下定決心就能幸福
發現自己對他人而言很重要
把該做的事情做完
4. 你的都是對的,毫不猶豫勇往直前 (自由)

2010/10/11

專案管理 - Closing


在專案的結束時
要進行文件的建檔
並進行結束會議
最後要給自己 & 所有參予專案的成員一點小小的鼓勵

專案管理 - Execting


這個步驟就是做事情啦
並且回報目前的狀況給上面知道

要回報的內容分為兩種
● Hard Dada (定量):數量 [%, 開始/結束日期]

● Soft Data (定性):品質 (有問題的點) [文字描述]

專案管理 - Monitoring


這個標題應該還要包括 controlling & changing兩個
這個階段是要了解目前專案執行的狀況
並進行修正與處理

當有changing發生時,請務必參考下列兩點
1. 請將變更的原因寫下來
2. 根據下列的構面去評估對專案的影響
● technical
● finicial
● scheduling
● quality

專案管理 - Planning


在Planning這個階段一共有下列六個步驟
(1) Work Breakdown Structure
這個步驟是將所有的要執行的任務都列出來
在這個步驟完整性是最重要
請將major deliverable細分成各個task
在分出所有的task之後
要建立WBS dirctionary
要將執行的任務、產出、負責的人員定義在此表中

rule type:Responsible(做事的人), Accountable(負責成敗的人), Consult(顧問), Inform

(2) Activity Duration Estimate
在這邊要評估每個任務的時間
要考慮下列因素:歷史資料、專案特性、人員變數、非內部因素
可以參考下列的作法
● PERT三點不確定法:E=(O+4M+P)/6
E:最後估計的時間
O:最樂觀的時間
M:一般需要的時間
P:最悲觀的時間

(3) Activity Sequencing
排出各task之間的順序,並定義中間的checkpoint[milestone]
有下列兩個步驟
1. 確認每個task之間的順序 & 先後關係
2. 決定critical path (花費最長時間的路徑)

(4) Schedule Development
根據步驟(3)的結果,試圖將schedule的時間縮短一個比例
可以透過下面的幾個作法
a. 減少task時間
b. 增加人力
c. 將CP的path變成平行
在決定好時間之後,描繪Gantt Chart

(5) Risk Management
進行風險的評估與管理
所謂的風險就是:未來發生 & 對專案有負面影響的事情
有兩種風險管理的作法
a. 預防措施preventive actions (cause)
b. 應變措施contingency plan (effect)
風險管理有下面幾個步驟
1. 透過大腦激盪定義出可能會發生的風險
2. 安排 & 排序風險的影響 & 發生機率
3. 指派風險負責人,並發展"預防措施" & "應變措施"

(6) Obtain a paln approval
開一個專案介紹的會議給老闆
要介紹此專案的目的、資源、可行性、主要的分類、需要多長的時間、風險等等...
讓老闆允諾這個計畫...

2010/10/10

專案管理 - Initiating


在專案開始的階段中
有下列四個步驟要完成
(1) Project Scope Statement
定義這次專案的目標
盡量在25個字之內就描述完畢
簡單清楚
務必只有一個目標

(2) Flexibility Analysis Matrix
建立分析圖來決定哪個是最重要的以及之間的順序
下圖的話就是Scope是最重要的
而Resource是最不重要的


(3) Major Deliverable
將主要的目標進行大致的分類

(4) Completion Criteria
設定每個Major deliverable所要的產出 & 時間
最好透過被動式的方式描述

2010/08/22

專案管理...


專案管理
什麼是專案呢?
只要是一件事情有開始&結束的時間
最後要產出結果都可以稱作專案
像是考試、旅遊、活動等等...
專案管理就是透過知識、工具
去達成專案的目標

專案基本上有三個組成份子
● Scope (Quality):專案的結果
● Time (Schedule):專案執行的時間
● Cost (Resource):專案所需的成本
在一開始執行專案時必須決定那個最重要
像是學生考試基本上最重要的是時間
再來是結果最後才是成本
因為學生考試的時間決定好了
沒考好可以選擇不同科系或學校
(也有人覺得結果最重要就會選擇重考了)

專案的流程有以下五個階段
● Initiating (開始)
● Planning (計畫)
● Execting (執行)
● Monitoring & Controling (監督 & 控制)
● Closing (結束)
請參考下圖~

2010/07/08

RIP...


RIP(Routing Information Protocol)
這個protocol是用在layer 3 (IP layer)
用來做router間交換路由資訊的protocol
可以根據不同的domain來做不同的設定

在這邊domain的意思是一個IP layer的網路
像是192.168.1.1/24的網段
這個網段包含的IP從192.168.1.1 ~ 192.168.1.254的網路IP

可以設定兩種資訊
● Direction
》Both:定期的收送並更新routing table
》Incoming:只收來自其他台router的資訊,不送出RIP
》Outgoing:指送routing資訊,不收來自其他router的資訊
》None: 不送也不收routing資訊

● Version:用來控制版本 & broadcast的作法
》RIP-1:version 1基本上就足夠了
》RIP-2B: 比version 1多帶些資訊,用broadcast的方式
》RIP-2M:用multicast的方式

2010/07/07

投資...


什麼是投資呢?
我看了"漫步華爾街"的書
裡面有一句話我覺得最客觀
投資是
購買資產,以獲得合理的可預期收入(股利、利息、租金收入)
或長期增值的一種方法
那投機呢?
基本上就在於時間的長短與報酬的可預測程度
所以希望在幾週內就有獲利這就算是投機了

投資並不能一夕致富
但是投資必需要"不賠錢"
那什麼樣的報酬率代表不賠錢呢?
至少要能與"通貨膨脹率"相同

何謂通貨膨脹呢?
簡單來說就是物價上漲
十年前買支冰棒可能10元
現在買一樣的冰棒可能要20元了
這樣的過程就是通貨膨脹
這50年來的通貨膨漲率大約是4.5%
很可怕吧!!!!
現在定存一年的利率都不到1%
定存是真的趕不上通膨的速度了
但是定存的好處是本金不會被侵蝕
而且折現的速度快
所以一開始還是要透過定存
存緊急預備金 & 這兩三年可能會用的錢(像是結婚基金、旅遊基金之類的)
別一頭熱的全部投到股票或基金中

2010/07/06

隨機漫步...


想必大家都有聽過一個理論
一萬個小時的天才
就是人只要練習某項技能超過一萬個小時
他在那個領域就會成為天才
無論是運動員、音樂家、棋手都是這樣
這代表了一件事情
就是人努力就會變成天才的
重點是要有毅力不斷的努力
而且這些動作都會一直進步的

但是投資也是嗎?
只要學習投資超過一萬個小時
就會一直賺錢嗎?
就會總是打敗大盤嗎?
我想答案都在大家的心中了
所以學者提出了一個專有名詞來說明股票市場
"隨機漫步(Random Walk)"

隨機漫步代表
未來的發展和方向不能依據過去行為加以推測
比方說過去十年中華電信都表現的很好
但是不能因為過去的這些表現就說
中華電信在接下來的日子都會表現得很好
簡單來說
就是股票市場是不能預測的
這樣的結論代表一件事情
就是金融界的分析師 & 動物園的猴子選股的結果可能會差不多
說不定猴子反而會好一點 (好慘啊~~~)

PS:後面會介紹金融業界對抗學術界的兩大武器