Archive(Cisco)

概念

Archive是一個啟用自動保存的指令,能保存甚麼?Running-Config跟Config的Log。

Archive在管理上是很實用的,聽同學說在設備上的一舉一動都會被錄下來,這點可以透過Archive去達成,看得一清二楚。

由於Archive是思科的功能,似乎在其他家沒有,因此就不特別分類,並且在此篇完成實戰。

目的

瞭解Archive的設定。

設定

TFTP-Server(11.12.13.1)可以使用3CDeamon,將電腦跟R1串起來。


!R1
config t
int g0/0
ip addr 11.12.13.2 255.255.255.0
no sh
exit

首先要先PING到TFTP-Server,出現”!”就可以往下進行。

進入到Global Configuration mode,輸入指令 archive。

R1(config)#archive
R1(config-archive)#

這裡對archive其中兩個指令說一下,其他的還好。

path: path tftp://11.12.13.1/$h
這個指令可以把Running-Config用tftp存到11.12.13.1,$h為hostname,進到路徑會看到 R1-0之類的,-0為Config編號。

maximum:預設是10,如果沒有改,最多只會保留10個archive config。

path tftp://11.12.13.1/$h

接著手動保存。

end
archive config

可以看到冒出”!”,config透過TFTP方式成功送到Server。

show archive 

可以看到第一筆已經在出現了,編號為0。

這樣有個狀況,沒有辦法在Config有更動的時候,即時備份出一份。一旦Config被保存的時候,Archive就應該馬上匯出一份。

R1(config-archive)#write-memory

馬上來嘗試有沒有效果。

copy running-config startup-config
write memory

這兩者都會觸發Archive,然後直接輸出一份config。

要是忘記保存呢?是不是就當前Running-Config就不會留下了?可以下指令,每隔一段時間就執行archive,去保存config。

為了區分是Running-config還是Startup-config,所以先做一點變更。

R1(config)#
int loopback 1
ip addr 1.1.1.1 255.255.255.255
exit
archive
time-period 1 !每隔一分鐘就保存Running-config

這裡很明顯了,是保存Running-config。等待一分鐘來看看,確實有收到,裡面也有loopback的設定。

由於有了變動,現在,要去嘗試版本控制最重要的功能:發現各版本區別。

R1#
show archive config differences tftp://11.12.13.1/R1-0

這是比較Running-config跟指定的檔案差別,跟第一個檔案相比,變動的部分都會顯示出來,就能知道兩者差異。

不過,這是還不夠的。這只能看到Config的變動,但是沒有順序,沒有誰下的,這樣對於安全性是不夠的。接下來要啟用log config,這樣一旦對設定有疑問,就能看出要找誰。

R1(config-archive)#log config
R1(config-archive-log-cfg)#logging enable
R1#show archive log config all
 idx   sess           user@line      Logged command
    1     1        console@console  |  logging enable

看到了第一個被記錄的指令是由console連入,下 logging enable。

接著,新增其他的帳號。

R1(config)#
username jn privilege 15 password jn
line vty 0 4
login local
exit
R1#show archive log config all
 idx   sess           user@line      Logged command
    1     1        console@console  |  logging enable
    2     1        console@console  |  username jn privilege 15 password jn
    3     1        console@console  |  !config: USER TABLE MODIFIED
    4     1        console@console  |line vty 0 4
    5     1        console@console  | login local
    6     1        console@console  | exit

這裡可以直接看到,新增使用者jn的密碼是jn。密碼是很敏感的事情,因此需要被隱藏起來。

R1(config)#
archive
log config
hidekeys
exit
exit
username jn2 privilege 15 password jn2
R1#show archive log config all
 idx   sess           user@line      Logged command
    1     1        console@console  |  logging enable
    2     1        console@console  |  username jn privilege 15 password jn
    3     1        console@console  |  !config: USER TABLE MODIFIED
    4     1        console@console  |line vty 0 4
    5     1        console@console  | login local
    6     1        console@console  | exit
    7     2        console@console  |archive
    8     2        console@console  | log config
    9     2        console@console  |  hidekeys
   10     2        console@console  |exit
   11     2        console@console  |  exit
   12     2        console@console  |username jn2 privilege 15 password *****
   13     2        console@console  |!config: USER TABLE MODIFIED

新增的使用者jn2,看到的密碼變成*****。

接著使用telnet登入,然後新增使用者jn3。

R1#

