顯示具有 交換與路由(Router Switch) 標籤的文章。 顯示所有文章
顯示具有 交換與路由(Router Switch) 標籤的文章。 顯示所有文章

2012年12月9日 星期日

Default Gateway 與 Default Route的不同??

Default Route VS. Default Gateway
 近日同事問了一個問題: "Default Route"與"Default Gateway"的差異在哪?
頓時進入沉思狀態…內心的疑問是…不是都一樣嗎???

另一位同事回應,差異是一個是Layer 2、一個是Layer 3。原發問的同事答: 沒錯!!

哇咧!!!真的是一頭霧水~~
竟然差別是在OSI模型的Layer 2與 Layer 3!!於是我回想一下…
Layer 2是用MAC位址、Layer 3是用IP位址。

假設Default Gateway與Default Route都是192.168.1.1時,在Cisco設備上設定如下:
Default Route 
ip route 0.0.0.0 0.0.0.0 192.168.1.1

Default Gateway
ip default-gateway 192.168.1.1

那…瞄的!!明明一樣都是靠Layer 3的IP位址,都是運作於Layer3才對,哪來的Layer 2呢?
再仔細想想…

正確答案應該是:
Default Route 設定於Layer 3環境,而Default Gateway 設定於Layer 2環境,都是以Layer 3的IP進行定址。

想想Layer 2的Switch設備好了,由於上面沒有routing table,跟本沒辦法下指令ip route 0.0.0.0 的指令,當我們要透過其它網段來管理這台設備時,就是透過ip default-gateway來達成。

而ip route 0.0.0.0 0.0.0.0時常見於Layer 3的設備上(Router或是Core Switch),我們就可以透過default route的指令來指定沒定義的路由網哪裡跑。

所以,Default Gateway與Default Route的差異,在於運作的環境(Layer 2或 Layer 3),不同的環境可以下的指令不同,雖然指令不同,但有都同樣的目的,將不認識的目的IP往哪一點丟,如此而已。

2012年6月29日 星期五

帶Tag還是不帶Tag? Trunk Port還是 Access Port?


簡單的概念,這麼久才搞懂@@

Trunk Port 與Access Port比較好理解,直接接到電腦、主機的就叫Access Port,Switch與Switch之間需要相互溝通Vlan的,會用Trunk Port。

以Cisco 來說,設定如下:
設定Gi0/12為Trunk Port  -
interface GigabitEthernet0/12
 switchport mode trunk

設定Gi0/1為Vlan 234的Access Port -
interface GigabitEthernet0/1
 switchport mode access
 switchport access vlan 234

好的,接下來就是我卡住的地方,那到底啥時要帶Tag啥時不要帶Tag呢??
簡單的說,帶Tag就是Trunk Port,而不帶Tag就是Access Port。

用下面這張圖來說明:
這是Linksys上面對於是否要Tag的設定,這個畫面是針對Vlan 234的設定,其中Ge12與Ge24為Trunk Port(橘色部份),所以當Vlan234在這個Port時,需要選擇帶Tag。而其它在Vlan234的主機接到了GE1~7  Port(紅色部份),也就是Access Port,這裡不需要帶Tag, 所以選擇untag。

值得注意的就是,以往我們設定Cisco的Trunk Port,只需要在該介面設定Trunk,即會將所有Vlan帶Tag透過這個Port傳輸,如果只想限制某些Vlan,再用switchport trunk allowed vlan ID指令來限制。
但是在設定Tag或Untag的Switch上,必需針對每個Vlan去設定這一個Port是否要帶Tag?比如上圖在Vlan234裡指定GE12需帶Tag,這不帶表所有vlan都會在這個Port帶Tag,需要各別Vlan去指定,否則該Port不會自然帶Tag,就會發現這個vlan怎麼沒通的狀況。



2011年10月5日 星期三

防止私接Switch的利器 - BPDU GUARD

今天客戶問我一個問題:

為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?

回答這個問題之前,有三個名詞要先了解:
1.spanning-tree: 中文好像翻成生成樹,管它什麼翻譯,這個東西是Switch上的設定,設定上去後,Switch與Switch之間會相互溝通,避免網路迴圈(loop)狀況產生,缺點是剛接上switch的設備會需要30~50秒的時間…溝通…之後網路才會通。

2.portfast: 這是spanning-tree的進階設定,目的就是當確定網路port所連接的設備確定是終端設備,如印表機、PC、Server等時,不需要switch之間的spanning-tree那30~50秒的溝通,可以利用portfast跳過這個溝通時間。

3.BPDU:全面為bridge protocol data unit,為switch之間spanning-tree溝通的協定資料,只要有spanning-tree的環境就會有BPDU存在。

了解這三個名詞之後,再來看spanning-tree的進階設定"BPDUGUARD",我們知道bpdu是switch之間溝通spanning-tree的協定資料,那來防止bpdu的bpduguard就是防止switch之間溝通spanning-tree的保彪,問題是…為什麼要禁止spanning-tree呀??這不是防止loop發生的好機制嗎??

原因是spanning-tree是cisco switch預設的功能,只要開機就有啦!!所以只要把一台switch接到另一個swich就會發生spanning-tree的溝通。這時....BPDU GUARD的功就用產生了,可以用來避免人把swich接到自已的網路環境,因為只要一接上就會有bpdu協定資料出現,這時bpdu guard就會將該port error disable,來避免有人私接swich進網路環境。

聰明的您應該有發現,這有個前提,整個bpdu guard的保護只能保護會發送bpdu的switch,如果對方把spanning-tree關掉,或是非cisco swich,這個安全機制就破功啦@@

