2015年12月4日 星期五

「轉」Juniper總結—路由器體系結構

原文:http://flashrazer.blog.51cto.com/874229/1357286

此篇文章說明了  junos 的精華,值得深入瞭解。
撰文者為大陸人,用詞方面自行轉換即可。

====

Juniper的路由器分為兩個部分——RE和PFE。不過貌似大部分路由器都分為這兩個部分。。。。
   wKioL1L1yKfwFTUAAAA1z9LU1VE967.jpg
Routing Engine:
  當 密碼授權通過之後,用戶就進入了RoutingEngine中,在其中可以進行軟件升級,配置,ping,telnet等操作。這是邏輯存儲JunOS的 位置,路由器通過Routing Engine操作各種路由協議,比對各個路由之後選出最佳路由。然後將最佳路由裝載進ForwardingTable,並將Forwarding Table拷貝進Packet Forwarding Engine,在PacketForwarding Engine中的轉發表才可以真正轉發用戶數據。
包括組件:
Routing Engine2:存在於M系列路由器中,333MHz處理器和768MB內存,80MBflash存儲和6.4GB的硬盤。M40包括LS 120 外部存儲硬盤,其他型號為可移除的PCMCIA閃存卡作為外部存儲。
Routing Engine3:存在於T系列路由器中(T320,T640),最新的JunOS可以讓M系列路由器也加載該引擎。660MHz的處理器,2GB內存,128MB內部flash30GB硬盤,可移除PCMCIA閃存卡作為外部存儲。
Routing Engine中的內存是用來存儲路由表,轉發表,鏈路狀態數據庫和操作系統內存的。
內部的flash存儲了JunOS的操作系統和configuration file
硬盤是用來存儲,JunOS的備份,日誌文件,debug信息和用戶文件的
JunOS適用於全系列的RoutingEngine,不需要因為Routing Engine更換而換JunOS
Packet Forwarding Engine
負責轉發數據,包含一系列的ASIC,加速數據轉發。與Routing Engine比,不智能

主要部件:
PICPhysical interface card,FlexiblePIC concentrator, switchingcontrol board
每個部件上都有IBM製造的ASIC

Switching control board(FEB,SSB,SCB,SFM,MMB) 包含了一個PPC CPU,64MB的內存,但是不會參與包轉發。SSRAM8MB(16MB)包含了轉發表——8MB有45萬條轉發條目。Switching control board上的internet processorASIC進行路由查找,上面還有一個ASIC會進行包存儲的內存管理
Flexible PIC concentrator:連接PICSCB,其中有個PPCCPU64MB內存跑一個嵌入式系統,不參加數據轉發,但是FPC上有個ASIC會和出站和進站的數據包互動
PCI:FPC上有4個獨立的PIC.

JunOS中包括以下幾個daemon
1routingprotocol daemon(rpd):控制路由協議,包括了協議信息,路由表更新和路由策略。
2Device ControlDaemon(dcd):配置和維護路由器接口所用,控制了接口的物理和邏輯屬性
3ManagementDaemon(mgd): 控制了用戶進入路由器。CLI就是一個MGD的客戶端
4ChassisDaemon(chassisd)控制了路由器本身的屬性,比如midplane,FPC
5PacketForwarding Engine Daemon(PFED):聯繫routing enginepacket forwarding engine的進程。

JunOS包括的軟件:
jkernel:包括了基本的JUNOS組件
jbase:和jkernel相比,包括了一些附加軟件
jroute:包括了在routingengine上操作的軟件,如單播協議,組播協議,MPLS等。還包括了一些daemons,如mgd
jpfe:包含了控制PacketForwarding Engine的嵌入式系統。
jdocs:包括了完全的JUNOS軟件文檔集
jcrypto:包括了IPSecSSH
jbundle:包括了以上所有軟件

JUNOS軟件命名:
File list jbundle*
/var/home/user/jbundle-5.2R1.4-domestic-signed.tgz
5.2為主版本號
R代表公開發行(A——alpha versionB——BetaI——internal or test
1.4——releaseversion
domestic——包括jcrypto
signed——可以使用MD5

軟件升級:
Show version brief
Request system software addjbundle-5.3R2.4-domestic-signed.tgz(新的軟件名稱)

啟動順序:
可移除存儲(做災備,會還原到出廠環境)——>內部flash——>硬盤(先要用requst system snapshot來做鏡像,會有警告信息)——>systemhalt

CLI
有兩個模式:
Operation mode:相當於enable,登錄路由器後首先進入該模式, >表示。
Configuration mode:相當於config terminal
有補全功能——tab或空格

幫助:

快捷鍵:
Ctrl+P:上一條命令
Ctrl+N:下一條命令
Ctril+B:命令提示符向左移一位
Ctrl+F:向右移一位
Esc+B:向左移一個單詞
Esc+F:向右移一個單詞
Ctrl+A:移到行首
Ctrl+E:移到行尾
Ctrl+W:刪除左邊的一個單詞
Ctrl+X:刪除整行
Ctrl+L:整行變紅

可以用|符來做更多的操作
Count
display
Except
Find
Hold
Match
No-more
Resolve
Save
Trim

Show interfaces terse 查看路由器上的邏輯接口
Show interfaces terse | match inet 查看接口IP地址
Show interfaces terse | match inet |count 看有幾個接口有IP地址

show命令輸出過多,顯示--More時,可以按h,輸入命令
/鍵位查找。

Configuration Mode
輸入configure進入該模式

Run
相當於cisco中的dorun showinterfaces ter
Run show route

Edit 模式
用來修改Juniper的各項參數。樹狀列表如下所示
               wKiom1L1zvDjOGiNAAGEvXUSUTA210.jpg
         
如需要編輯bgp,則在頂部菜單輸入
Edit protocols bgp
edit protocols , 然後 edit bgp.
如需返回上層菜單,則輸入up,如需返回頂部,則輸入top

改變值,用命令set. 如設置系統名:
Edit system
Set host-name XX
set system host-name XX.
然後用show查看,show system

delete命令來刪除配置。
Delete system host-name XX.

CandidateConfiguration:
當配置改變時,不會馬上生效,因為改變的是cadidateconfiguration。需要用commit來確認配置之後,才能生效

show | compare可以查看現在運行的configurationcandidate configuration的區別。
+說明在candidateconfiguration但不在active configuration
-說明在candidateconfig中將其刪除了

保存和讀取配置
top下:save commcomm為文件名)
Load comm來讀取文件。
load overrid comm 覆蓋現有配置
load merge comm 把現在的配置和comm合併