config t
username jn3 privilege 15 password jn3
exit
R1#show archive log config all

   14     3             jn@vty0     |username jn3 privilege 15 password *****
   15     3             jn@vty0     |!config: USER TABLE MODIFIED

看到連入的jn做了那些設定。

不過這裡log config只是暫存的,一旦重新開機,就會全部消失。

這些log config紀錄可以馬上傳到syslog server,讓log可以被保存。

R1(config-archive-log-cfg)#notify syslog !也要另外設定logging server

再下一些指令,從syslog server上看,的確可以看到。

到這裡已經可以把誰下了甚麼指令跟順序都記錄起來,方便日後的管理。

IP SLA – Jitter and Connectivity

Service-level Assurance(SLA)是一個主動偵測的Agent,告訴Agent要做甚麼,安排執行,之後就能收到結果,然後依結果去調整某些設定。

IP SLA在教學上多半使用 ICMP-echo,但Cisco CCNP ENARSI需要還要學會:jitter, tracking objects, delay, connectivity)等的應用。

為此,就簡單來帶過一下IP SLA Jitter and Connectivity。

設定

R1先接NAT,透過電腦可以做NAT然後連上網際網路。

R1為設定IP SLA的設備,然後IP SLA目的端為R2或網際網路。

如果要看IP SLA執行的結果,可以在輸入指令:

show ip sla statistics

Jitter

jitter是甚麼?先來點簡單地介紹相關名詞。以下是關於udp-jitter的相關統計值。

IPSLA operation id: 1
Type of operation: udp-jitter
        Latest RTT: 17 milliseconds
Latest operation start time: *08:04:34.043 UTC Tue Feb 2 2021
Latest operation return code: OK
RTT Values:
        Number Of RTT: 2                RTT Min/Avg/Max: 15/17/20 milliseconds
Latency one-way time:
        Number of Latency one-way Samples: 0
        Source to Destination Latency one way Min/Avg/Max: 0/0/0 milliseconds
        Destination to Source Latency one way Min/Avg/Max: 0/0/0 milliseconds
Jitter Time:
        Number of SD Jitter Samples: 1
        Number of DS Jitter Samples: 1
        Source to Destination Jitter Min/Avg/Max: 7/7/7 milliseconds
        Destination to Source Jitter Min/Avg/Max: 2/2/2 milliseconds
Packet Loss Values:
        Loss Source to Destination: 0           Loss Destination to Source: 0
        Out Of Sequence: 0      Tail Drop: 0
        Packet Late Arrival: 0  Packet Skipped: 18
Voice Score Values:
        Calculated Planning Impairment Factor (ICPIF): 0
        Mean Opinion Score (MOS): 0
Number of successes: 25
Number of failures: 5
Operation time to live: Forever

Jitter跟Voice相關,主要來測量語音封包的品質。 參考

Jitter抖動,為什麼會造成抖動?當語音封包傳遞時,被切成許多片段,而各片段抵達目的所經過的時間不一,抵達時間與平均的差異為Jitter。

目的端會即時解碼播放,這就要會讓還原的聲波跟當初的波型產生不一樣。抖動會很明顯地影響聽者的感受,因為波型不同,聽起來就是不同的聲音。因此jitter得在一定程度以下,才能保證語音品質。

※RTT(Round Trip Time):一來一往的時間。

簡單介紹完Jitter要開始講設定,ip sla的Jitter,除了自身啟用ip sla,還需要目的端成為「ip sla responder」才能正常運作。

語音是一來一往的,目的端收到語音封包,就能計算那些相關數值,然後把數值回應回去。

!R1
ip sla 1
udp-jitter 10.1.12.2 65000
timeout 5000
frequency 20
exit
ip sla schedule 1 start-time now life forever
!R2
ip sla responder
ip sla responder udp-echo ipaddress 10.1.12.1 port 65000

順便補充,ip sla tcp-connect的設定也跟jitter很像,也需要目的端啟用responder。

Connectivity

對一般使用者來說,上網是最常用到的。因此,保證網站能被連線到是非常重要的。

這很有一個很棒的網站:https://jnnetlab.com/
對!就是這個部落格~~

如果哪天不能連到這裡,就要趕快打電話去罵ISP,要他們趕快恢復網路連線!

要怎麼樣去下 IP SLA 呢?

ip sla 30
http get http://jianning0915.wordpress.com/ name-server 168.95.1.1
timeout 5000
frequency 60 !最小值
exit
ip sla schedule 30 start-time now lift forever