雖然如此,這還是一個很好的功能,比如說某天自已忘了,接了一台swich上去,更動了原本的STP架構,這不就糗了!!透過BPDU GUARD就是在避免STP被更動的危險狀況!!

最後…回到原將問題:
為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?


因為spanning-tree bpduguard enable之後,會開啟spanning-tree的bpdu防護機制,避免swich之間有spanning-tree的溝通資料(bpdu),或者說,避免有人私接switch進來,因為當對方一接進來,該port會偵測到bpdu資料,此時已啟用bpdu guard的switch會自動將該port Error Disable。所以更正確一點的說法是,不能接會發送bpdu的switch進來,如果非cisco swich或是已關掉spanning-tree的swich還是可以接進來的。

2011年9月9日 星期五

包著Allen Bradley外皮的Cisco Switch


今天客戶帶我去看他們產線,說switch出問題,到了現場在PLC設備箱子裡,
客戶指著上面這台設備,說~"就是這一台!!"

@@一頭霧水~~這是Switch?????
console進去看之後:(sh ver)
啥咪~~是lanbase IOS

沒有風扇,不用散熱~~原來這就是傳說中的工業用Switch!!所有操作就跟cisco設備一樣,真是開了眼界^^

2011年7月1日 星期五

用reload in mm 來避免遠端路由設定錯誤時斷線

最近在客戶端與外國客戶一起設定多點動態路由,偷學了外國人招^^

為了避免設定狀況錯誤,造成斷線,但…遠方又沒有人可以協助,

所以在設定之前用一個簡單的指令,排程路由器在幾分鐘之後自動重開,

就算全部斷線了,也會在重開後使用正常的config檔開機起來回復原來的狀況:

1. 先把自已的設定檔存起來:
write

2. 設定15分鐘後自動從開:
reload in 15

3. 開始改config與驗證

4. 如果確定新的設定都能運作,就把reload取消:
reload cancel

最後再把新的設定檔給存下去就ok啦^^

2011年6月24日 星期五

用Perl縮短維護Cisco Router Switch時間




因為一直用相同的指令在多台設備之間進行維護,實在覺得很…浪費時間,
透過Perl可以縮短許多重覆的部份。

下面是如何用Perl對一群Switch或Router做同樣的網路維護動作,
也把running-config備份下來:

Step.1 裝Perl:
以Windows來說,可以到這裡下載合適的Active Perl
http://www.activestate.com/activeperl/downloads
下載完點兩下進行安裝,安裝完記得重開機。

Step.2 裝Net::Telnet::Cisco 模組:
執行Comand_> ppm install Net::Telnet::Cisco進行安裝

Step.3 寫一段Perl:
用文字編輯器編寫並存成xxx.pl檔案:(以下範例即對一些IP進行相同的網維指令)
use Net::Telnet::Cisco;

my @hosts = qw( 192.168.1 192.168.3 192.168.6.6 192.168.8.8 192.168.12.4);
#把要登入的Swich或Router全打進上面

foreach my $host( @hosts ) {
my $session = Net::Telnet::Cisco->new(Host => $host);
$session->login('admin','1234');
#上面這段即輸入Switch或Ruter的帳號密碼
$session->enable('1234');
#再輸入enable的帳號密碼
open(write_file,">$host.txt");
#上面是把每一台主機的維護資訊都以IP名稱存檔
#下面是維護想要看的指令集
my @output;
push(@output,$session->cmd('show version'));
push(@output,$session->cmd('show log'));
push(@output,$session->cmd('show process cpu'));
push(@output,$session->cmd('show env all'));
push(@output,$session->cmd('show ip inter brief'));
push(@output,$session->cmd('show interface'));
push(@output,$session->cmd('show flash'));

print write_file @output;
close(write_file);
#最後再把running-config給備起來,IP是當時自已電腦的IP
$session->cmd('copy run tftp://IP');
}

2011年6月22日 星期三

Cisco 註冊碼之2101與2102

最近裝了一台4507R

遇到一個問題: 怎麼IOS都換不上去????

後來同事告訴我要注意Register值是不是2101,是的話就換不過去,Check一下:

到底什2101是啥咪意思?
這裡有說明:http://www.cisco.com/en/US/products/hw/routers/ps133/products_tech_note09186a008022493f.shtml

0x2101就是開機用bootstrap開機,不管你放在flash裡的東西:
Boots into bootstrap
Ignores break
Boots into ROM if initial boot fails
9600 console baud rate

更換成0x2102之後,就不用bootstrap開機,會去找flash裡的ios:
Ignores break
Boots into ROM if initial boot fails
9600 console baud rate default value for most platforms

時常要破掉密碼的0x2142就是跳過存在RAM裡的startup開機:
Ignores break
Boots into ROM if initial boot fails
9600 console baud rate
Ignores the contents of Non-Volatile RAM (NVRAM) (ignores configuration)

所以下次IOS換不過,可以確認一下註冊碼^^

耐熱的工業用Switch 2955


幫客戶維護發現這款Switch工作溫度竟然高達65度@@

確認過這款耐熱型Swich2955,工作溫度可達60度耶!!

真是夠屌的!

2011年6月12日 星期日

NME-X-23ES-1G-P模組的Password Recovery

這陣子在這下面台3845上:

插入了一片Switch的Service Module: NME-X-23ES-1G-P

這片模組是透過3845的背版相連接的,當登入到3845之後,要進入這片的方式如下:
Router#service-module gigabitEthernet 2/0 session

上面的gi 2/0就是3845上面接到模組的背版介面,以session即可連入。