Show | find ospf
Load merge terminal,然後將其他路由器上的配置粘帖上去,然後按ctrl+D,保存配置

Commit
只有在輸入commit之後,配置才能生效。當輸入commit之後,JunOS首先檢查語法和邏輯錯誤,比如應用策略卻沒有創建這個策略。如果沒有錯誤,路由器應用該配置文件並且搭建該配置所需的環境。最後保存。

Commit and-quit 退出配置模式,如果commit成功
Commit at 在某時執行commit
Commit check 只做檢查操作,不應用commit
Commit confirmed 如果沒確認,自動回滾——>相當於rollback 1 commit
Commit synchronize 在所有的RE上同步commit
恢復
JunOS一共能保存9文件供恢復使用。
當前使用的配置文件為juniper.conf,最近一次更改的為juniper.conf.1.gz
Commit 發現配置不對
Rollback 1
Commit 再次確認配置

JUNOS上的存儲目錄
/config 在內部flash上,保存JUNOSactive configurationjuniper.conf)和回退文件123
/var/db/config 在路由器的內部硬盤中,包括了回退文件4-9
/var/temp 在內部硬盤中,由守護進程啟動失敗後釋放的一些文件,用來分析
/var/log 在內部硬盤內,由路由器的日誌功能和追蹤(traceoption)功能釋放的文件
/var/home 在內部硬盤上,包含了登錄用戶的文件夾,其內有各種junos軟件命令
/altroot 在內部硬盤上,有拷貝自flash上的root文件結構,用於災難恢復。
/altconfig 在內部硬盤上,有/config的拷貝(從flash中的拷貝),做災難恢復用。

RE的冗餘
M20,M40eM160支持RE的冗餘,一個為主,一個為備。
默認情況下,當主REdown掉,備份RE不會自動切換為主,需要配置
Set chassis redundancy failover on-loss-of-keealives
Set chassis redundancy keepalive-time 30默認20s之後切換

PFE組件
PIC I/O Manager ASIC——數據幀校驗,負責將報文移動到傳輸介質
I/O Manager ASIC——對二三層頭部完整性信息校驗,如果有效,將報文分成定長64字節的J-cell,並發送給DBM ASIC
Distributed Buffer Manager ASIC——InboundASIC中收到J-cell,生成通知信元,發給Internet Processor ASIC,並將J-cell通過I/O manager ASIC放到每個FPC的共享內存池中。
Internet Processor ASIC——將通知信元通過查詢轉發表轉換成結果信元,告知outbound distributed buffer manager ASIC如何處理J-cell。再將J-cell發到outboundI/O manager ASIC中,再發到outbound PIC I/O manager ASIC上,完成數據轉發。
單播包流程:
wKiom1L1z_6xJojAAAHOWs1G68E045.jpg
         
多播包流程:
只有一點不同,結果信元檢查後有多個出口,會將包複製成多分,發到出口出去。

列外流量:
發到RE的流量,一般是路由器維護自身進程的流量,如ICMP,PING,TELNET,SSH,包含IP OPTION字段的流量,回覆目標不可達信息的流量等。

總結
RE:操縱路由並構成路由轉發表,將其複製一份到PFE,
PFE:實現數據的真正轉發

JunOS軟件存儲在內部flash,內部硬盤,可移除閃存中。啟動順序:可移除閃存——>內部flash——>內部硬盤

知道commitrollbacksaveload的用法

知道ASICPFE中的作用,四種ASICPICI/O Manager ASICI/O Manager ASICDistributedBuffer Manager ASICInternet Processor ASIC

簡述數據包在PFE中的流程:
接口收到一個數據包,I/OManager 將其分解成J-cellDistributedBuffer Manager ASIC 將該包儲存到共享內存池中,Internet ProcessorASIC完成路由查找並將結果發送給Distributed Buffer ManagerASICDBMAJ-cell轉發給出站I/Omanager ASIC。在經過隊列調整後,I/O manager ASIC從共享內存池中收到J-cell,並將其重組,然後發到出站PICI/O Manager ASIC

例外流量:路由器維護自身進程的,或者一些測試流量,終止於路由器本身。控制面板的CPU會轉發這些流量,不會經由PFE處理。

沒有留言:

張貼留言