第八章 IP網絡流量管理

 

第八章 IP網絡流量管理
8.1 包過濾介紹
包過濾應用在路由器中,就爲路由器增加了對數據包的過濾功能。一般情況下,指的是對IP數據包的過濾。對路由器需要轉發的數據包,先獲取包頭信息,包括IP層所承載的上層協議的協議號,數據包的源地址、目的地址、源端口和目的端口等,然後和設定的規則進行比較,根據比較的結果對數據包進行轉發或者丟棄。
 
        8.2 訪問列表介紹
爲了過濾數據包,需要配置一些規則,規定什麼樣的數據包可以通過,什麼樣的數據包不能通過。一般採用訪問列表的技術用來配置過濾規則。訪問列表分爲兩類:
標準訪問列表
擴展訪問列表。
 
對於每個訪問列表,你可以輸入規則來允許或者禁止數據包,訪問列表用號碼來標識。對一個訪問列表的所有語句必須使用相同的號碼。
訪問列表的號碼範圍
標準IP訪問列表: 1~99
擴展IP訪問列表: 100~199
 
8.3標準I P訪問列表
標準I P訪問列表的命令語句
  所有的訪問列表是在全局配置模式下生成的。
 
標準訪問列表的格式如下:
access-list listnumber { permit | deny } address [ wildcard-mask ]
此格式表示:允許或拒絕來自指定網絡的數據包,該網絡由IP地址(address)和地址通配比較位(wildcard-mask)指定。其中:
 listnumber爲規則序號,標準訪問列表的規則序號範圍爲1-99。
 permit和deny表示允許或禁止滿足該規則的數據包通過 。
 address和wildcard-mask分別爲IP地址和通配比較位,指定某個網絡。如果IP地址指定爲any,則表示所有IP地址,而且不需配置指定相應的通配位。 通配位缺省爲0.0.0.0。另一個是“ h o s t”,它只能用於擴展訪問列表中,用來代替掩碼0 . 0 . 0 . 0。在標準訪問列表中,當掩碼是0 . 0 . 0 . 0時省略它,如果省略了掩碼,則表示該掩碼是0 . 0 . 0 . 0。
 
通配比較位用法類似於子網掩碼而寫法不相同。IP地址與地址通配位的關係語法規定如下:在通配位中相應位爲1的地址中的位在比較中被忽略。IP地址與通配位都是32位的數。如通配位是0x00ffffff(0.255.255.255),則比較時,高8位需要比較,其他的都被忽略。又如IP地址是129.103.1.1,通配位是0.0.255.255,則地址與通配位合在一起表示129.103.0.0網段。若要表示203.38.160.0網段,地址位寫成203.38.160.X(X是0~255之間的任意一個數字),通配位爲0.0.0.255。
 
 
並不是所有的掩碼在“精確匹配”位和“無關”位間都有兩個八位位組的邊界。有時,計算什麼匹配什麼不匹配是十分困難的事。讓我們來看看下面例子中第三個八位位組的二進制分解:
172.16.16.0 0.0.7.255
地址位:1 6 = 0 0 0 1 0 0 0 0
掩碼位: 7 = 0 0 0 0 0 1 1 1
可以看出,如果不管掩碼中爲1的相對應的地址位,這對數字描述了八種可能的數字範圍,從1 6 ~ 2 3。如下所示,可以用二進制從1 6 ~ 2 4來驗證它:
16= 0 0 0 1 0 0 0 0
17= 0 0 0 1 0 0 0 1
18= 0 0 0 1 0 0 1 0
19= 0 0 0 1 0 0 1 1
20= 0 0 0 1 0 1 0 0
21= 0 0 0 1 0 1 0 1
22= 0 0 0 1 0 1 1 0
23= 0 0 0 1 0 1 1 1
24= 0 0 0 1 1 0 0 0
注意,當我們數到2 4時,地址上的23位從0變成了1。23位不再符合掩碼,所以它不再屬於這對描述的範圍內。
看看整個的地址掩碼對,I P地址範圍是從1 7 2 . 1 6 . 1 6 . 0到1 7 2 . 1 6 . 2 3 . 2 5 5。
 
