本文歡迎轉載,轉載請注明出處和作者。
眾所周知,私網IP地址是不能在公網上通信的,那么,平日在辦公室或者家里使用的都是192.168.1.0或者10.0.0.0的私網地址,是如何與外界通信的呢。這個時候,就需要做通過NAT,做公網地址映射。
1、網絡拓撲
實驗拓撲如下:
2、預配置
R1:
en
conf t
int lo 0
ip add 1.1.1.1 255.255.255.0
int se2/0
ip add 202.96.1.1 255.255.255.0
clock rate 64000
no shut
int fa0/0
ip add 192.168.1.1 255.255.255.0
no shut
ISP:相當于運營商的路由器
en
conf t
host ISP
int lo 0
ip add 2.2.2.2 255.255.255.0
int s2/0
ip add 202.96.1.2 255.255.255.0
no shut
SW:只做傻瓜式二層交換機,什么都不用配置。
PC0、PC1:分別配置為192.168.1.2、192.168.1.3,然后網關設置為192.168.1.1。
R1模擬公司出口路由器,配置默認路由指向ISP(運營商),就是無論什么不知道的目的IP,都往默認路由指向的下一條地址扔。
R1:
ip route 0.0.0.0 0.0.0.0 202.96.1.2
查看R1路由表,看不到具體到2.2.2.2的路由條目,但是能夠看到默認路由。
當前,R1用默認ping通R2上面的2.2.2.2的。但是用擴展ping,用R1上的loopback地址,是ping不通R2的。
前面已經說過,因為默認ping是用R1的接口地址來作為原地址ping R2,而R1的接口地址與R2是直連的,所以R2上面有直連路由,所以R2能夠回包。而如果改為擴展ping,采用R1的loopback地址ping 2.2.2.2,R1通過默認路由將包扔給R2,但是R2上面沒有到1.1.1.1的路由條目,就會回不了包。
同理,此時PC0、PC1只能ping通在R1上面的網關,但是ping不通R2上面的2.2.2.2。因為包能夠到網關,并且通過默認路由扔給R2,但是R2上面沒有到192.168.1.0/24這個網段的路由。
現實生產環境,由于內網一般都用私網地址,這些地址是每個公司/用戶都可以復用的,不能在公網上路由的,所以也不會采取把該網段通過R1宣告給R2的方法,那么要內網(PC0、PC1)能夠訪問外網,就必須在R1上面做NAT了。
3、靜態NAT
靜態NAT,相當于每個私網地址,都要給它轉換為一個單獨的公網地址。
先將整個網絡的IP地址配好,但是不需要在R1上面做任何路由宣告。
此時,內網PC0與PC1是無法訪問ISP(公網運營商),模擬公網運營商。
此時,需要在R1上面設置NAT靜態映射。R1進入conf t
ip nat inside source static 192.168.1.2 202.96.1.3
ip nat inside source static 192.168.1.3 202.96.1.4
int s2/0
ip nat outside
//設置為出接口
int fa0/0
ip nat inside
//設置為入接口
配置完畢后,PC0立刻可以訪問ISP的接口地址了。(相當于可以訪問公網的地址了)
而至于ISP后面還有什么其他互聯網地址,只需要ISP那邊通過動態路由協議,并且將網段宣告過來,路由可達就可以互通了。
4、動態NAT
上面的NAT,非常耗費公網IP地址,因為每個私網地址都要消耗一個公網地址,而公網地址有限,而且需要付費租用,因此,可以動過動態NAT,來建立一個地址池,按需分配。
其實主要命令上面修改一下就可以了,修改為
ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0
//NAT為公網IP地址池的名字,然后規定開始到結束的地址。
ip nat inside source list 1 pool NAT
//匹配ACL與地址池
access-list 1 permit 192.168.1.0 0.0.0.255
//將死亡地址劃入對應的ACL,實現了私網地址段與公網地址池的匹配
然后依然是掛載到出站與入站接口。
int s2/0
ip nat outside
//設置為出接口
int fa0/0
ip nat inside
//設置為入接口
此時,如果,公網地址202.96.1.3~202.96.1.100的地址,會被192.168.1.0/24這個私網地址段的終端共用,有訪問外網需求的時候,自動會輪詢分配著公網IP使用。
5、PAT
上述動態NAT方案,對于有一大堆筆記本等辦公終端要訪問外網的企業,還是太虧了。100個公網地址,輪著使用,也就是相當于同一時間訪問外網,只能有100個人在線,肯定無法滿足要求。因此,有沒有更省IP地址的方案呢,答案是有的,就是PAT。
PAT采用1個公網地址,然后后面自動增加端口號,來匹配到私網IP,實現多人通過同一個公網IP來上網。
例如PC0可能使用202.96.1.3:20001,而PC1使用202.96.1.3:20002,端口號有65535個,那么1個公網IP就可以給6萬多個人同時使用了。
而且配置命令上,與動態NAT是一致的,只需要增加一個overload單詞就可以了。
ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0 overload
最后增加的overload,會自動啟用PAT模式。