如果是正常的情況要做密碼回復(Password Recovery),只要到Cisco這個便利的網站:
http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_tech_note09186a00801746e6.shtml
就能找到。

但… NME-X-23ES-1G-P這片模組比較糗的是,當你重開Router時,Switch也開好了@@
不知道怎麼進行Rest,其實方法很簡單,如下:

Step.1 重設NME-X-23ES-1G-P模組密碼:
Router#service-module gigabitEthernet 2/0 password-reset
Do you want to proceed with password reset process?[confirm]
Starting password reset process...
Wait for 50 secs for password reset process to complete
Password reset process is complete...

[Resuming connection 1 to 192.168.10.253 ... ]

重設好之後會再登入Switch
switch:

Step.2 初始化Switch
switch: flash_init

Initializing Flash...

flashfs[0]: 503 files, 7 directories

flashfs[0]: 0 orphaned files, 0 orphaned directories

flashfs[0]: Total bytes: 32514048

flashfs[0]: Bytes used: 19305984

flashfs[0]: Bytes available: 13208064

flashfs[0]: flashfs fsck took 9 seconds.

...done Initializing Flash.


switch:

Step.3 備份開機檔config.text
switch: rename flash:config.text flash:config.text.bak

Step.4 開機
switch: boot

Loading "flash:c3750-ipbase-mz.122-35.SE5/c3750-ipbase-mz.122-35.SE5.bin"...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

File "flash:c3750-ipbase-mz.122-35.SE5/c3750-ipbase-mz.122-35.SE5.bin" uncompressed and installed, entry point: 0x3000

executing...
(原來NME模組上有自已的IOS耶~)

Step.5 設定新密碼
Would you like to enter the initial configuration dialog? [yes/no]: no
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#enable password Mypass123
Switch(config)#exit
Switch#write
Switch#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
Switch#reload

2011年5月4日 星期三

建立安全的Cisco Router與Switch

許多環境都有Cisco的Router與Switch,但大部份的建置考慮的是如何讓它”work”,而忽略了Security,以下提供六點,讓您檢示自已的網路設備是否有基本的安全設定。

1. 修改連線方式為加密傳輸:
管理Router或Switch的方式可以透過Console、telnet、SSH、HTTP、HTTPS,
就安全考量,流量有被監聽的可能,透過SSH連線比未加密的Telnet安全,用HTTPS比HTTP安全。
a. 是關閉Telnet開啟SSH的方法:
開啟SSH之前要先設定主機名稱與網域名稱
RouterA(config)#ip domain-name test.com
再來就是產生ssh的鑰匙
RouterA(config)#crypto key generate rsa general-keys modulus 1024
產生好之後再進到vty介面裡面設定驗證方式,下面是用router本身
來驗證:
RouterA(config)#line vty 0 4
RouterA(config)#login local
再指定只用ssh驗證,不用telnet:
RouterA(config-line)#transport input ssh
最後面的transport input ssh後面可以再加上telnet,如果沒有加的話就不能telnet進來了。
設好後,這時候登入你會發覺沒有帳號密碼可用@@再補一下:
RouterA(config)#username oya password 1234

b. 開啟HTTPS關閉HTTP:
確認關閉HTTP服務
Router(config)#no ip http server
先啟動HTTPS服務
Router(config)#ip http secure-server
設定驗證方式,如用本機驗證:
Router(config)#ip http authentication local
再開一個本機使用者
Router(config)#uaername oya privilege 15 secret 0 1234