標準I P訪問列表的例子
 
 
配置標準I P訪問列表的注意事項
1.記住每個訪問列表的結尾含有隱式的DENY ANY,每個訪問列表都必須包含至少一個允許的語句是十分重要的。
 
2.當你計劃一個訪問列表時,有兩種不同的方法。如果你明確知道想允許的通信量,而且可用幾條簡單的語句描述出來,則可以明確允許那些通信量,拒絕其他的通信量。相反,如果你能夠用幾條簡單的語句描述你想禁止的通信量,你可以明確拒絕那些通信量,然後用允許一切來結尾。這兩種方法談不上誰比誰好一些,但是用儘可能少的語句可以節省CPU週期。
 
3.由於第一個匹配的語句將執行,所以順序是十分重要的。記住路由器在找到第一個匹配數據包的語句時就停止工作,所以如果匹配的語句靠近表的前面,則會得到更好的性能。
 
 
 
8.4 擴展I P訪問列表
 
 
配置擴展訪問列表
表20-32. 配置擴展訪問列表
操作
命令
配置TCP/UDP 協議的擴展訪問列表
access-list   listnumber
{ permit | deny } { tcp | udp } source-addr
[ source-mask ] dest-addr [ dest-mask ]
[ operator port1 [ port2 ] ] 
配置ICMP 協議的擴展訪問列表
access-list listnumber
{ permit | deny } icmp source-addr
[ source-mask ] dest-addr [ dest-mask ]
 
配置其它協議的擴展訪問列表
access-list   listnumber
{ permit | deny } protocol source-addr
[ source-mask ] dest-addr [ dest-mask ]
 
 
 
擴展訪問列表的格式如下:    
access-list listnumber { permit | deny } protocol source source-wildcard-mask destination destination-wildcard-mask [ operator operand ]
此格式表示允許或拒絕滿足如下條件的數據包通過:
       帶有指定的協議(portocol),如 TCP、UDP 等;
       數據包來自由source及source-wildcard-mask指定的網絡;
       數據包去往由destination及destination-wildcard-mask指定的網絡;
       該數據包的目的端口在由operator operand規定的端口範圍之內;
 
其中:
 listnumber爲規則序號,擴展訪問列表的規則序號範圍爲100-199。
       permit和deny表示允許或禁止滿足該規則的數據包通過 。
       protocol 可以指定爲0-255之間的任一協議號(如1 表示 ICMP 協議),對於常見協議(如IP、TCP和UDP),可以直觀地指定協議名,若指定爲IP,則該規則對所有IP包均起作用。
       source 和 source-wildcard-mask 以及 destination 和 destination-wildcard-mask 之間的關係請參見標準訪問列表中相關內容。如果IP地址指定爲any,則表示所有IP地址,而且不需配置指定相應的通配位。 通配位缺省爲0.0.0.0。
operator operand 用於指定端口範圍,缺省爲全部端口號0-65535,只有 TCP 和 UDP 協議需要指定端口範圍。支持的操作符及其語法如下表。
表20-26. 擴展訪問列表的操作符意義
操作符及語法
意義
eg portnumber
等於端口號portnumber
gt portnumber
大於端口號portnumber
lt portnumber
小於端口號portnumber
neg portnumber
不等於端口號portnumber
range portnumber1 portnumber2
介於端口號portnumber1 和
portnumber2 之間
 
在指定 portnumber 時,對於部分常見的端口號,可以用相應的助記符來代替其實際數字,支持的助記符如下表。
 
