一、背景介紹
NAT地址轉換是生產環境中用的最多的一種技術,除了能緩解ipv4地址不夠外,還能有效保護內網真實服務器的地址,nat從流向的角度可以分爲snat和dnat,本章對以下幾種情況分別進行說明,拓撲如下圖所示:
二、SNAT使用地址池方式
此種方式是定義一個地址池,內網地址訪問外網時在網關接口進行源地址轉換,轉換後的源地址爲地址池中的地址,同時可以通過no-pat選項決定是否開啓端口複用
- 先進行基礎配置
[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ip add 23.0.0.1 24
[R3]int g0/0/1 [R3-GigabitEthernet0/0/1]ip add 23.0.0.2 24
- 此時R1沒有去往R3的路由所有要在R1上添加去往R3的靜態路由
[R1]ip route-static 23.0.0.0 24 12.0.0.02
- 設置一個地址池,內網訪問外網時會轉化爲地址池中的地址,此時再定義一個acl允許R1所在網段12.0.0.0/24流量通過
[R2]nat address-group 1 23.0.0.10 23.0.0.20 [R2]acl 2000 [R2-acl-basic-2000]rule 5 permit source 12.0.0.0 0.0.0.255
- 在R2的外網接口上調用nat地址轉換及acl,no-pat則是不進行基於端口的轉發
[R2]int g0/0/1 [R2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
- 此時在到R2的外網接口抓包,能看到內網12.0.0.0/24地址已經轉換爲外網的23.0.0.0/24網段地址
三、SNAT使用easy ip方式
儘管上面2種方法都可以進行地址轉換,但還是需要浪費至少一個額外的公網IP地址,現實場景下,大多數小企業結構拓撲更像如下:
上圖中只有一個公網IP地址,內網所有的訪問在經過邊界路由時都轉化成23.0.0.2/24這個外網地址,華爲產品管此場景成爲easy ip,他的前4步配置與上面示例完全一樣,只有在第5步端口調用時使用不同的命令[R2]int g0/0/1 [R2-GigabitEthernet0/0/1]nat outbound 2000
此時源地址就會轉換爲R2上g0/0/1口的地址,通過outbound表能查看
四、DNAT一對一方式
- 基礎配置
[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.0.100 24 [R1-GigabitEthernet0/0/0]q [R1]ip route-static 23.0.0.0 24 192.168.0.1
[R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.0.1 24 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R3]int g0/0/1 [R3-GigabitEthernet0/0/1]ip add 23.0.0.3 24
- 爲R1開通虛擬終端,模擬telnet服務器
[R1]user-interface vty 0 4 [R1-ui-vty0-4]set authentication password cipher huawei [R1-ui-vty0-4]user privilege level 15
- R2上配置映射地址,此時要注意對外提供telnet服務的地址不能和外口地址衝突
[R2-GigabitEthernet0/0/1]nat static global 23.0.0.10 inside 192.168.0.100
可以通過映射命令查看靜態轉換地址表
- 在R3的用戶模式下進行telnet登錄測試
<R3>telnet 23.0.0.10 23
五、DNAT一對多方式
上面介紹了DNAT場景下通過static命令進行全地址映射,如果指向映射某個特定的端口,在邊界路由的外口上使用以下命令:
[R2-GigabitEthernet0/0/1]nat server protocol tcp global 23.0.0.10 2323 inside 192.168.0.100 23
六、總結
- 外網口SNAT場景下使用outbound命令,使用使用端口複用技術取決於參數no-pat(默認啓用複用)
- 外網口static命令用於一對一的DNAT轉換,server命令用於一對多的DNAT轉換
- static屬於全地址映射,實際中不常用;server是特定端口進行映射,常用