2. 設置登入方式與修改密碼加密方式:
a. Enable password: 登入後為user mode,user mode不能做任何變更,只能透過show指令觀看設定,通常設給OP使用。需要再輸入帳號密碼後進入privileged mode才能變更設定,如下為設定enable密碼的方式:
Router(config)#enable password 1234
但由於enable password是使用Type 7 密碼,Type 7是直接對密碼使用OR或XOR進行加密,很容易可以破解,如使用Cain&Abel(http://www.oxid.it/cain.html)就可以破解密碼,使用上只需點選上方像Cisco綠色圖示,但cisco改為7的按紐,就會出現解碼的視窗,再把密碼貼上即可:

b. Enable secret
Cisco也發現Type7的弱點,改用MD5來對密碼加密,利用show run在密碼前的數字5就代表MD5加密,而數字0代表沒有加密,下面是啟用MD5的方式:
Router(config)#enable secret 1234

c. VTY password
不透過ssh或是telnet都是以vty的方式連線,設定密碼的方式如下:
Router(config)# line vty 0 4
Router(config-line)# password 1234
Router(config-line)# login
最後的login是指在login時需要輸入密碼

d. Console password
如果直接接上console管理設備的話,預設沒有密碼,為了安全避免任何人接上線就可以管理,設置方式如下
Router(config)# line con 0
Router(config-line)# password 1234

e. AUX password
輔助port的設定方式與console一樣,如下
Router(config)# line aux 0
Router(config-line)# password 1234
由於上面設定的密碼為type 7,可以很容易解開,再透過
Router(config)#service password-encryption
把Type 7全改為MD5加密。

3. 設定特權模式(Privilege Level)等級:
Privilege Level共有16個等級,從level 0 到 level 15,預設只會使用三個等級,Level 0 , 1 , 與15,等級愈高權限愈大。而level 2~14是留給使用者自訂的。設置Privilege Level的方式在使用都建立時設定,如下為設定等級15的方式
Router(config)#uaername oya privilege 15 secret 0 1234
自訂等級的方法如下,先指定Level 2可執行的指令,與設定進入level 2的密碼
Router(config)# privilege exec level 2 traceroute
Router(config)# enable secret level 2 1234
要登入時,輸入如下
Router> enable 2
Password: 1234
Router# show privilege

4. 保護開機設定(bootset):
透過Cisco IOS Resilient 設定,可以保護開機image與設定檔,避免損壞時,還可以從隱藏空間救回來,方式如下
Router(config)#secure boot-image
Router(config)#secure boot-config
下完這兩個指令可以讓image與running-config複製一份到隱藏儲存空間,想看的話可以打
Show secure bootset

5. 登入時的安全機制:
為防止非法人事不斷的Try密碼,可以設置一些安全機制,Cisco提供三種安全機制:
a. 延遲時間:
預設Cisco的設備會用設備能反應的最快時間提供登入,這可能使得暴力破解變的更方便,您可以使用login block-for來設定延遲秒數,預設為1秒鐘。啟用延遲的方式為login delay指令。

b. 關閉login:
為了避免受DoS攻擊,可以限制在一定時間內登入失敗就關閉登入功能一段時間,這個功能稱為login quiet-mode。有一個狀況,如果有人正在試密碼,使得router進入 quiet 模式,此時連系統管理員也無法登入,實在很奇怪,所以可以透過ACL的方式來設定:
Router(config)#login quiet-mode access-class

c. 啟用登入log:
Log是找問題找證據的好東西,一定要設。登入狀況的log要產生的話,可以用下列指令,來指定登入成功或失敗時產生log
Router(config)# login on-success
Router(config)# login on-failure
如果您透過auto secure來建立安全設定,那只會針對登入失敗產生log,登入成功的log需要手動設定。

6. 設定登入警示訊息:
這是發生在國外的法律糾紛,在自已的Router上寫上”Welcome”相關的訊息,駭客進去改東西之後,被告上法庭,因為Router本身就歡迎大家使用,而使得駭客無罪釋放。所以在您的Router,Switch上設置警示訊息,是必要的,可以避免未來的法律問題,下面為設置範例:
Router(config)# banner motd &
******************************************************
******************WARNING****************************
******************************************************
This Router is private property and may only be accessed by authorized
Users of this system. All access to this system is monitored and logged.
Violator will be prosecuted to the fullsest extent of the law.
&
上面在motd之後接的字元,就是整串警示訊息打完後的結束字元

2010年8月17日 星期二

網路工程師之CCNA實戰手冊

由於工作是網路工程師,但關於CCNA的知識是三年前學的了@@所以全忘了~最近k回,也做了些筆記,也給需要的人參考^^
這份手冊目的是快速了解Cisco設備操作所需的知識與操作方法,
在原理的部份還是要參考原廠的書目。下面把整個CCNA的知識以實務的角度拆解成三部份,第一部份是任何Cisco設備都共有的基本操作、第二部份是 Switch上所需的操作,如VLAN與Spanning-Tree,第三部份是Router的操作,如Routing、NAT、ACL、WAN封裝。

一、Cisco 設備基本操作

I. 登入:
(1) 密碼設定:
登入Cisco設備要記住,第一步就是把密碼變成你的密碼,這樣才能掌控這台設備的所有權!如下為如何更改Enable的密碼:


Router800>
Router800>en
Router800#conf t
Router800(config)#enable ?
last-resort Define enable action if no TACACS servers respond
password Assign the privileged level password
secret Assign the privileged level secret
use-tacacs Use TACACS to check enable passwords
Router800(config)#enable secret enablepass

實務上不會設置enable password,而是直接enable seceret。除了enable外,也常更改telnet的密碼,好方便未來管理


Router800(config)#line ?
<0-5> First Line number
console Primary terminal line
vty Virtual terminal
Router800(config)#line vty 0 4
Router800(config-line)#password vtypass
Router800(config-line)#login

如果希望不用密碼就直接登入,可以用 no login
最後,不希望任何人接上console就可以動你的設備的話,就要更改Console的密碼


Router800(config)#line console 0
Router800(config-line)#password consolepass

上面即是設定密碼為'consolepass'


Router800(config-line)#login
Router800(config-line)#logging synchronous

最後一個用Loggin synchronous可以讓介面不再不斷跑出訊息,比較不容易亂
(2) 登入資訊:
登入資訊會有兩個要改,一個是hostname,可以方便知道目前在哪一台?也能讓其它設備快速知道這台是什麼。另一個是登入資訊(banner),讓不小心連到設備的人,可以宣告一下主權(單純警示作用)。


Router800(config)#hostname Cisco800Router
Cisco800Router(config)#

再來再改一下登入資訊


Cisco800Router(config)#banner line
Enter TEXT message. End with the character 'l'.
The Login Action is prohibited !!
l

最後用小寫l結尾,這樣要login就會看到這個訊息
(3) 蓋掉密碼:
很容易發生一種狀況~那就是'密碼忘記'!!不管是剛設的或是別人設定的,都會發生!!每台的方式不一樣,到這個網站找到你的型號,一步步跟著設定即可:
http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_tech_note09186a00801746e6.shtml

II. 了解資訊:
(1)show running-config
時常會有接觸一台未知設備的狀況,show run永遠是最快、最常用來了解一台設備的指令


Cisco800Router#sh run
Building configuration...
Current configuration : 907 bytes
!
version 12.2
no parser cache
no service single-slot-reload-enable
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Cisco800Router
!
logging rate-limit console 10 except errors
enable secret 5 $1$G9.P$qSkGqo8i.Z8no8/A584aO.
enable password enablepass
!
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
!!
no ip dhcp-client network-discovery
!
!
!
interface Ethernet0
no ip address
shutdown
!
interface ATM0
no ip address
shutdown
no atm ilmi-keepalive
dsl operating-mode auto
!
ip classless
no ip http server
!
banner login ^CINE
The login action to this appliance is prohibit!!
^C
banner motd ^Cine
The Login Action is prohibited !!
L^C
!
line con 0
password consolepass
logging synchronous
login
stopbits 1
line vty 0 4
password vtypass
login
!
scheduler max-task-time 5000
end

如上,就可以看到剛才設定的資訊了^^ 通常還會再搭配pipline | 來做過濾查尋,
比如要只看某介面,可以用


Cisco800Router#sh run | begin interface

或是只想看某個關鍵字的資訊,可用include


Cisco800Router#sh run | include 192.168.1.1

(2)其它常用資訊查尋指令


Show version

顯示硬體、軟體資訊


Show interface

查看每個介面的資訊


Show ip interface brief

快速看每個介面IP資訊


Show protocols

快速查看Layer1與Layer2之間的狀態


Show cdp nei

查看直接連接設備的資訊


Show ip route

快速了解路徑表
大致了解完這台設備的狀況後,就可以開始設定啦!


III. 網路設定:
(1) IP設定
IP的變更是任何設備必定的,方法很簡單,進到某一個介面裡之後,再敲ip address就可以設定了:


Cisco800Router(config)#interface ethernet 0
Cisco800Router(config-if)#ip address 192.168.1.1 255.255.255.0
Cisco800Router(config-if)#no shutdown

這裡還有一個指令 no shutdown,就是shutdown的反過來,也就是打開介面的意過,Cisco預設上port是關閉的,設定後需要啟動port才能使用。
習慣再用show ip interface brief看一下介面資訊:


Cisco800Router#show ip interface brief
Interface IP-Address OK? Method Status Protocol
ATM0 unassigned YES NVRAM administratively down down
Ethernet0 192.168.1.1 YES NVRAM up down

通常會注意兩個地方Status,與Protocol,Status可以用來檢驗自已有沒有下'no showdown'來把介面打開,而protocol則是用來看實體的連線狀況有沒有連線上。再來,IP設定好之後,會再為這個介面加上描述,方便未來查修與維護


Cisco800Router(config)#interface eth0
Cisco800Router(config-if)#description LAN Port to CoreSW

上面的'LAN Port to CoreSW'即為說明,重點是方便辨別而已。
(2) 閘道設定
IP設定好之後,會再設定gateway,好可以從其它網段連過來管理


Cisco800Router(config)#ip default-gateway 192.168.1.99 255.255.255.0

雖然在外部router上設定內部IP為default gateway是很奇怪的~這裡只是Demo指令,了解指令怎麼下就ok了
(3) SSH設定
通常客戶會要求把telnet給關掉,開啟SSH。當然!我們也必需這麼建議客戶才對, 設定之前一定要有主機名稱與網域名稱:


RouterA(config)#ip domain-name test.com

再來就是產生ssh的鑰匙


RouterA(config)#crypto key generate rsa general-keys modulus 1024
The name for the keys will be: RouterA.test.com
% The key modulus size is 1024 bits
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
*Mar 1 02:47:56.055: %SSH-5-ENABLED: SSH 1.99 has been enabled
產生好之後再進到vty介面裡面設定驗證方式,下面是用router本身來驗證:
RouterA(config)#line vty 0 181
RouterA(config)#login local

再指定只用ssh驗證,不用telnet:
RouterA(config-line)#transport input ssh

最後面的transport input ssh後面可以再加上telnet,如果沒有加的話就不能telnet進來了。
設好後,這時候登入你會發覺沒有帳號密碼可用@@再補一下:
RouterA(config)#username oya password 1234

都ok後就用ssh登入看看,也可以在router上透過show ip ssh 與show ssh來檢示狀態。
(如果是linux的OS,很容易遇到Host key verification failed,這是只要把家目錄下的.ssh清掉,再登一次就ok啦!)

(4) 開啟Web管理介面
如果要方便管理與VPN的設置,可以開啟Web管理介面,方法很簡單,指令如下:


Cisco800Router(config)#ip http server

再打開流覽器從之前設置的IP登入,預設的帳號是admin,密碼是之前設定enable的密碼。
老實說,這個介面通常是方便工程師做設定,後續客戶比較希望不要在router或switch上開啟http server,那就把它關閉吧^^


Cisco800Router(config)#no ip http server


IV. 儲存、備份、還原:
(1) 儲存設定資訊
該設的設了,該看的也看了,這時記得把設定的資料儲到 NVRAM裡面,簡單的說就像打Word打到一半,要記得存檔一樣,指令很簡單:


Cisco800Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]