心得結論

由於在ENARSI考了一題ip sla http的設定,不會,就只好事後惡補。ip sla搭配tracking object可以達到自動調節網路結構的功能,算是Soft-Defined(SD)系列的一個起步。

測試 -> 結果 -> 調整 -> 測試 -> ……

這要寫起出來,可以變得很複雜。就像Policy-map一樣從ACL一路往上建。善用SLA,就能一路往上蓋,最後變成SD Network。

SLA這章節要瞭解常見的網路服務品質好壞,是取決於甚麼。

uRPF

概念

Reverse Path Forwarding是一個安全機制,它檢查IP來源是否是合法的區域,一般來說都是看目的地然後轉送,因此檢查來源IP便是逆向的。

為了防止甚麼?如果偽冒一個IP去PING目的端,目的端會回給偽冒的IP,然後被偽冒的端就會收到目的端的封包。這是一種攻擊手法。如果做了反向路徑檢查,就會發現偽冒的IP不是來自Routing Table上的方向,然後drop。

找到不錯的影片講解:[Chin] DoS、DDoS攻擊原理說明與Cisco解決方案uRPF(unicast Reverse Path Forwarding)

uRPF有三種設定模式

Strict嚴格:看 來源端的IP 跟 來源端的介面。來源端介面不能到來源端IP則drop。

Loose寬鬆:只看 來源端的IP。

VRF:跟Loose一樣,但只作用於VRF上。

※在Cisco設備上,CEF需要啟用,才能運作uRPF。

一般來說uRPF是不會拿default route做檢查,如果Router從default route來了一個沒有學到網段的封包,就會drop。這裡可以下指令,避免被錯誤drop。

ip verify unicast source reachable-via {rx | any} allow-default

然後uRPF也不能自己ping自己,如從Loopback去ping到Gigabitethernet0/0,在uRPF啟用時,這樣的封包會被drop,但可以下指令避免。

ip verify unicast source reachable-via {rx | any} allow-self-ping

實戰

uRPF – Strict與Loose:比較這兩者的差別,順便帶入allow-default跟allow-self-ping。

uRPF – Strict與Loose

本篇藉由實作去了解uRPF要如何設定,以及實際的運作情形。

Strict跟Loose的共同點是會去查來源端IP是否可經由Routing Table到達,而Strict是多上一個條件:要從來源端的介面去到達。

甚麼時候要用Strict?甚麼時候要用Loose?取決於介面所在的位置。

內部的網路環境都是封閉且已知的,就可以使用Strict。如L2到L3。

如果是開放的且已知路由,收到的封包已經轉了好幾手,就可以設定Loose。如L3到L3。

allow-default適用會用到default route的介面。如L3到ISP。如果內部網路不連外,就不用下這個選項。

設定

R1為目的端,R2跟R3為ISP,R4是攻擊端或是ISP2。

!R1
conf t
int g0/0
ip addr 12.1.2.1 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 12.1.2.2
!R2
conf t
int loopback 1
ip addr 2.2.2.2 255.255.255.255
ip ospf 1 a 0
exit
int g0/0
ip addr 12.1.2.2 255.255.255.0
no sh
ip ospf 1 a 0
int g1/0
ip addr 23.2.3.2 255.255.255.0
no sh
ip ospf 1 a 0
exit
router ospf 1 
exit
ip route 0.0.0.0 0.0.0.0 23.2.3.3
!R3
conf t
int loopback 1
ip addr 3.3.3.3 255.255.255.255
ip ospf 1 a 0
int g0/0
ip addr 23.2.3.3 255.255.255.0
no sh
ip ospf 1 a 0
int g1/0
ip addr 34.3.4.3 255.255.255.0
no sh
ip ospf 1 a 0
exit
router ospf 1

exit
ip route 0.0.0.0 0.0.0.0 34.3.4.4
!R4
conf t
int loopback 1
description Fake_WAN
ip addr 99.99.99.99 255.255.255.255
int loopback 2
description Fake_R2
ip addr 2.2.2.2 255.255.255.255
int loopback 3
description Fake_R2
ip addr 12.1.2.2 255.255.255.255

int g0/0
ip addr 34.3.4.4 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 34.3.4.3

首先要在R1打開debug,方便觀察。

debug ip icmp

接著先在R4用正常ping到R1

R4#ping 12.1.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms

觀察R1

