ACL 訪問控制列表(Access Control Lists),是應用在路由器(或三層交換機)接口上的指令列表,用來告訴路由器哪些數據可以接收,哪些數據是需要被拒絕的,ACL的定義是基於協議的,它適用於所有的路由協議,並根據預先定義好的規則對數據包進行過濾,從而更好的控制數據的流入與流出.
文字描述,摘抄自《網絡設備配置與管理》精簡內容,部分內容來自華為(HCIP認證》課程筆記,適合學習面試,其中的架構圖,與搭建流程為自己規划並實驗的。
NAT 網絡地址轉換(Network Address Translation),是一個互聯網工程任務組的標准,它可以實現內部私有IP地址和公網IP地址的轉換,能夠起到節約公網IP地址的作用,以下將介紹NAT的三種方式,靜態轉換、動態轉換和端口復用技術.
華為ACL訪問控制
路由器接口的訪問控制取決於應用在其上的ACL,數據在進出網絡前,路由器會根據ACL對其進行匹配,匹配成功將對數據進行過濾或者是轉發,匹配失敗則丟棄數據包,目前主要有三種ACL控制,標准ACL,擴展ACL,命名ACL,我們只介紹前兩種.
在路由器上應用ACL時,可以為每種協議,每個端口,每個方向,和每個接口,配置一個ACL,一般稱為3p原則.

◆標准ACL配置◆
標准ALCL只能通過源地址進行訪問過濾與控制,因此只能阻止/允許來自指定IP地址的訪問請求.
配置路由器: 接着配置路由器,開啟路由器的Eth0/0/0和Eth0/0/1端口,並配置上網關地址.
<Huawei> system-view
[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 255.255.255.0
[Huawei-GigabitEthernet0/0/0] quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] ip address 192.168.2.254 255.255.255.0
[Huawei-GigabitEthernet0/0/1] quit
配置拒絕ACL規則: 這里我們在路由器上配置一條標准的ACL規則,禁止PC1訪問Server1服務器.
<Huawei>system-view
[Huawei] acl 2000 // 指定一個序號 2000-2999
[Huawei-acl-basic-2000] rule deny source 192.168.1.1 0.0.0.0 // 拒絕源地址訪問
[Huawei-acl-basic-2000] rule deny source 192.168.1.1 0.0.0.255 // 拒絕整個網段
[Huawei-acl-basic-2000] rule permit source 192.168.1.1 0.0.0.0 // 允許源地址訪問
[Huawei-acl-basic-2000] quit
[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] traffic-filter outbound acl 2000 // 在出口方向應用規則
[Huawei-GigabitEthernet0/0/1] traffic-filter inbound acl 2000 // 在入口方向應用規則
測試過濾效果: 配置完規則以后,我們測試一下效果,使用PC1無法訪問Server1服務器而是用PC2則可以訪問.
PC1> ping 192.168.2.1
Request timeout!
Request timeout!
PC2> ping 192.168.2.1
From 192.168.2.1: bytes=32 seq=1 ttl=254 time=47 ms
From 192.168.2.1: bytes=32 seq=1 ttl=254 time=47 ms
這里需要注意一點,如果你有兩個路由器相連,那么ACL規則應該設置在距離限制的目標較近的路由器上,否則可能會出現有效數據在到達目標之前就被過濾掉了.
◆拓展ACL配置◆
標准ACL只能使用源地址作為匹配條件,無法對訪問進行精確的控制,為了解決這一問題,可以采用擴展ACL來對數據加以限制,接下來我們將配置擴展ACL,其拓撲結構圖還是使用上圖.
配置路由器: 接着配置路由器,開啟路由器的Eth0/0/0和Eth0/0/1端口,並配置上網關地址.
<Huawei> system-view
[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 255.255.255.0
[Huawei-GigabitEthernet0/0/0] quit
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] ip address 192.168.2.254 255.255.255.0
[Huawei-GigabitEthernet0/0/1] quit
配置禁止ICMP: 禁止192.168.1.1訪問192.168.2.1的icmp協議.
<Huawei> system-view
[Huawei] acl 3000
[Huawei-acl-adv-3000] rule deny icmp source 192.168.1.1 0 destination 192.168.2.1 0
[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]
[Huawei-GigabitEthernet0/0/1] traffic-filter outbound acl 3000
[Huawei-GigabitEthernet0/0/1] quit
[Huawei] display acl all
Total quantity of nonempty ACL number is 1
rule 5 deny icmp source 192.168.1.1 0 destination 192.168.2.1 0 (27 matches)
禁止指定端口: 禁止TCP協議,的源地址192.168.1.1至目標地址192.168.2.1,端口號80的協議.
<Huawei> system-view
[Huawei] acl 3000
[Huawei-acl-3000] rule deny tcp source 192.168.1.1 0 destination 192.168.2.1 0 destination-port eq 80
[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]
[Huawei-GigabitEthernet0/0/1] traffic-filter outbound acl 3000
[Huawei]display acl all
Total quantity of nonempty ACL number is 1
rule 5 deny icmp source 192.168.1.1 0 destination 192.168.2.1 0 (27 matches)
測試過濾效果: 配置完規則以后,我們測試一下效果,使用PC1無法訪問Server1服務器而是用PC2則可以訪問.
PC1> ping 192.168.2.1
Request timeout!
Request timeout!
PC2> ping 192.168.2.1
From 192.168.2.1: bytes=32 seq=1 ttl=254 time=47 ms
From 192.168.2.1: bytes=32 seq=1 ttl=254 time=47 ms
與標准ACL相比,擴展ACL能夠更加精確的匹配和過濾數據包,因此擴展ACL的放置位置應該離源地址越近越好,這樣才能夠有效的提高鏈路的使用效率.
華為NAT地址轉換
NAT 網絡地址轉換(Network Address Translation),是一個互聯網工程任務組的標准,它可以實現內部私有IP地址和公網IP地址的轉換,能夠起到節約公網IP地址的作用,以下將介紹NAT的三種方式,靜態轉換、動態轉換和端口復用技術.
NAT技術中有四種地址即,內部本地地址,內部全局地址,外部本地地址,外部全局地址.
◆配置靜態NAT◆
靜態NAT是指將內部本地地址與內部全局地址進行對應轉換,某個本地地址只能轉換為某個全局地址,通過配置靜態NAT可以實現內部網絡對外部網絡的訪問,也可以實現外部網絡對內部網絡中某個設備的訪問.

配置路由器: 配置路由器,開啟R1路由器的Eth0/0/0和Ser0/0/0端口,並配置上網關地址.
# ----配置R1路由器-----------------------------
<R1> system-view
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-Ethernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 10.10.10.1 255.0.0.0
[R1-Ethernet0/0/0] quit
# ----配置R2路由器-----------------------------
<R2> system-view
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 10.10.10.2 255.0.0.0
[R2-Ethernet0/0/0] quit
配置靜態NAT: 在路由器R1上配置靜態NAT,將私有地址轉為全局地址(內網地址-->外網地址).
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] nat static enable //啟用靜態nat
[R1-GigabitEthernet0/0/1] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] nat static global 10.10.10.20 inside 192.168.1.2
[R1-GigabitEthernet0/0/1] nat static global 10.10.10.20 inside 192.168.1.2
[R1-GigabitEthernet0/0/1] nat static global 10.10.10.20 inside 192.168.1.2
查詢NAT配置: 配置完成后,使用display nat static 命令可以查詢端口情況.
[R1] display nat static
Static Nat Information:
Interface : GigabitEthernet0/0/1
Global IP/Port : 10.10.10.20/----
Inside IP/Port : 192.168.1.2/----
Protocol : ----
VPN instance-name : ----
Acl number : ----
Netmask : 255.255.255.255
Description : ----
Total : 1
測試通信情況: 此時在PC1主機可Ping通R2路由器.
PC1> ping 10.10.10.2
Ping 10.10.10.2: 32 data bytes, Press Ctrl_C to break
From 10.10.10.2: bytes=32 seq=1 ttl=254 time=47 ms
--- 10.10.10.2 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 47/47/47 ms
◆配置動態NAT◆
動態NAT是指內部本地地址與內部全局地址進行轉換時,內部地址可以隨機轉換為指定的外部全局地址,此過程是動態分配的不需要認為干預,從而減少了配置的工作量.
但需要注意的是,配置動態NAT只能實現內部網絡對互聯網的訪問,無法實現互聯網中的主機對內部網絡中的主機的訪問,它是一種單向的NAT技術.
動態NAT是在出口路由器上做了一個地址池,內網PC訪問外網時會從地址池內獲取一個公網IP,此種技術也無法節約公網IP地址資源,接下來還是使用上面的拓撲圖,但需要清空規則.
配置路由器: 配置路由器,開啟R1路由器的Eth0/0/0和Ser0/0/0端口,並配置上網關地址.
# ----配置R1路由器-----------------------------
<R1> system-view
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-Ethernet0/0/0] quit
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 10.10.10.1 255.0.0.0
[R1-Ethernet0/0/0] quit
# ----配置R2路由器-----------------------------
<R2> system-view
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 10.10.10.2 255.0.0.0
[R2-Ethernet0/0/0] quit
配置動態NAT: 在路由器R1上配置動態NAT,將私有地址轉為全局地址(內網地址-->外網地址).
[R1] nat address-group 1 10.10.10.20 10.10.10.40 // 創建公網地址池
[R1] acl 2000 // 定義訪問控制列表
[R1-acl-basic-2000] rule permit source 192.168.1.0 0.0.0.255 // 定義ACL列表
[R1-acl-basic-2000] quit
[R1] interface GigabitEthernet 0/0/1
// 將ACL與地址池關聯,no-pat表示不可反復使用
[R1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat
// 將ACL與地址池關聯,可反復使用
[R1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1
拓展(端口映射): 將內網的192.168.1.1:8080映射到外網的10.10.10.1:80,配置如下.
[R1] interface GigabitEthernet 0/0/1
[R1] nat server protocol tcp global 10.10.10.1 80 inside 192.168.1.1 8080
測試通信情況: 此時在PC1主機可Ping通R2路由器.
PC1> ping 10.10.10.2
Ping 10.10.10.2: 32 data bytes, Press Ctrl_C to break
From 10.10.10.2: bytes=32 seq=1 ttl=254 time=47 ms
--- 10.10.10.2 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 47/47/47 ms