其實全名是copy running-config startup-config 可以用簡稱,如果沒有自已取名稱,
直接Enter就會以startup-config命名。
(2) Backup & Restore
不論備份、還原,通常只會在這四個地方跑,flash(放IOS的地方)、running-config(放在RAM)、start-config(放在 nvram)、tftp(通常是工程師的電腦), 再搭配一個萬用指令'copy'就可以完成各式的備份與環原啦。但是…在做一切動作之前,一定要先確認兩件事,主機有沒有連通?(Ping一下就知道), 空間夠不夠? (如show flash看flash會不會爆掉) 再來就開始備份一個flash到tftp看看Sad其它只是start-config,running-config的替換而已)


Cisco800Router#copy flash:
Cisco800Router#copy flash:c820-sy6-mz.122-2.XH2.bin tf
Cisco800Router#copy flash:c820-sy6-mz.122-2.XH2.bin tftp://192.168.1.2
Address or name of remote host [192.168.1.2]?
Destination filename [c820-sy6-mz.122-2.XH2.bin]? c820-sy6-mz.122-2.XH2.bin
TFTP: error code 1 received - File not found

%Error opening tftp://192.168.1.2/c820-sy6-mz.122-2.XH2.bin (Undefined error)

嗯!如果你的tftp上面沒有檔案,就會出現這個問題,所以也先加一個一樣檔名的檔案,再試一次:


