2008/12/31

VLAN Stacking...

這就是在原本的VID前面再加一個VID
也可以說是Q-in-Q、double tagged
好處是原本有4094個VLAN
現在變成4094*4094個VLAN
ISP可以針對客戶的需求提供個別的VLAN

客戶A有兩個VLAN20, 30 (inner tag)
客戶B有一個VLAN20 (inner tag)
而中間兩台switch只要知道客戶A的VLAN為10 (outer tag)
客戶B的VLAN為20 (outer tag)
客戶內各自的VLAN並不會影響到外面的VLAN

● SP TPID
用來定義這個frame是否為VLAN tag的frame
一般說0x8100是802.1Q定義的
有些設備商也會用0x9100

● Port Rule可以分成以下三類
》Normal
沒有使用VLAN Stacking的Port
》Access Port
為Ingress port,就是接客戶端的port
必須為untagged
》Tunnel Port
為Egress port,就是中間switch互接的port
必須為tag
giga port才會有這項功能

● SPVID
就是所謂的outer VID
在上面那張圖就是A→10、B→20

● Priority
每個outer VLAN可以有不同的優先權
0最小、7最大

PS : 以上的作法是針對進來的port而決定SPVID
還有針對進來的VLAN來決定SPVID
PS2 : VLAN Stacking與VLAN Mapping同時只能enable其中一項

2008/12/30

Protocol Based VLAN...

跟據來源的Protocol走對應的VLAN
目前的protocol有:IP、IPX、ARP、RARP、Apple Talk、DECNet、PPPoE


當一個frame從某一個port收到時
會比對是否已經加了tag
如果有加tag那就走原先對應的VLAN

若沒有加tag那就比對來源protocol
根據protocol決定走哪個VLAN出去
也可以根據不同的VLAN設定不同的priority
值越大代表權限越高
在同一種protocol可以有相同的priority
每個port都可以有自己的rule

2008/12/27

Port Based VLAN...

這種VLAN是依據port來切割


比方說
我想要從port 3進來的packet可以從port 5&7出去
就把下圖的紅色框框打勾


有兩種快速勾選的方式
● All connected:全部的port的packet都會透通
● Port isolation:port之間的資料都不會互送,但是會送到CPU處理

2008/12/26

Subnet Based VLAN...

跟據來源的IP位址走對應的VLAN


當一個frame從某一個port收到時
會比對是否已經加了tag
如果有加tag那就走原先對應的VLAN

若沒有加tag那就比對來源IP
根據IP決定走哪個VLAN出去
也可以根據不同的VLAN設定不同的priority
值越大代表權限越高
通常vedio最高、voice次高、data最低
透過這樣的方式
在相同的IP subnet中就可以有不同的priority
比方說172.23.0.1走vedio (vlan 100) 的priority 7
172.23.0.2走data (vlan 200) 的priority 3

實際用在triple-play可以參考這篇

C 的自訂資料型別...

C裡面自訂型態類別一共有三種
● typedef
● struct (最常用)
● enum

● typedef:重新定義資料的型態
//start
typedef int testIntType;
testIntType i, j; //i與j為int
//end

● struct:可以將不同型態的資料放在一起
//start
typedef struct {
int i;
char str[20];
} test;

test abc;
abc.i = 1;
strcpy(abc.str, "aabbcc");
//end

● enum:設定一群累加的參數
//start
enum test {
test1, //預設為0
test2, //預設為1
test3 //預設為2
};
//end

2008/12/24

Mirroring...

將被監視的port(mirrored port)的packet全部複製到監聽的那個port(monitor port)上


◎ Mirrored Port:被監聽的port
可以選擇被監聽的方向Ingress、Egress、Both

◎ Monitor Port:監聽別人的port
不能同時為mirrored Port以及Monitor Port

2008/12/23

Broadcast Storm Control...

限制每秒經過此port的broadcast、multicast、destination lookup failure(DLF)的packet數量

◎ Destination Lookup Failure (DLF)
目的地位置查詢失敗的封包
在MAC Table找不到對應的MAC資料
再將Packet由同一個VLAN廣播出去

2008/12/22

Bandwidth Control...

限制每個Port上行、下載傳輸的頻寬
分為三種Rate
在Ingress Rate可以設定Committed Information Rate以及Peak Information Rate
Egress Rate則只有一種

◎ Ingress Rate
》Committed Information Rate (CIR)
保證這個Port的基本頻寬
》Peak Information Rate (PIR)
如果沒有網路擁塞的狀況,可以到達的最高頻寬

◎ Egress Rate:出去此port的最高頻寬

2008/12/07

vim常用指令...

在這邊分成五個類別分別做介紹
移動、編輯、搜尋、替換、檔案

◎ 移動
→ 左
h:向左移一格
0:移到行首
^:移到最左非空白字元
→ 右
l:向右移一格
$:移至行尾
→ 上
k:向上移一行
H:移至螢幕頂第一個非空白字元
gg:移至檔頭
Crtl+b:向上翻頁
→ 下
j:向下移一行
G:移至檔尾
L:移至螢幕底第一個非空白字元
Ctrl+f:向下翻頁
%:移到對應的括號上

◎ 編輯
i:游標前輸入
x:刪除游標字元
dd:刪除一整行
r:取代游標
s:取代游標(插入)
u:回復(undo)
Ctrl+r:重做(redo)
yy:複製整行
p:貼上
.:重複動作

◎ 搜尋
/:搜尋
n:往下找
N:往上找
*:搜尋游標的字

◎ 替換
:[range]s/xxx/yyy/[c,e,g,i]
-->range:1,7(第一到第七行) or 3,$(從第三行到最後) or %(整篇文章)
-->xxx:要被替換的字
-->yyy:替換的字
-->c(詢問), e(不顯示Error), g(不詢問), i(不分大小寫)

◎ 檔案
:q!:強制離開
:x:有修改則存檔離開
:!:執行外部命令