CISCO防火牆常用命令及詳解

1、show cpu usage

PIX只有一個CPU來完成所有的工作,從處理包到向console寫debug信息。最消耗CPU資源的進程是加密,因此如果PIX要完成數據包的加密工作,最好使用加速卡或專用的*** Concentrator. 日誌功能是另外一個消耗大量系統資源的進程。因此,建議在正常情況下關閉PIX向console, monitor, buffer寫日誌的功能。

pixfirewall# show cpu usage
CPU utilization for 5 seconds = 1%; 1 minute: 2%; 5 minutes: 1%

 

 

2、show traffic

本命令可以看出在特定的時間內有多少流量流經PIX了。這個特定的時間是上次執行本命令到這次執行本命令的時間間隔。我們可以看到各個接口的數據流量情況。


ZJ-WAP-FW-2# show traffic
inside:
        received (in 1506074.635 secs):
                277725221288 packets    143521417050444 bytes   (自從FW開機到目前的input總吞吐量)
                184001 pkts/sec 95295000 bytes/sec  (自從FW開機到目前的input平均值)
        transmitted (in 1506074.635 secs):
                287523217939 packets    151292879605153 bytes   (自從FW開機到目前的output總吞吐量)
                190002 pkts/sec 100455001 bytes/sec    (自從FW開機到目前的output平均值)
      1 minute input rate 19597 pkts/sec,  11294493 bytes/sec    (1分鐘內的input平均吞吐量值)
      1 minute output rate 20063 pkts/sec,  11294468 bytes/sec   (1分鐘內的output平均吞吐量值)
      1 minute drop rate, 34 pkts/sec
      5 minute input rate 19102 pkts/sec,  9905358 bytes/sec     (5分鐘內的input平均吞吐量值)
      5 minute output rate 20159 pkts/sec,  11419208 bytes/sec   (5分鐘內的ioutput平均吞吐量值)
      5 minute drop rate, 36 pkts/sec


 

3、show perfmon


這條命令監測PIX檢查的數據的流量和類型。它可以判斷出PIX上每秒所做的變換(xlates)和連接數(conn)。


PERFMON STATS Current Average
Xlates 18/s 19/s
Connections 75/s 79/s
TCP Conns 44/s 49/s
UDP Conns 31/s 30/s
URL Access 27/s 30/s
URL Server Req 0/s 0/s
TCP Fixup 1323/s 1413/s
TCPIntercept 0/s 0/s
HTTP Fixup 923/s 935/s
FTP Fixup 4/s 2/s
AAA Authen 0/s 0/s
AAA Author 0/s 0/s
AAA Account 0/s 0/s


其中,較重要的有Xlates是每秒鐘產生變換的數字;Connections是建立的連接數;TCP Fixup是指PIX每秒鐘轉發了多少TCP包;TCPIntercept是指有每秒多少SYN包已經超出了開始的設定值。

 

 

4、show blocks


和show cpu usage在一起使用,可以判斷出PIX是否過載了。

當一個數據包進入防火牆的接口,會先排在input接口的隊列中,根據數據幀的大小,又被分到不同的block中。如對於以太網幀,使用1550字節的block。如果數據是從千兆口進來的,會使用16384字節的block。PIX然後會根據ASA算法決定是否讓包通過。如果PIX過載了,那相應的block會降到或接近0(看CNT這一列)。當該值降到0時,PIX會嘗試申請更多的block, 最多可到8192。如果沒有block可用,包會被丟棄。

256字節的block是stateful failover信息。主PIX向從PIX發送這些包以更新xlates和connection信息。如果某段時間有大量的連接建立和拆除,256字節的block可能會降到0,就是說從PIX可能沒有和主PIX同步。這個時間如果不長,是可以接受的,但如果長時間維持在0,需要考慮升級到更高速的PIX了。


另外,日誌信息也是通過256字節的block向外部送出的,注意通常不需要將日誌的級別設置成debug.


pixfirewall# show blocks
SIZE MAX LOW CNT
4 1600 1597 1600
80 400 399 400
256 500 495 499
1550 1444 1170 1188
16384 2048 1532 1538

 

 

5、show memory


可以看出PIX的內存以及當前可用的內存。正常情況下,PIX的可用內存的變化幅度不應該太大。如果突然發現內存快用光了,要檢查是否用***發生。可以用show conn count命令看當前PIX中有多少連接,如果PIX內存耗盡,最終會crash.