R1#
*Feb  2 05:58:28.667: ICMP: echo reply sent, src 12.1.2.1, dst 34.3.4.4

可以看到R1有收到ICMP並且成功回覆。

接著用R4的Loopback 1(99.99.99.99)去ping到R1。

R4#ping 12.1.2.1 source loopback 1

R1#
*Feb  2 06:01:22.507: ICMP: echo reply sent, src 12.1.2.1, dst 99.99.99.99
*Feb  2 06:01:22.527: ICMP: dst (12.1.2.1) host unreachable rcv from 12.1.2.2

99.99.99.99並不在R2的RoutingTable裡,不過還是把ICMP傳到R1去了。這是因為轉送時只檢查目的端在不在RoutingTable,這一點,可以被利用去做網路攻擊。

先檢查R2的G1/0是否有啟用 uRPF ,如果沒有就啟用。

R2#show cef interface g1/0

...
  IP unicast RPF check is disabled

在R2的G1/0下指令,將uRPF啟用,由於G1/0是連接L3跟L3,所以使用Loose模式。

ip verify unicast source reachable-via any

any為Loose。rx為Strict。

回頭用R4的Loopback 1(99.99.99.99)去ping到R1,發現R1已經沒有任何log跳出來。

這次改用R4的Loopback 2(2.2.2.2)去ping到R3的Loopback,先在R3打開debug並且用loose的uRPF檢查。

R3#debug ip icmp
ICMP packet debugging is on
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int g1/0
R3(config-if)#ip verify unicast source reachable-via any


2.2.2.2是R2的,現在被R4給冒用,如果在R3的G1/0下Loose模式,會因為在RouteTable中找得到,所以冒用IP的ICMP會被轉送。

現在改下Strict,再PING,由於冒充R2的ICMP來自不是2.2.2.2所屬網段的介面,故直接被drop,R3連log都不會跳出來。

R3(config-if)#ip verify unicast source reachable-via rx

最後一個指令:allow-default。

其實R4的Loopback 1也可以當成是外部合法的IP,但因為Default Route不會被RPF作為檢查,所以在半途就RPF檢查給drop。

Default Route是連接網際網路很重要的Route,如果不能正常轉送,就會不能正常上網。

這次要讓R4的Loopback1(99.99.99.99)跟R1能通,因此要在R2跟R3啟用allow-default。

R2(config)#int g1/0
R2(config-if)#ip verify unicast source reachable-via any allow-default

R3(config)#int g1/0
R3(config-if)#ip verify unicast source reachable-via rx allow-default

結果


R4#ping 12.1.2.1 source loopback 1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.2.1, timeout is 2 seconds:
Packet sent with a source address of 99.99.99.99
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/49/64 ms

結論心得

RPF檢查是很實用的防禦手段,可以盡早阻擋住冒用IP的攻擊。反向檢查也有一點防火牆的味道。

不過想一想,萬一這個沒有下好,就會變成大災難,因此要先很瞭解之後,才建議使用。

為了想出一套清楚的講說跟實際應用,花了不少時間在這之上。能夠想清楚,也是算是有收穫的。

PM – Policing and Shaping

概念

Police是將超過限制值得流量直接drop,非常粗暴但對控制流量非常有效。

Shape則是把超過限制值的用queue存起來,之後讓再將儲存的封包放出,盡可能把流速控制住。

如果你是家庭用戶,ISP用Police會給人非常不爽的體驗,一旦超過流量連線會斷斷續續。Shape只會讓網路變慢,至少還能保持連線。TCP的機制能控制傳輸速度,Shape就可以穩穩路。

設定

這個設定不簡單,但會是很棒的思考Policy-map的過程。

首先Police,設定在R1跟R2的網域,並且限制100KB。
接著Shape,設定在R3的網域,並且限制100KB。

