2012/09/17

【IPv6 Ready Logo】Phase1與Phase2比較

現在已經沒有Phase1可以申請了
但是之前因為工作的需要所以有做了些比較
於是分享給大家做個參考吧~

※ Phase-1是什麼?
Phase-1銀質標章:基本功能測試(2003/09/01開始營運,已於2011/11結束),Phase-1測試範圍包括IPv6協定, neighbor discover, address auto-configuration及ICMPv6,共有170多項測試項目

※ Phase-2是什麼?
Phase-2金質標章:完整功能測試(2005/02/15開始營運,Phase-2的測試標準則以IETF RFC所規範之MUSTs 和SHOULD為依據,提供更嚴謹之IPv6測試。測試項目高達450項

※ Phase I 和Phase II符合性測試項目

※ Phase-1的缺漏
    ◎ Phase1測試設備可能無法判斷正確的IPv6 Header的格式 (Version, Traffic Class, Flow Label, Payload Length, Next Header, Hop Limit),也無法在發現問題時送出ICMPv6的封包。
    ◎ 若是Fragment的封包有問題(Source address不相同或Destination address不相同)時,Phase1測試設備可能無法判斷或重組,造成通訊的不正常。
    ◎ Phase1測試設備不一定在開機時可以送出Router Solicitation封包也可能無法正確的處理Router送過來Router Advertisement的資料,這樣造成設備只能在區網連線而無法透過Router出去。
    ◎ Phase1的測試設備可能無法偵測有相同的Global address,這會造成在連網時有封包遺漏或送到錯誤的位址。
    ◎ Phase1測試設備可能無法處理Redirect的封包,當網路有兩台Router時,Phase1的設備就無法從正確的Router出去。
    ◎ 如果同一台的router送出不同的network prefix,Phase1的設備可能無法發出Duplicate Address Detection。
    ◎ Path MTU Discovery是動態偵測線路上的PMTU。如果送出去封包的PMTU太大時,設備會收到ICMPv6並調整PMTU的大小。Phase1測試設備可能沒有支援網路MTU的偵測,所以當Router兩端的網路MTU大小不一的時候就會造成連線問題。
    ◎ 還有就是一些檢查的部分...

2012/09/14

OSPF

OSPF (Open Shortest Path First)
在一個AS(Autonomous System)用來傳遞連線routing資訊的協定
Autonomous System是指有一群網路設備,用相同routing的information

以下是OSPF與RIP之間的比較表

● Autonomous and Area
    一個Autonomous會分成多個logical area。最主要的area為backbone(area 0)所有的area都必須接到此area
    ◎ IR (Internal Router) : 在某個area內的Router
    ◎ ABR (Area Boaeder Router) : 連接兩個以上的area的router
    ◎ BR (Backbone Router) : backbone area 的 router
    ◎ AS Boundary Router : 用來交換其他AS的Router


● link state database
    Router ID + associated link + path cost + Dijkstra algorithm → 選出成本最少的path

● 在運作時會一直送出

    ◎ Hello msg : 確認device是否存在
    ◎ Database Descriptions(DDs) : 用來create link state DB[透過LSA(Link State Advertisement)去update]

● Interface : 用來連接layer3 device 與OSPF網路,有state Info, IP, netmask
● Virtual Interface : 用來連接non-backbone area到backbone,兩邊都必須設定

● Designated Router(DR) & Backup Designated Router(BDR) : 負責update link state與確保LSA可以動作

----------

● 設定OSPF步驟
    (1) Enable OSPF
◎ enable
◎ Router ID裡的IP Address
    (2) Create Area
◎ Name Area ID : IP(若輸入0.0.0.0則為backbone)
◎ Authentication : None, Simple[8char], MD5[16char]
 ◎ Stub Network : 是否為Stub area
 ◎ No summary : 要不要收LSA
 ◎ Default Route cost : 用來在stub area選出default route
 ◎ Route redistribution : 將RIP & static route轉成OSPF
- Type 1 : 直接將OSPF的cost轉成external metric
- Type 2 : 用destination 去決定external metric
◎Summary address : 減少routing entry 在 routing table 中
- 用192.168.8.0/22取代 192.168.8.0/24, 192.168.9.0/24, 192.168.10.0/24, 192.168.11.0/24這四個entry
    (3) assign interfcae --> area
        ◎ Authentication : None, Same-as -Area, Simple(key), MD5(Key+KeyID)
◎ Cost : interface cost用來計算routing的路徑
◎ Priority : 用來決定DR & BDR, 0代表不參加
    (4) assign virtual interface --> backbone
◎ Area ID (IP) : 哪個interface所屬的area
◎ Peer Router ID : peer boarder router ID
◎ Authentication : keyID + key


2012/09/13

How to build Linux Kernel ...

跟著下面的步驟就可以輕鬆的將linux kernel給build出來啦 ~

1. 安裝SRPM, kernel-.sec.rpm以及產生kernel source
# yum install fedora-rpmdevtools
# fedora-buildrpmtree
# yum install yum-utils
# yumdownloader --source kernel
# rpm -ivh kernel-.src.rpm
# cd /rpmbuild
# rpmbuild -bp --target $(uname -m) kernel-2.6.spec

2. 更改kernel的版本
# cd /rpmbuild/BUILD/kernel-/linux-
# vi Makefile
    ...
    EXTRAVERSION = XXX (改成自己能識別的名稱)
    ...

3. 清除config file以及用預設的config file
# make mrproper
# cp /boot/config- .config
# make oldconfig
# make clean

4. 建立新的kernel與安裝kernel
# make bzImage modules modules_install
# make install

5. 將新的kernel設為預設的開機kernel
# vi /boot/grub/grub.conf
    ...
    default=0
    ...

6. 重新開機並確認版本
# reboot
# uname -a

2012/09/12

EMC Test...

電磁相容性(Electro Magnetic Compatibility, EMC)
分為三項測試分別要測試不同的電磁干擾源


※ ESD (避免靜電)
特性:速度最快、電壓高、電流小

※ Surge (避免雷擊)
特性:速度慢、電壓高、電流大

※ EFT (避免週邊電源的擾動)
特性:速度快、電流小、次數多

2012/09/09

Linux Routing Connection


這個範例在說明如果有三台Linux Router在中間
要讓兩台PC-A與PC-B可以互相ping得到對方呢?

先介紹一下環境
※ PC-A
    eth0 IP : 192.168.1.1
※ R1
    eth0 IP : 192.168.1.2
    eth1 IP : 192.168.2.1
※ R2
    eth0 IP : 192.168.2.2
    eth1 IP : 192.168.3.1

※ R3
    eth0 IP : 192.168.3.2
    eth1 IP : 192.168.4.1

※ PC-B
    eth0 IP : 192.168.4.2
----------
該如何設定呢 ?
※ PC-A
# ifconfig eth0 192.168.1.1
※ R1
# ifconfig eth0 192.168.1.2
# ifconfig eth1 192.168.2.1
# echo "1" > /proc/sys/net/ipv4/ip_forward
# route add default gw 192.168.2.2
※ R2
# ifconfig eth0 192.168.2.2
# ifconfig eth1 192.168.3.1
# echo "1" > /proc/sys/net/ipv4/ip_forward
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
# route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.3.2
※ R3
# ifconfig eth0 192.168.3.2
# ifconfig eth1 192.168.4.1
# echo "1" > /proc/sys/net/ipv4/ip_forward
# route add default gw 192.168.3.1

※ PC-B
# ifconfig eth0 192.168.4.2
透過上述的設定,就可以讓彼此ping通

2012/07/26

Coaching...


當同仁未達目標時,進行指導員工改進績效的過程。

溝通的需求
        實際需求:訂出可行的改進方案
        個人需求:被理解,有參與感
Add caption

溝通的流程
1. 展開討論
        明確的目的(對別人的好處)與重要性
2. 澄清資料
        - 蒐集事實與數據 了解情況
        - 提出問題與疑慮 潛在障礙
3. 發展方案
        提出問題與參與,創造力與承諾
4. 達成決議
        如何衡量標準?行動方案(What, Who, When):時程、做法、備用方案
                - ST:情況 & 任務
                - AR:行動/結果
5. 總結討論
        明白下一步要做什麼,重述行動方案

溝通的技巧
A. 自尊自信
        對事不對人,尊重,澄清原因 維護自尊
        認可想法,讚許成就(具體誠懇) 加強自信
B. 聆聽同理 (D相關)
        處理情緒 事實+感受
        消弭負面情緒,正向鼓勵
C. 協助參予 (E相關)
        鼓勵參與,努力提問[What,Why, Where, When, How]
D. 分享感想 (B相關)
        補充過去的感受、經驗、想法[誠實]
E. 鼓勵承擔 (C相關)
        給予具體支持,遵守承諾,自行解決
       
※:覆述 & 問問題
○:回到主題



2012/07/17

【IPv6 Ready Logo】Core互連性測試

在完成了IPv6 Core的符合性測試之後
就可以將測試報告寄給中華電信研究所
若沒有問題他們就會通知到所內進行互連性測試
互連性測試基本上要測試四種不同的作業系統進行對測
FreeBSD, Linux, NetBSD, USAGI
FreeBSD, NetBSD會設定為Router的腳色
Linux, USAGI會設定為Host的腳色
跟Router的測試項目比較多,Host的測試項目會比較少

以下介紹各個測項
● 與Router (NetBSD)對測
    1.1-D:ping link local address
    1.1-E:ping global address
    1.1-F:ping所有的Node (FF02::1)與 所有的Router (FF02::2)
    1.2-C:造成別人產生DAD (重複的網路位址偵測)
    1.2-D:自己發生的DAD
    1.3-A:Router送出一個 RA,另一台Host ping看看
    1.3-B: Router送出兩個 RA,另一台Host ping看
    1.3-C:測試RA的lifetime,超過了是否還存在
    1.4-A:測試RA的lifetime大於0,是否能互ping到對方
    1.4-B:送RA=0,ping設備;之後送RA=600,ping設備;最後送RA=0,ping設備
    1.5:Router1會送Redirect封包給Host,看看使否能轉到Router2
    1.6-A:host ping設備,設備回給host的封包太大,要能切割成小一點的封包
    1.6-D:當送的封包的MTU太大時,能切割並送出
● 與Host (Linux)對測
    1.1-A:ping 另一台host的link local address
    1.1-B:ping 另一台host的global address
    1.1-C:ping 所有的Node (FF02::1)
    1.2-A:router ping 設備與host,沒有DAD的狀況
    1.2-B:測試造成別人產生DAD與自己發生的DAD
    1.6-C:當網路的MTU為1280時,host 與設備互用大封包ping時,可以轉成1280的封包

● 與Router (FreeBSD)對測
    1.1-D:ping link local address
    1.1-E:ping global address
    1.1-F:ping所有的Node (FF02::1)與 所有的Router (FF02::2)
    1.2-C:造成別人產生DAD (重複的網路位址偵測)
    1.2-D:自己發生的DAD
    1.3-A:Router送出一個 RA,另一台Host ping看看
    1.3-B: Router送出兩個 RA,另一台Host ping看
    1.3-C:測試RA的lifetime,超過了是否還存在
    1.4-A:測試RA的lifetime大於0,是否能互ping到對方
    1.4-B:送RA=0,ping設備;之後送RA=600,ping設備;最後送RA=0,ping設備
    1.5:Router1會送Redirect封包給Host,看看使否能轉到Router2
    1.6-A:host ping設備,設備回給host的封包太大,要能切割成小一點的封包
    1.6-D:當送的封包的MTU太大時,能切割並送出
● 與Host (USAGI)對測
    1.1-A:ping 另一台host的link local address
    1.1-B:ping 另一台host的global address
    1.1-C:ping 所有的Node (FF02::1)
    1.2-A:router ping 設備與host,沒有DAD的狀況
    1.2-B:測試造成別人產生DAD與自己發生的DAD
    1.6-C:當網路的MTU為1280時,host 與設備互用大封包ping時,可以轉成1280的封包

上述的測試要兩天,等測試完成之後
就可以等報告拿Logo囉 ~ 

2012/07/02

【IPv6 Ready Logo】Core符合性測試 - Linux除錯

以下是小弟在用linux測試時的一些心得

基本上linux 2.2就有支援了
但是建議會使用2.6以上的版本
我是用linux 2.6.31的版本
因為要自己build in kernel所以有時候選錯項目會造成一些測試不過
這邊給大家做些參考


基本上在linux kernel中選了"CONFIG_IPV6"大部分的項目就可以過了
但是如果測試的時候發現
● Section1: 44, 45, 46, 49, 50, 51沒過
    → 請 Disable "CONFIG_NF_CONNTRACK_IPV6"
● Section2: 138沒過
    → 請Enable "CONFIG_IPV6_ROUTER_PREF"
● Section3: 3, 5, 14, 15, 23, 24沒過
    → 請在開機時執行,"# echo 2 > /proc/sys/net/ipv6/conf/eth0/accept_dad"
         啟動DAD功能,但Link-Local位址(由MAC所產生的)碰撞發生時,關閉IPv6功能

若還有相關的問題,可以留言,如果我知道會盡量幫忙

2012/07/01

DVMPR...

DVMRP (Distance Vector Multicast Routing Protocol)
在一個Automous System(AS)中路由"multicast data"
可以讓layer 3 switch 跑IP與IGMP的封包
利用Reverse Path Multicasting(RPM) 去建立IP multicast delivery tree
用IGMP去學習membership information


有以下四種封包
  - DVMRP probe:discover 鄰近的 switch
  - DVMRP report:交換routing info,用來建立DVMRP的tree,以及用Reverse Path Forward(RPF)來檢查進來的multicast peform(避免loop)
  - DVMRP prune:刪除此switch
  - DVMRP grafts:重新加入


有以下四個步驟
  1. 產生advertise multicast packet的broadcast封包
  2. 若沒有此multicast group的switch送出prune message
  3. 若後來加入了,則送graft message重新加入此tree
  4. 最後multicast 封包就知道要送給誰


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