表20-27. 端口號助記符
協議
助記符
意義及實際值
TCP
Bgp
Chargen
Cmd
Daytime
Discard
Domain
Echo
Exec
Finger
Ftp
Ftp-data
Gopher
Hostname           Irc
Klogin
Kshell
Login
Lpd
Nntp
Pop2
Pop3
Smtp
Sunrpc
Syslog
Tacacs
Talk
Telnet
Time
Uucp
Whois
Www
Border Gateway Protocol (179)
Character generator (19)
Remote commands (rcmd, 514)
Daytime (13)
Discard (9)
Domain Name Service (53)
Echo (7)
Exec (rsh, 512)
Finger (79)
File Transfer Protocol (21)
FTP data connections (20)
Gopher (70)
NIC hostname server (101)
Internet Relay Chat (194)
Kerberos login (543)
Kerberos shell (544)
Login (rlogin, 513)
Printer service (515)
Network News Transport Protocol (119)
Post Office Protocol v2 (109)
Post Office Protocol v3 (110)
Simple Mail Transport Protocol (25)
Sun Remote Procedure Call (111)
Syslog (514)
TAC Access Control System (49)
Talk (517)
Telnet (23)
Time (37)
Unix-to-Unix Copy Program (540)
Nicname (43)
World Wide Web (HTTP, 80)
UDP
biff
bootpc
bootps
discard
dns
dnsix
echo
mobilip-ag
mobilip-mn
nameserver
netbios-dgm
netbios-ns
netbios-ssn
ntp
rip
snmp
snmptrap
sunrpc
syslog
tacacs-ds
talk
tftp
time
who
xdmcp
Mail notify (512)
Bootstrap Protocol Client (68)
Bootstrap Protocol Server (67)
Discard (9)
Mail notify (512)
DNSIX Securit Attribute Token Map (90)
Echo (7)
MobileIP-Agent (434)
MobilIP-MN (435)
Host Name Server (42)
NETBIOS Datagram Service (138)
NETBIOS Name Service (137)
NETBIOS Session Service (139)
Network Time Protocol (123)
Routing Information Protocol (520)
SNMP (161)
SNMPTRAP (162)
SUN Remote Procedure Call (111)
Syslog (514)
TACACS-Database Service (65)
Talk (517)
Trivial File Transfer (69)
Time (37)
Who(513)
X Display Manager Control Protocol (177)
例:
100 deny udp any any eq rip
表示禁止接收和發送RIP報文。
100 permit tcp 129.8.0.0 0.0.255.255 202.39.160.0 0.0.0.255 eq www
表示允許從129.8.0.0網段的主機向202.39.160.0網段的主機發送WWW報文。
下面爲擴展訪問列表的例子:
 
 
 
 
8.5 在接口上應用訪問列表
 
 
 
操作
操作
指定接口上過濾接收報文的規則
ip access-group listnumber in
取消接口上過濾接收報文的規則
no ip access-group listnumber in
指定接口上過濾發送報文的規則
ip access-group listnumber out
取消接口上過濾發送報文的規則
no ip access-group listnumber out
 
  你不僅需要建立想用的訪問列表,同時還必須將它提供給每個想用它的接口。一個訪問列表可用於同一個路由器的許多不同的接口,
 
  進入接口配置模式,使用命令IP ACCESS-GROUP 1 OUT將該接口放入使用訪問列表1 0 1作爲過濾的組。注意命令末端的參數O U T,O U T是默認參數,它表示數據包將在從路由器到出站的路上進行過濾。因爲O U T是默認參數,所以可以省略,所以IP ACCESS-GROUP 101表示同樣的意思。
  如果將其用作網絡接口的入站數據包過濾,使用命令IP ACCESS-GROUP
101 IN。
  參數I N | O U T表示是入站還是出站。如果你想讓訪問列表對兩個方向都有用,則兩個參數都要加上,一個表示入站,一個表示出站。對於每個協議的每個接口的每個方向,只能提供一個訪問列表。
 
 
8.6訪問列表的核驗
 
檢驗I P訪問列表
配置完I P訪問列表後,你會想知道是否正確。你可以使用SHOW ACCESS-LISTS命令和SHOW IP INTERFACES命令來檢驗I P訪問列表。
SHOW ACCESS-LISTS命令顯示路由器中所有的訪問列表,包括I P、I P X和A p p l e Ta l k。這
裏是一些SHOW ACCESS-LISTS命令的輸出結果,顯示了路由器中配置的標準和擴展訪問列表。
 
可以看到,SHOW ACCESS-LISTS命令顯示了路由器中所有類型的訪問列表的配置細節,而不單單是I P訪問列表。我們可以在命令行中指定特定的訪問列表號來單獨顯示一個訪問列表。
 
SHOW IP INTERFACES命令提供了接口配置的I P指定方面的信息。它被專用來看什麼數據包過濾應用於接口。它並不顯示訪問列表的內容,而只有訪問列表的號碼。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章