Cisco800Router#copy flash:c820-sy6-mz.122-2.XH2.bin tftp://192.168.1.2
Address or name of remote host [192.168.1.2]?
Destination filename [c820-sy6-mz.122-2.XH2.bin]?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3974852 bytes copied in 25.404 secs (158994 bytes/sec)

在cisco看到一堆驚嘆號就是好事!沒錯,我們成功了^^
另外補充一個較常用來將running-config儲到start-config的指令:


Cisco800Router#wri mem
Building configuration...
[OK]

這個指令很直觀,write memory就是直接寫入記憶體。

二、關於Switch
(1) Spanning Tree
spanning tree的目的在避免迴圈與廣擴風暴,會發生這樣的問題在於到同一個目的地可以透過兩台Switch的路徑到達,當然,這個設定很好,當其中一條路出現問 題時,有另外一條備援,但是IPv4的Broadcast會使用迴圈的廣擴災難產生@@,所以只要設定spaning tree之後,switch之間就會自動溝通,建立較快的路徑連線,關閉較慢的路線,避免迴圈問題,真好用。可以先用show spanning-tree了解目前現有的spanning-tree下:

引言回覆:
SW2950-1#sh spanning-tree
No spanning tree instance exists.

啥咪也沒有~嗯!那我們就來設一個吧!!

引言回覆:
SW2950-1(config)#spanning-tree mode mst
SW2950-1(config)#exit
SW2950-1#show spanning-tree
MST00
Spanning tree enabled protocol mstp
Root ID Priority 32768
Address 000e.6aea.a800
Cost 300019
Port 2 (FastEthernet0/2)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
Address 0015.f9ee.cf40
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2 Root FWD 200000 128.2 P2p Bound(RSTP)
Gi0/1 Desg BLK 20000 128.25 P2p

很自動地幫我們建好spanning-tree了,真是方便呀!接下來從這台Switch的Gi0/1對接的另一顆Switch上我們也開啟spanning-tree之後,看一下變化:


SW2950-1#sh spanning-tree
MST00
Spanning tree enabled protocol mstp
Root ID Priority 32768
Address 0009.b730.0c00
Cost 0
Port 25 (GigabitEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
Address 0015.f9ee.cf40
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2 Desg FWD 200000 128.2 P2p Bound(RSTP)
Gi0/1 Root FWD 20000 128.25 P2p
Connection closed by foreign host.

看到了嗎?原本Gi0/1為block port,現在變為 Forward了。

(2) VLAN
Virtual LAN顧名思意就是虛擬的、邏輯的,讓我們可以在同一台Switch上分割不同的brocast domain,讓坐在同一個辦公室卻不同部門的人流量是不會互通的^^
設定方式要先為開啟一個VLAN,然後再進到某個介面將VLAN分配給它:
開啟VLAN(下面開啟了VLAN2與VLAN3,且取了名稱)


SW2950-1(config)#vlan 2
SW2950-1(config-vlan)#name Sales
SW2950-1(config-vlan)#exit
SW2950-1(config)#vlan 3
SW2950-1(config-vlan)#name Engineer

再來進到介面裡將VLAN分配給它吧!


SW2950-1(config)#interface fa 0/5
SW2950-1(config-if)#switchport mode access
SW2950-1(config-if)#switchport access vlan 2

上面同時還指定了port為Access port,最後再利用show vlan確認一下,VLAN就這麼簡單而已!!接下來再加上VTP才好玩~

(3) VTP
VTP全名為VLAN Trunking Protocol,這是Switch對Switch或是Switch對Router之間的溝通協定,這是很棒的協定,如果沒有它的話我們只能在單一台 Switch上設定VLAN,而不能與其它設備的VLAN互通。(VTP是用VLAN1進行溝通的)
運作VTP的設備有三種模式: Server Mode,Transparent Mode,Client Mode。通常設定選擇一台為Server Mode,其它台為Client Mode即可; 而在舊環境加入新的設備,可以在新設備上設定Transparent Mode來學習。
首先在2950-2上設定為VTP Client:


SW2950-2(config)#vtp mode client
Setting device to VTP CLIENT mode.
SW2950-2(config)#vtp domain ringline
Changing VTP domain name from NULL to ringline

除了設定模式,也要指令Domain,相同Domain的VTP才會溝通喔!再來再到2950-1設定VTP Server:


SW2950-1(config)#vtp mode server
Setting device to VTP SERVER mode
SW2950-1(config)#vtp domain ringline
Changing VTP domain name from CISCO to ringline

接下來還要設定一個東西,叫Trunk Port,到指定的介面開啟Trunk,這樣就可以讓VTP溝通了Sad兩邊都要設喔)


SW2950-2(config)#interface gi 0/1
SW2950-2(config-if)#switchport mode trunk

這時可以用show vtp status 來看設定狀況,也可以在2950-2用show vlan看看有沒有與server同步了,再接下來可以試試從vtp server增加、刪除vlan看看vtp client有沒有同步。

三、關於Router
(1)Routing
1. 靜態路由
這是最基本的Routing,只要告訴Router,看到哪些網段時,就往哪裡丟,如:


RT2600(config)#ip route 10.0.0.0 255.0.0.0 192.168.1.1

上面說的就是任何到10.0.0.0/8網段的封包,都往192.168.1.1送。
靜態路由還有一個常用的就是Default Gateway,有幾種設定方式:


RT2600(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1
RT2600(config)#ip route 0.0.0.0 0.0.0.0 s 0/0
RT2600(config)#ip default-network 1972.168.1.1

上面三個指令其實是一樣的,挑喜歡的打就好。
2. 動態路由 – RIP
RIP全名為Routing Information Protocol, 這應該是最普遍的動態路由協定了,每30秒會傳送一次routing 資訊,最多可以到15個Hop。
在設定上也很簡單,只是靜態路由設定的是跨過router之後的網段,而動態路由設定的是直接介面相連的網段,因為Router會互相交換資訊,所以router本身只需要知道他自身連接的網段就夠了,下面設定了兩個網段192.168.1.0與10.1.1.0!


RT2600-2(config)#router rip
RT2600-2(config-router)#network 192.168.1.0
RT2600-2(config-router)#network 10.1.1.0

只設定一顆,利用show ip route會發覺仍然沒有Routing資訊,需要兩邊都設定才有:


RT2600-1(config)#router rip
RT2600-1(config-router)#network 172.16.6.0
RT2600-1(config-router)#network 10.1.1.0

完成後利用show ip route來看路由資訊


RT2600-1#show ip route
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.6.0 is directly connected, FastEthernet0/1
10.0.0.0/24 is subnetted, 1 subnets
C 10.1.1.0 is directly connected, FastEthernet0/0
R 192.168.1.0/24 [120/1] via 10.1.1.2, 00:00:01, FastEthernet0/0

最下面的R就是我們透過RIP所溝通到的路由資訊,也就是RIP設定完成^^
3. 動態路由 – IGRP
IGRP全名為Interior Gateway Routing Protocol,這是Cisco獨有的動態路由協定,所以只要有非Cisco的router就沒法溝通啦。目前新的IOS都不支援這個協定了,改用比IGRP更強的EIGRP來做。
4. 動態路由 – EIGRP


EIGRP全名為Enhanced Interior Gateway Routing Protocol,就是用來加強IGRP的協定,也一樣,是只有Cisco才有的,所以一定要環境全部是Cisco設置才能支援。
在設定上其實跟RIP差不多,只是多了一個自治系統的概念(Automous System,AS),AS的編號可以從1~65535,相同編號的自治系統才能進行溝通。
RT2600-1(config)#router eigrp 123
RT2600-1(config-router)#network 172.16.6.0
RT2600-1(config-router)#network 10.1.1.0

再透過show ip route看一下


Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.6.0/24 is directly connected, FastEthernet0/1
D 172.16.0.0/16 is a summary, 00:05:49, Null0
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.1.0/24 is directly connected, FastEthernet0/0
D 10.0.0.0/8 is a summary, 00:05:49, Null0
D 192.168.1.0/24 [90/30720] via 10.1.1.2, 00:01:00, FastEthernet0/0

看到路徑表中的D代表的就是EIGRP的路由成功啦!其中也發覺EIGRP會自已把我們的網段Auto Summary,所以要設定不連續的網段就再透過no auto-summary指令關掉這個功能。
5. 動態路由 – OSPF
OSPF全名為Open Shortest Path First,從名字就可以看出這個路由的兩大特性'Open'與'shortest path',Open代表的是它是開放的,任何廠牌都可以使用,所以也比EIGRP來的普及;另一個Shortest Path就是他選徑的特色,利用Dijkstra演算法選出最短的路徑,然後放入路徑表。
在設定上,OSPF應該是最複雜的了!!因為有很多要考慮的選項,不過在CCNA只需了解基本的設定就夠了


RT2600-1(config)#router ospf 111
RT2600-1(config-router)#network 172.16.6.0 0.0.0.255 area 0
RT2600-1(config-router)#network 10.1.1.0 0.0.0.255 area 0

上面ospf之後的號碼是識別碼,與EIGRP的AS(可設定1~65535)不同,這個號碼只對本機有效,OSPF使用的是Area的概念,即在 network設定的最後面數字,(可以設定1~42億),但一定要有Area 0才能溝通,下面利用show ip route來檢示 :

RT2600-1#sh ip route
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.6.0 is directly connected, FastEthernet0/1
10.0.0.0/24 is subnetted, 1 subnets
C 10.1.1.0 is directly connected, FastEthernet0/0
O 192.168.1.0/24 [110/2] via 10.1.1.2, 00:00:27, FastEthernet0/0

以o為開頭的即為OSPF的路由,在IP後面代表的為[AD/Cost]

(2) ACL
ACL全名為Access Control List, 即為一份存取清單,定義能夠存取或是禁止存取的網路流量,基本上分為兩種,標準式(Standard Access List)與延伸式存取清單(Extended Access List),標準式很單純的只做來源IP的檢查,而延伸式可做L3與L4的進階辨識。
在設定上會先設立Access-List,然後再到介面把Access-List套上去,標準式ACL方法如下:


RT2600-1(config)#access-list 99 permit 1.1.1.1 0.0.0.255
RT2600-1(config)#interface fa 0/1
RT2600-1(config-if)#ip access-group 99 in

上面的Access-List後面的數字用來辨示ACL種類,1~ 99還有1300~1999為標準式,而延伸式為100~199與2000~2699。而在介面所下的指令是access-group不是access- list,原因是你可以下很多的access-list,在介面叫需用access-group一次把它們全部召喚過來^^而接在其後的in或out則是 告訴介面是在流量進來時過濾或出去時過濾。下面是延伸ACL的設定方式:


RT2600-1(config)#access-list 100 permit tcp any any eq www
RT2600-1(config)#interface fa 0/0
RT2600-1(config-if)#ip access-group 100 out

編號100即為延伸式ACL,permit或deny某一段來源到某一段目標。最後再利用show access-list來顯示狀態


RT2600-1(config-if)#do show access-list
Standard IP access list 99
10 permit 1.1.1.0, wildcard bits 0.0.0.255
Extended IP access list 100
10 permit tcp any any eq www

就這麼簡單而已^^

(3) NAT
NAT全名為Network Address Translate, 即是位址轉換。轉換方式有三種,一對一(Stastic)、多對多(Dynamic Ip轉換)、多對多(OverloadingPort轉換)。
我們先來看一對一,常用在內部有一台主機使用內部IP要提供給外部服務時使用,如下:
Router(config)#ip nat inside source static 10.1.1.2 172.16.6.187
內部IP為10.1.1.2,只接mapping給172.16.6.187,設好之後要再到介面告訴介面,
它是內部還是外部:

Router(config)#inter fa0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#inter fa 0/1
Router(config-if)#ip nat outsid

再透過show ip nat translations來確認:


Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.16.6.187 10.1.1.2 --- ---

再來來看多對多用IP轉換(Dynamic),比如我們有一個C的電腦10.1.1.1/24,要用兩個外部IP(172.16.6.130,172.16.6.131)上網,設法如下:


R2600(config)#ip nat pool WAN 172.16.6.130 172.16.6.131 netmask 255.255.255.0

先把外部IP設到NAT的Pool


R2600(config)#access-list 1 permit 10.1.1.0 0.0.0.255

再把內部IP放到ACL 裡面


R2600(config)#ip nat inside source list 1 pool WAN

再來把外部與內部IP綁在同一條NAT規則,最後再到各介面指定是inside或是outside


R2600(config)#int fa 0/0
R2600(config-if)#ip nat inside
R2600(config-if)#int fa 0/1
R2600(config-if)#ip nat outside

雖然這樣設也可行,但是有兩百多台電腦搶兩個ip實在是很難過,再來看用Port轉換的方式,設法幾乎一樣:


R2600(config)#ip nat inside source list 1 pool WAN overload

看出差異了嗎?只是在最後面加上overload而已,也可以不指定pool,直接設介面就好:


R2600(config)#ip nat inside source list 1 interface fa 0/1 overload


(4) WAN的封裝
1. PPP
全名為Point-to-Point Protocol,這算是在實務上最常見的封裝方式,原因是這種封裝方式是透過Link Control Protocol提供認證、壓縮、多鏈路等功能,而且不像HDLC每一家都不一樣,PPP是可以通用在各廠牌的Router上運作的。
設置的流程,先進入串列介面、指定封裝方式、設置其它可進行驗證的Router名稱與密碼、在介面裡指定驗證方式:


Router(config)#int s 0
Router(config-if)#encapsulation ppp

自已的電腦也要設置hostname好跟其它台溝通


Router(config)#hostname RouterA

再設置能與自已溝通的Router名稱與密碼給它


RouterA(config)#username RouterB password 123456
RouterA(config)#int dialer 0

最後指定用chap或是ppp的認證方式,第一個為主要,第二個為備援,也可設置一個就好


RouterA(config-if)#ppp authentication chap pap

2. PPPoE
PPPoE的全名為Point-to-Point over Ethernet也就是把上面介紹運作於串列介面的PPP協定封裝到Ethernet上跑。
目前大部的份的家庭與小公司會使用DSL來與WAN連線,DSL為Digital Subscriber Line(數位用戶線路),是透過電話線的雙絞線連接電信業者的local loop,所以是很常見的router設定。電信業的小鳥龜進來的線通常是RJ45,所以會連線在router的ethernet port,而非串列Port。
在設定上分實體與邏輯介面的設定,先設定實體介面:


RouterA(config)#interface fa 0/0
RouterA(config-if)#pppoe enable group global
RouterA(config-if)#pppoe-client dial-pool-number 1

簡單的說,實體就是把pppoe打開,再指定邏輯播接的group; 下面是邏輯介面的設定:


RouterA(config)#interface dialer 0
RouterA(config-if)#ip address negotiated
RouterA(config-if)#dialer pool 1
RouterA(config-if)#dialer-group 1
RouterA(config-if)#ppp authentication chap callin
RouterA(config-if)#ppp chap hostname RouterB
RouterA(config-if)#ppp chap password 0 123456

老實說CCNA的書沒寫的很清楚,我的環境也沒有ADSL可以試,所以這份份還需要驗證。
3. FrameRelay
訊框中繼是個很好的概念,但在實務上卻不常見,我也不知道為什麼~可能被好用的ppp給取代了,也可能價格因素。設定方法如下:


RouterA(config)# inte s 0/0
RouterA(config-if)#encapsulation frame-relay
RouterA(config-if)#ip address 10.1.1.1 255.255.255.0
RouterA(config-if)#frame-relay lmi-type ansi
RouterA(config-if)#frame-relay interface-dlci 99

上面的LMI-Type是用來設定Local Management Interface,IOS在11.2版以後會自已抓。而DLCI(Data Link Connection Identifier)的設定是方便ruter與frame relay switch之間邏輯電路的識別,通常ISP會提供。

最後,建議可以練習Peter大的CCNA Lab來加強實戰能力:
http://www.vlab.com.tw/vlabforums/viewtopic.php?t=12027