新手網工必知!讓你每天的新知識點 1
華為下一代防火牆入門課程
技術出現背景
NAT技術的出現主要是為了解決IPV4地址枯竭的問題,回想下上一篇,學過了幾種主流接入Internet的方式,但是這幾種方式都是配置在防火牆上面,防火牆訪問外網沒問題,但是下面的終端設備呢?不管是DHCP還是PPPOE撥号都隻有一個可以上網的地址分配下來,而固定專線可能有幾個,對于一個局域網幾十台、幾百台終端設備的場景顯然可上網地址就不夠用了,就需要利用NAT技術了。NAT技術裡面分為兩大類,這一篇我們來講解源NAT技術,也就是解決局域網下多個終端通過一個或者數個可上網地址來複用共享上網。
案例中了解源NAT實現原理
接口部分的配置
dhcp enable
#
interface GigabitEthernet1/0/1
undo shutdown
ip address 192.168.11.254 255.255.255.0
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
dhcp select interface
dhcp server ip-range 192.168.11.1 192.168.11.250
dhcp server gateway-list 192.168.11.254
dhcp server dns-list 223.5.5.5 114.114.114.114
#
interface GigabitEthernet1/0/2
undo shutdown
ip address 192.168.12.254 255.255.255.0
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
dhcp select interface
dhcp server ip-range 192.168.12.1 192.168.12.200
dhcp server gateway-list 192.168.12.254
dhcp server dns-list 223.5.5.5 114.114.114.114
#
interface g1/0/0
ip address dhcp-alloc (這裡外網采用DHCP對接)
安全區域部分的配置
firewall zone untrust
add interface GigabitEthernet1/0/0
#
firewall zone name office1
set priority 80
add interface GigabitEthernet1/0/1
#
firewall zone name office2
set priority 79
add interface GigabitEthernet1/0/2
#
安全策略部分的配置
分析:對應區域office1與2想要上網,那麼必須放行office1與2到untrust的策略即可,隻需要匹配office1與2的源地址,然後源目安全區域,動作permit,目的地址不填(Internet的目的地址太多了,匹配不現實),服務也不限制,本身就希望用戶上外網,不做限制,這裡在多做一個Local_untrust的策略,方便測試外網通不通。
#
security-policy
rule name office1_untrust
source-zone office1
destination-zone untrust
source-address 192.168.11.0 mask 255.255.255.0
action permit
rule name office2_untrust
source-zone office2
destination-zone untrust
source-address 192.168.12.0 mask 255.255.255.0
action permit
rule name Local_untrust
source-zone local
destination-zone untrust
action permit
現在防火牆訪問外網沒任何問題
因為接口已經獲取到了一個可以上網的地址,通過DHCP方式,現在需要解決的就是内網,比如office1的192.168.11.0/24以及office2的192.168.12.0/24如何去上網。
客戶端訪問外網不通,我們來分析下為什麼不通!
(1)PC1 192.168.11.221訪問114.114.114.114,交給網關192.168.11.254(防火牆處理)
(2)交換機是傻瓜交換機直接把數據包通過MAC表發送給防火牆
(3)防火牆這個時候先檢查安全策略(已經配置了office1到untrust的策略允許通過),然後查找路由表,有默認路由指向出口,把數據包發送出去了。
這麼看防火牆是把數據包發送出去了的,但是看會話表裡面的現象,發送出去了,回來的數據包統計是0,也就是說沒有數據包回來,造成這樣的原因就是,運營商過來的終端設備(比如貓、政企設備)給了防火牆一個上網地址,那麼能上網的就是這個地址而已,防火牆下面的網段過來的流量,運營商的終端設備一看,不屬于它處理的範圍直接給丢棄了(因為它本身也不知道192.168.11.0以及12.0在哪,它也不會去關心這個),這個時候需要能讓192.168.11.0以及12.0上網的話,則需要僞裝一下,把這兩個網段過來的流量給轉換成防火牆能夠上網的那個地址,這樣運營商終端設備看到實際地址是被防火牆轉換成了允許上網的那個地址,直接就轉發走了,這個技術就是這篇要講解的源NAT,其實學過路由技術的朋友,應該對原理還是比較懂的了,博主這裡就簡單的從數據包的轉發上面來分析下,讓大家從不同的角度來了解下。
在防火牆裡面,把源NAT功能叫做NAT策略,我們可以在防火牆上面配置多條NAT策略來實現不同的需求,以這個案例為主,來看看如何配置。
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name office1_untrust
[USG6000V1-policy-nat-rule-office1_untrust]source-zone office1
[USG6000V1-policy-nat-rule-office1_untrust]destination-zone untrust
[USG6000V1-policy-nat-rule-office1_untrust]source-address 192.168.11.0 24
[USG6000V1-policy-nat-rule-office1_untrust]action source-nat easy-ip
[USG6000V1-policy-nat]rule name office2_untrust
[USG6000V1-policy-nat-rule-office2_untrust]source-zone office2
[USG6000V1-policy-nat-rule-office2_untrust]source-address 192.168.12.0 24
[USG6000V1-policy-nat-rule-office2_untrust]egress-interface g1/0/0
[USG6000V1-policy-nat-rule-office2_untrust]action source-nat easy-ip
配置看其實是不是很熟悉,它跟安全策略的思路是一樣的,匹配源、目安全區域,然後源地址,執行動作即可,這裡兩個策略博主用了兩種方式。
(1)在office1的策略中,博主用的是匹配的目的安全區域方式(destination-zone untrust )這樣的配置,防火牆會去查找該安全區域裡面有的接口,如果路由表從這個接口出去了,則進行轉換,特别是在多個出口在同一個安全區域的時候必須使用基于目的安全區域的方式
(2)在office2的策略中,博主用的是匹配接口的方式(egress-interface g1/0/0)這種方式适合隻有一個出口的時候,直接指定出接口即可。
現在在來看PC1與PC2可以通過外網了,在來看看會話表發生了什麼變化。
是不是發現有些變化了,多了些内容,192.168.11.221:33137[192.168.255.11:2064],這個就是源NAT中的一種,叫做Easy-ip(也有的稱為出接口地址方式,體現在配置裡面就是 action source-nat easy-ip),工作的原理就是 當192.168.11.221去訪問114.114.114.114的時候,查找安全策略放行,發現有NAT策略,匹配了office1_untrust的規則進行easy-ip操作,它會把192.168.11.221轉換成出接口所獲取的地址192.168.255.11,也就是進行了一次僞裝轉換,那麼這個時候運營商的終端設備看到是192.168.255.11(允許範圍内的上網地址),直接就進行轉發了,而且easy-ip不單單會進行地址轉換,還會在後面跟一個端口号,這個端口号有什麼作用呢?
可以看到兩個網段的主機地址訪問外網都能夠轉換,假設不加這個端口号,當192.168.11.221訪問外網的時候轉換成了192.168.255.11了,而192.168.12.111也訪問同一個外網地址,比如114.114.114.114,也轉換成了192.168.255.11,但數據返回的時候,防火牆就傻眼了,到底這個包是給11.221呢還是12.111,但是有了這個端口号就不一樣了,比如上面這裡192.168.11.221訪問114的時候,轉換成了192.168.255.11:2074,而12.111訪問114的時候轉換成了192.168.255.11的2077,在收到回包的時候,隻要看端口号就知道給誰了,所以這個端口号的作用就是在能上網的地址隻有一個的情況下,而内網主機亮很大,則需要用到這種IP與端口号都轉換的形式,達到一個地址複用的效果,這種技術的名稱叫做NAPT(Network Address And port Translation),easy-ip隻是NAPT中的一種,表示隻有一個接口地址可以用于上網,沒有在多餘的地址使用了,那麼下面來看看另外一種環境,當我們有兩個可上網地址的時候,怎麼來分配呢?
案例二:有多個上網地址該如何分配
拓撲引用上面那個,在實際中這種案例一般是在一個外網專線裡面,存在多個公網固定IP,接口上面配置一個,那麼多出來的就浪費了,這個時候可以怎麼分配呢?(這裡博主強調下,實驗環境用的是192.168.255.11跟192.168.255.12,實際中的地址由運營商分配)
更改配置的地方
#
[USG6000V1]int g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip address 192.168.255.11 24
#
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 192.168.255.254
#
固定公網IP是需要把接口配置在接口下面的,然後寫上默認路由。在實際工作中,有2個公網IP的場景,可以這樣使用,可以根據部門來劃分,也可以根據業務來劃分,比如這個案例裡面有office1與2,可以讓office1用192.168.255.11,而office2用192.168.255.12,由于192.168.255.11在接口上面,我們可以直接使用easy-ip的方式,而192.168.255.12是沒有配置在接口的,這個時候就需要定義一個NAT地址池組了。
[USG6000V1]nat address-group 192.168.255.12
[USG6000V1-address-group-192.168.255.12]section 0 192.168.255.12 192.168.255.12
[USG6000V1-address-group-192.168.255.12]mode pat
這裡的意思是定義一個地址池組,名字這裡博主以地址形式命名,然後定義地址的範圍,我們案例裡面就是192.168.255.12,所以起始于結束都是以這個,最後模式為pat(也就是NAPT)
模式支持幾種,常用的為PAT,其他幾種用的并不多。
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name office1
[USG6000V1-policy-nat-rule-Office1]source-address 192.168.11.0 24
[USG6000V1-policy-nat-rule-Office1]source-zone office1
[USG6000V1-policy-nat-rule-Office1]destination-zone untrust
[USG6000V1-policy-nat-rule-Office1]action source-nat easy-ip
[USG6000V1-policy-nat]rule name office2
[USG6000V1-policy-nat-rule-office2]source-zone office2
[USG6000V1-policy-nat-rule-office2]destination-zone untrust
[USG6000V1-policy-nat-rule-office2]source-address 192.168.12.0 24
[USG6000V1-policy-nat-rule-office2]action source-nat address-group 192.168.255.12
實際測試下
可以通過會話表信息看到,192.168.11.0與12.0轉換的出口地址是不一樣的,11.0用的easy-ip接口的形式,而12.0用的地址組裡面的地址。
源NAT的其他幾種方式
源NAT在工作中用的最多的就是NAPT的方式了,其實還有兩種方式的方式的,用的場景比較少,這裡就簡單介紹下。
(1)NAT No-PAT:這種适合公網地址特别多的情況下,一個私網用戶占用一個公網地址(可上網的地址),在實際中這種場景很少,以目前IPV4的地址來看,有幾個已經就很不錯了。
(2)三元組NAT:NAPT中,私網地址的端口号與轉換後的端口号是随機生成的,在某些P2P的應用中,可能要求私網的端口号與轉換後的端口号要一緻,這個功能就可以實現在私網轉換後,端口号保持一緻。
源NAT維護以及排錯
1、通過display firewall session table verbose (會話比較多的時候,可以跟具體地址),當前地址是否有會話産生(并且有轉換項)
2、display nat-policy rule all:通過該命令查找NAT策略的匹配、以及創建了哪些策略
3、display nat-policy rule name:查看某一條策略的配置,以及匹配項
4、檢查安全策略是否配置正确,通過會話表查看是否有會話表項,如果有會話表項,而沒有NAT轉換,說明安全策略已經成功了,檢測NAT策略的配置,如果連會話信息都沒有,則需要從安全策略以及對接角度來進行排查。
5、會話信息裡面沒有NAT轉換,很大的可能就是NAT策略配置錯誤了,容易出錯的地方(1)源區域 (2)目的區域或者接口(3)源地址 (4)執行動作,有好幾種,容易選擇錯誤。
6、會話信息以及NAT轉換都有,但是上不了網,這個時候檢測(1)DNS是否錯誤 (2)終端ping 114.114.114.114 (3)防火牆上面ping 114,記得放行Local到Untrust的流量 (4)如果是固定專線的話,測試下直連網關通不通。
7、rule move 可以通過這個移動策略之間的順序
8、如果某個規則暫時不需要用了,可以進入對應的規則下面 輸入disable禁用,啟用的話輸入enable即可。
WEB相關操作
在策略----NAT策略----新建----
WEB的配置跟命令行是一樣的,輸入名稱、NAT類型、源安全區域、目的類型(可以選擇目的安全區域以及出接口)、源地址、轉換的動作,比如上面的案例有個建立地址池的,可以選擇地池中的地址,然後新建一個地址池組,選中即可。
實際源NAT博主經驗分享
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name office1_untrust
[USG6000V1-policy-nat-rule-office1_untrust]source-zone office1
[USG6000V1-policy-nat-rule-office1_untrust]destination-zone untrust
[USG6000V1-policy-nat-rule-office1_untrust]source-address 192.168.11.0 24
[USG6000V1-policy-nat-rule-office1_untrust]action source-nat easy-ip
[USG6000V1-policy-nat]rule name office2_untrust
[USG6000V1-policy-nat-rule-office2_untrust]source-zone office2
[USG6000V1-policy-nat-rule-office2_untrust]source-address 192.168.12.0 24
[USG6000V1-policy-nat-rule-office2_untrust]egress-interface g1/0/0
[USG6000V1-policy-nat-rule-office2_untrust]action source-nat easy-ip
記得第一個案例,隻有一個可上網地址的時候,在配置中寫了兩個rule規則,在實際中可以簡化成一個的
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name Internet
[USG6000V1-policy-nat-rule-internet]source-zone office1
[USG6000V1-policy-nat-rule-internet]source-zone office2
[USG6000V1-policy-nat-rule-internet]destination-zone untrust
[USG6000V1-policy-nat-rule-internet]source-address 192.168.11.0 24
[USG6000V1-policy-nat-rule-internet]source-address 192.168.12.0 24
[USG6000V1-policy-nat-rule-internet]action source-nat easy-ip
也就是一個規則裡面匹配兩個安全源區域,以及源地址,然後完成整個操作,之前兩個rule的效果就是實現office1的192.168.11.0與office2的192.168.12.0利用這個上網,這個合并成一個規則直接匹配兩個源區域,兩個源地址也可以同時實現一樣的效果,簡化了配置。
在實際中其實還有更簡單粗暴的,就是一個NAT策略允許所有。
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name Internet
[USG6000V1-policy-nat-rule-internet]destination-zone untrust
[USG6000V1-policy-nat-rule-internet]action source-nat easy-ip
允許任何内網的用戶去往外網進行上網,那麼帶來的問題是,如何去控制不想讓他上網的呢?控制上網實際中更多的是使用安全策略,而NAT這塊則寬松配置,這種比較适合常見的組網,在比較中大型的網絡中,建議還是嚴格匹配。
實際案例思考:
在實際中有這樣的情況出現,比如公司在阿裡雲部署了業務,做了一些安全的策略,隻允許公司的某個固定公網地址才能訪問,但公司有兩條線路,一個固定公網用于訪問阿裡雲業務的,還有一條撥号寬帶用于上網,這樣的情況下NAT該如何去部署?應該注意什麼呢?(案例适合很多場景,比如一個可上網的互聯網線路,一個内網專線等)
介紹《華為下一代USG防火牆(由淺入深實際案例系列)》是博主原創的針對華為廠商下一代USG防火牆組網系列應用部署為主的系列課程,結合實際環境出發,加上了博主部署經驗以及會遇到哪些問題等進行綜合,做到學以緻用,給各位看官朋友一個不一樣的學習體驗。
如果大家有任何疑問或者文中有錯誤跟疏忽的地方,歡迎大家留言指出,博主看到後會第一時間修改,謝謝大家的支持,更多技術文章盡在網絡之路Blog,版權歸網絡之路Blog所有,原創不易,侵權必究,覺得有幫助的,關注、轉發、點贊支持下!~。
上一篇回顧
24、基于無線場景的内置portal匿名登錄與接入碼功能
下一篇學習
26、基于愛快網關自帶的認證功能打造一個低成本的網頁認證網絡
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!