pixfirewall# show memory
1073741824 bytes total, 1022992384 bytes free

 

 

6、show xlate count


顯示當前通過PIX的變換數和最多達到的變換數。一個變換是指一個內部地址變換成一個外部合法地址。一臺機器可能會與外部的多個目標建立連接,但這時只有一個變換。如果顯示的變換數遠大於內部的機器數,可能是受到了網絡***。


pixfirewall# show xlate count
84 in use, 218 most used

 

 

7、show conn count


可以看當前的PIX的最大的連接數。一個connection是一個內部4層信息到外部地址的映射。當PIX收到一個SYN包,就建立一個connection. 過高connection數意味着受到了***,這時如果用show memory命令雖然連接數很高,但是並沒有消耗掉PIX過多的內存資源。


pixfirewall# show conn count
2289 in use, 44729 most used

 

 

8、show interface


這條命令用來判斷雙工的匹配問題和電纜故障,也可以看出接口是否過載了。如果PIX的CPU資源耗盡了,那麼1550字節的block會接近0,如果是千兆口,16384字節的block接近0。另外一個信號是”no buffers”的值不斷增加,它表明接口接收包的速率太快,PIX來不及處理,也沒有足夠的block去承載,已經有丟包產生了。如果”no buffer”伴隨着CPU的使用率升高,說明該考慮升級到性能更強的防火牆了。


當數據包進入接口時,被放在input hardware queue中,如果該queue滿了,被放在input software queue中。包然後從input queue中被放到block中等待PIX OS的處理,PIX決定把包放到哪個出口,即哪個output hardware queue中,如果該queue滿了,就放到output software queue中;如果每個軟隊列中的max blocks都很大,就稱之爲”overrun”。常見的情況是入口和出口的數據傳輸速率不匹配,就會出現overrun,這時應該考慮升級接口了。


pixfirewall# show interface
interface ethernet0 "inside" is up, line protocol is up
Hardware is i82559 ethernet, address is 0002.b31b.99ff
IP address 9.9.9.1, subnet mask 255.255.255.0
MTU 1500 bytes, BW 100000 Kbit full duplex
4630 packets input, 803174 bytes, 0 no buffer
Received 2 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
4535 packets output, 445424 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 babbles, 0 late collisions, 0 deferred
0 lost carrier, 0 no carrier
input queue (curr/max blocks): hardware (128/128) software (0/1)
output queue (curr/max blocks): hardware (0/2) software (0/1)


如果是runts, input errors, CRCs或frame errors在增加,可能是雙工方式不匹配造成的或電纜故障。

 

 

9、show process


顯示當前PIX中的活動的進程有什麼。這樣就可以看出什麼進程使用了過多的CPU資源,什麼進程沒能使用CPU資源。爲了得到這個信息,我們連續兩次執行show process命令,間隔1分鐘。對有所懷疑的進程,兩次的Runtime值相減,時間差(單位是毫秒)就是該進程一分鐘所佔用的CPU資源。557poll進程通常是佔用時間最多的進程,它負責詢問以太接口看是否有包需要處理。

 

 

總結


我們用show cpu usage命令看PIX的負載情況。

一般來說,CPU超過30%就已經算高了,但一般不超過50%;CPU達到80%時,性能會受到影響;超過90%時,會有丟包的情況發生。

這個時候,我們可以通過命令show process來看看什麼進程在消耗CPU資源,

查出該進程後找相應的辦法處理。

如果CPU的使用率並不高,但是還是覺得有丟包的情況發生,

用show interface命令檢查是否有錯包出現,即是否有雙工匹配問題或電纜問題;

如果是"no buffer"增加,同時CPU使用率並不高,說明接口的能力不能滿足流量的需求;

如果buffer狀況很好,檢查block, 如果1550字節或16384字節的block接近0了,

說明PIX由於太忙開始丟包了,這時CPU也會很高。
如果發現在PIX建立新的連接很困難,用命令show conn count檢查當前的連接數:

如果很高了,用show memory命令看看內存的狀況,

如果內存很少了,用show conn命令或show local-host命令

查一下連接數如此多的原因,很可能是遭遇DoS***了。
另外,show traffic命令顯示每個接口處理的包數和字節數;

show perfmon命令進一步將traffic分成不同的類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章