為了更直觀的觀察流量,使用SNMP是很方便了,因此有了Cloud。(設定方法請查SNMP

最後要讓Policy-map用在哪裡?連接SNMP那條嗎?如果ACL沒有只限制ICMP,SNMP就可能被納入ACL,然後SNMP封包被Police或Shape,就會讓我們看不到即時流量圖,圖型會有Gap而不連續。

R5變成了丟流量的目的地,R1、R2、R3皆Ping到R5作觀察。

!R1
conf t
int g0/0
ip addr 10.1.14.1 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 10.1.14.4

!R2
conf t
int g0/0
ip addr 10.1.24.2 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 10.1.24.4
!R3
conf t
int g0/0
ip addr 10.1.34.3 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 10.1.34.4

!R5
conf t
int g0/0
ip addr 10.1.54.5 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 10.1.54.4

!R4
conf t
int g0/0
ip addr 10.1.14.4 255.255.255.0
no sh
exit
int g1/0
ip addr 10.1.24.4 255.255.255.0
no sh
exit
int g2/0
ip addr 10.1.34.4 255.255.255.0
no sh
exit
int g3/0
ip addr 10.1.54.4 255.255.255.0
no sh
exit
int g4/0
ip addr 11.12.13.254 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 11.12.13.1
! snmp
snmp-server community PM-Policing_and_Shaping

要完成Policy-map,得從低階一路組成高階,先下ACL。※這裡指定icmp

! ACL
ip access-list extended R1
permit icmp 10.1.14.0 0.0.0.255 any 
ip access-list extended R2
permit icmp 10.1.24.0 0.0.0.255 any
ip access-list extended R3
permit icmp 10.1.34.0 0.0.0.255 any
exit

ACL下完了,才能下Class-map。

! Class-map R1_or_R2
class-map match-any R1_or_R2
match access-group name R1
match access-group name R2
exit
! Class-map R3
class-map match-any R3
match access-group name R3
exit

有了Class-map,才能下Policy-map。

! Policy-map
policy-map Policing_and_Shaping
class R1_or_R2
police 800000 !800000 bit/sec = 100000 byte/sec = 100KB/sec
exceed-action drop
exit
exit
class R3
shape average 800000
queue-limit 10000 bytes
queue-limit 3000 ms
queue-limit 100 packets
exit
exit

最後一步,就是將Policy-map應用到某處,Policy-map就成為介面的Service-Policy其中一份子。

! Apply => service-policy
int g4/0
service-policy output Policing_and_Shaping
exit

之後分別用R1跟R3去PING到R5,觀察開始!

PING的機制是收到後就會馬上回傳,如果沒收到,等到Timeout就會傳下一次。

這邊流量限制是100KB。

!R1
ping 10.1.54.5 size 1000 repeat 500
ping 10.1.54.5 size 2000 repeat 400
ping 10.1.54.5 size 4000 repeat 300 !開始出現 . 
ping 10.1.54.5 size 8000 repeat 100
ping 10.1.54.5 size 10000 repeat 50
ping 10.1.54.5 size 16000 repeat 20 ! ......

這裡要注意一下MTU,會讓封包被切成片斷。

!R3
ping 10.1.54.5 size 1000 repeat 500
ping 10.1.54.5 size 2000 repeat 400
ping 10.1.54.5 size 4000 repeat 300 
ping 10.1.54.5 size 8000 repeat 100
ping 10.1.54.5 size 10000 repeat 50
ping 10.1.54.5 size 16000 repeat 20 

Shape只會讓速度變慢,加長回應的時間,不至於被判斷成 . 。

結論心得

這也是我第一次使用靠自己去弄出來,雖然課堂有教過。可以搭配MTU去觀察Fragment。之後會運別的PM,達成不同的條件限制,然後用SNMP觀察PBR的應用成果。

Policy-map

這是進階應用,從最基本的ACL一行條件篩選,到Class-map多行條件篩選,再到Route-map篩選並且設定,最後才會來到Policy-map並且應用在實際面向上,成為Service-policy。

QoS的正是Service-policy,也是ISP的關鍵設定,在生活中更是實用。除了QoS,還能做到Policy Based Routing,可以針對不同使用情境走不同路線,避免關鍵時候雍塞。

此外,像是防火牆之類的,也是如Policy-map這類層層堆起出規則,因此,這一部分只要理解是如何運作,就能幫助很多網路應用上的規則設定。

實戰演練

PM – Policing and Shaping:搭配SNMP,施用Policy-map作流量控制,親手實現Policing and Shaping的流量體驗。

VRF – 實戰 – Global

概念

VRF彼此間不相通,就像VLAN。有的時候,是需要把它們相連互通,跨越那道虛擬的圍牆。

Leaking就像從牆壁漏水,漏水不是全面相通,只有部分可以通。因此Leaking可以選擇性地把部分Route轉到別的地方。

這裡採取一種簡單的設定,使用 ip route,去指定static route,因為VRF是用介面瓜分,因此可以把符合特定網段的Route直接丟到特定VRF的介面,就可以達到跨VRF的溝通。

這篇是純L3的Router版本,L2又有一種VLAN版本。

這屬於Policy Based Routing(PBR)的運算。

目標

學會使用Global去連接兩個不同的VRF,並成功使R1跟R4通、R2跟R4通、R1跟R2不通。

設定:參考

!R1
conf t
int g0/0
ip addr 10.1.1.1 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 g0/0
conf t
int g0/0
ip addr 10.1.2.2 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 g0/0
conf t
ip vrf R1
exit
ip vrf R2
exit
ip vrf R4
exit
int g0/0
ip vrf forwarding R1
ip addr 10.1.1.3 255.255.255.0
no sh
exit
int g1/0
ip vrf forwarding R2
ip addr 10.1.2.3 255.255.255.0
no sh
exit
int g2/0
ip vrf forwarding R4
ip addr 10.1.4.3 255.255.255.0
no sh
exit
!R4
conf t
int g0/0
ip addr 10.1.4.4 255.255.255.0
no sh
exit
ip route 0.0.0.0 0.0.0.0 g0/0

這裡R1、R2、R4使用Default Route指向R3,R3要身上要起三者的VRF,並且作為轉送的角色。

ip route vrf <vrf-name> <network> <subnet-mask> <next-hop ip> global
!R3
ip route vrf R1 10.1.4.0 255.255.255.0 10.1.4.4 global
ip route vrf R2 10.1.4.0 255.255.255.0 10.1.4.4 global
ip route vrf R4 10.1.1.0 255.255.255.0 10.1.1.1 global
ip route vrf R4 10.1.2.0 255.255.255.0 10.1.2.2 global

預設的Routing Table為global,這指令是把讓VRF的static route的next-hop ip往global裡面找。

此時,Global Routing Table應該是沒有任何Route,因此還需要在此下Static Route去決定下一跳。

! R3
ip route 10.1.1.0 255.255.255.0 g0/0
ip route 10.1.2.0 255.255.255.0 g1/0
ip route 10.1.4.0 255.255.255.0 g2/0

來測試ping能不能通吧,以下是R1跟R4。

運作流程:

  • R1 ping R4 發出封包,傳給R3
  • R3 的G0/0接收到封包,查VRF: R1的Routing Table,轉到 Global Routing Table。
  • R3 查Global Routing Table,從G2/0出去。
  • R4 收到封包,回傳。
  • R3 的G2/0收到封包, 查VRF: R4的Routing Table,轉到 Global Routing Table。
  • R3 查Global Routing Table,從G0/0出去。
  • R1 收到封包,顯示有ping到。

再來換成R1跟R2,是不會通的,如果會通就要檢查一下有沒有設定錯誤。

結論心得

因為考試有考,所以特別來練習。概念是很簡單的,學一下就能理解。雖然主體是VRF,但實際是PBR的功能,當然也是可以使用Route-map去過濾與設定。

雖然能夠跨越VRF,能互通就代表要注意IP衝突。路徑上可以彈性自訂,相對要注意設備上的Route是否有設定齊全。

VRF

概念

Virtual Routing and Forwarding(VRF),像是L3版本的VLAN,可以把Router再分出虛擬Router,這有甚麼好處?就如同VLAN做切割,兩個區域使用相同的IP,不會互相干擾。

在Default Routing Table,所有的Routing都在同一張表,這樣子,遇上相同Network就會出問題。此外Routing Table同時有客戶A跟客戶B等,這樣子也會有隱私問題,客戶A跟客戶B的Routing不該在同一張表上。

VRF可以切出Virtual Router(VR),可以跑Routing Protocols(RP),不同VR也可以重疊IP,能運作Router的功能,並且解決了資料庫分離的需求。

VRF中有Route distinguisher(RD)跟Route Target(RT)。

RD功能是在IP前面加上前綴,這樣能讓IP重疊之下,還是能區分出是哪個VRF的IP。相同RD可以視為是同一個網路。

RT有import跟export,在同一個RD之下,對方的export跟自己的import對上,就能從對方學到route。自己的export跟對方的import對上,就能把自身的route傳給對方。

在思科的VRF

先命名VRF,然後在介面設定VRF,並且設定IP位置。要注意順序!介面中設定VRF會取消掉IP位置的設定。

其餘大多功能,只要在後綴或前綴加上VRF,就能指定是在哪個VRF上運行。

實戰演練

VRF-global:三個VRF:R1、R2、R4,R1、R2區域的設備都要能到R4,但R1、R2彼此不互通。

認證考試學習資源匯整

這裡整理一些學習資源,除了需要付出或管道才能得到的題庫,也需要再從其他地方獲取去比較或補充,以免準備得過於單一,考試變題或有大量的新題就直接失敗。

免費線上題庫:

免費電子書資源:

  • PDF Drive:書很多,但很多都是舊書。
  • SoftArchive:有不少的書,一些比較冷門的會有,下載需要等免費空間。
  • Z-Library:對於思科的電子書有不少。

LAB參照:

BGP – 實戰 – Confederations

概念:

iBGP peer不會傳遞從別的iBGP peer上學到的route,這讓iBGP peer間的很難互通。不同於一般IGP的建立,BGP Neighbor建立不需要相鄰著,可以跨越設備。當如果要用鄰居關係形成傳遞鏈傳遞route,就需要使用下指令。

有兩種:Reflector、Confederation

這裡跳過了 Reflectors ,還是簡單描述Reflector指定鄰居作為Client。
1. 收到非Client的iBGP Neighbor傳來的Route,會傳遞給Client的iBGP Neighbor。
2.收到Client的iBGP Neighbor傳來的Route,會傳給其他iBGP Neighbors。
3.收到eBGP的Neighbor傳來的Route,會傳給其他iBGP Neghbors。

Reflector機制算是簡單的。然而BGP適用於對外,跨組織甚至於跨國際,有沒有甚麼方法,讓組織或國際內的AS,在對內時AS是有所區分,在對外時,外面看來的AS是一致的?

另外一種:Confederation

BGP形成鄰居是需要兩者互指,如果AS號碼不一樣是eBGP,相同則是iBGP。如果要多個AS對外是一致的,相當於形成多個AS形成一個聯盟Confederation,就需要下指令:

bgp confederation identifier <AS number>

如果要使用 Confederation,設備本身的BGP AS是內部AS,然後用以下指令去指定同一聯盟不同的peers ASs。

bgp confederation peers <AS number>

要是AS沒有納入在這兩種中,就會不斷報錯,無法形成鄰居。

%BGP-3-NOTIFICATION: received from neighbor 10.1.48.8 2/2 (peer in wrong AS) 2 bytes 00C8

目標:

學會如何設定 BGP Confederation,並且了解其運作。

設定:

!R1
conf t
int g0/0
ip addr 10.1.12.1 255.255.255.0
no sh
int loopback 1
ip addr 1.1.1.1 255.255.255.0
router bgp 100
redistribute connected
neighbor 10.1.12.2 remote-as 200
exit
! R2
conf t
int g0/0
ip addr 10.1.12.2 255.255.255.0
no sh
int g1/0
ip addr 10.1.23.2 255.255.255.0
no sh
int loopback 1
ip addr 2.2.2.2 255.255.255.0
router bgp 65100
bgp confederation identifier 200
bgp confederation peers 65200
redistribute connected
neighbor 10.1.12.1 remote-as 100
neighbor 10.1.23.3 remote-as 65200
exit
!R3
conf t
int g0/0
ip addr 10.1.23.3 255.255.255.0
no sh
int g1/0
ip addr 10.1.34.3 255.255.255.0
no sh
int loopback 1
ip addr 3.3.3.3 255.255.255.0
router bgp 65200
bgp confederation identifier 200
bgp confederation peers 65100
redistribute connected
neighbor 10.1.23.2 remote-as 65100
neighbor 10.1.34.4 remote-as 300
exit
!R4
conf t
int g0/0
ip addr 10.1.34.4 255.255.255.0
no sh
int loopback 1
ip addr 4.4.4.4 255.255.255.0
router bgp 300
redistribute connected
neighbor 10.1.34.3 remote-as 200
exit

流程:

照著貼上設定之後,可以發現BGP很快就形成Neighbor,但是route等一下才會交換。

稍後片刻,可以看到R1有了R4的route,觀察AS-Path,200 300 i。

中間有 AS 200 其實是由 65100 跟 65200 組成,AS range 在64512 – 65535是Private AS。

show ip bgp

觀察R2收到AS 65200的route會加上括號(),如果要對外面的AS傳送route,整個()都會被換成 <identifier AS>。

同一AS聯盟的route其AD為多少?

接著,新增一個R5,AS65300,納入AS200聯盟。是否R2的peer AS要增加R5的?R5能夠正常收到R2的route嗎?這個實際操作就知道了。

結論心得:

BGP Confederation好用!

可以解決iBGP間需要彼此交換route得形成Full-mesh的麻煩設定,只需要對左右鄰居設定稍微改變就能形成如IGP那般的route交換鏈,能夠省下很多設定時間。

也可以讓BGP區分內外,可以讓private AS轉換成Public AS,就很像NAT。

IPv6

特別獨立出來,著重於IPv6跟IPv4不同之處。基本知識請去Google。

IPv6設定

如同IPv4,IPv6有靜態指定跟DHCP。
不同IPv4,只有兩種型態指定,IPv6有更多種型態,更複雜。

IPv6最特別的地方就是有主動發現鄰居的能力,然後得到資訊,一行通用簡單指令就能自動產生Public IP,不需要DHCPv6-Server去發送IPv6。

IPv6也不需要做NAT,因此在Gateway設備實際上是用兩個Public Network,一個是ISP內部路由用的,一個是指派給客戶用的,客戶端的設備都指向Gateway,由Gateway設備做路由轉送就可以順利上網。

IPv6的ARP: Neighbor Discovery Protocol(NDP) 參考 參考2

ARP的功能是為了取得鄰居的IPv4與MAC對照關係,在IPv6上,變成了NDP,可以得到更多資訊,相對也有了更多的型態。

NDP主要運作是透過ICMPv6進行,NDP有五種訊息種類,對應ICMPv6不同Type。(※ICMPv6 Types)

  1. RS — Router Solicitation (ICMPv6 type 133)
  2. RA — Router Advertisement (ICMPv6 type 134)
  3. NS — Neighbor Solicitation (ICMPv6 type 135)
  4. NA — Neighbor Advertisement (ICMPv6 type 136)
  5. Redirect (ICMPv6 type 137)

今天有兩個路由器,啟用IPv6,介面會自動產生Link-Local型態IPv6。當設備要到另外一個IPv6位置,就會發出NS,而鄰居收到就會回傳NA。

NS跟NA都是使用Link-Local類型的IPv6。

當路由器介面啟用IPv6,會透過Link-Local發出RA,去告訴其他設備IPv6的相關設定,如Prefix等。如果收到RA的設備介面有啟用autoconfig,就會使用其內含的Prefix資訊,去形成一個IPv6。

RS則是在介面啟用時,會直接發出,告訴路由器要發出RA,當路由器收到RS,就會立刻回傳RA。

Switch – HP 1950

今天公司拿到了一台HP 1950,重新紀錄學習一台 Switch 的操作。

  1. Console連入
  2. 密碼復原
  3. 與其他廠商的指令差異觀察
  4. 設定snmp
  5. 設定port-morrior
  6. 結論請愛用GUI

Console連入

這邊要注意,連入速率是「38400」,不是預設的9600。

密碼復原

參考這裡

1950 xtd-cli-mode password:foes-bent-pile-atom-ship
※其餘型號的Password,參考
1910: 512900
1920: Jinhua1920unauthorized

由於在xtd-cli-mode的阻擋,不小心將startup-config抹掉,已經Fail了。今天被問到熟不熟,從來沒碰過,還好說不熟,不然要一人去客戶那邊被電了。

復原密碼的流程,可以參考這裡。使用tftp去取出startup-config。

與其他廠商的指令差異觀察

功能Aruba CiscoHP
進階設定(config mode)Conf tconf tsystem-view
指令儲存write memorrycopy run startupsave
Tab剩餘指令補齊剩餘指令補齊第一個符合指令補齊
顯示STPshow spanning-treeshow spanning-treedisplay stp

設定snmp

system-view
snmp community jn user-role network-admin

設定port-mirrior

這裡選擇48當作mirror的出口,47為側錄的Port。

mirroring-group 1 local
mirroring-group 1 mirroring-port GigabitEthernet 1/0/47 both
mirroring-group 1 monitor-port GigabitEthernet 1/0/48

用電腦Ping Switch,經由wireshark可以驗證有成功轉出,但看不到目的端不是電腦的封包,因為預設會被丟棄。從PRTG上觀察,Monitor Port流量只剩一半。

結論請愛用GUI

除非沒有密碼,得經過一些步驟撈出Config進行後續處理。不然建議使用GUI介面,可以避免打xtd-cli-mode輸入一組特別長字串。

GUI的使用體驗也不錯,做得不錯,能很輕易的設定想要的參數,數量少就可以一台台加。(超過三台還是用CLI吧,愛惜時間。)