CCNP路由实验之十五 NAT(网络地址转换)
CCNP路由实验之十五 NAT(网络地址转换)
众所周知,要让自己的电脑连上Internet,必须要到运营商(ISP)申请一个上网账号,依据此账号申请自己的宽频业务(拨号上网、商业固定IP等等),当你完毕申请后。就能够通过拨号拿到一个全域唯一的公网IP,又或者直接是一个商业宽频的固定IP。(注意,事实上ISP是把公网IP租给用户的。当用户不租时他们能够租给其它电脑,以提高公网IP使用率)然后用户通过这个在Internet网络上可被路由的合法IP地址,与Internet上其它的用户或服务进行通信,事实上这个公网IP就是实现你能够找到别人,别人也能够找到你的目的。相当于你的网络身份证。
显然,一个公网IP仅仅有一台主机能上网。可是全球这么多计算机要上互联网,就要一机一个公网IP,此时就会导致IPv4地址空间的短缺,同一时候对于家庭和小型办公室来讲申请多个公网IP地址的代价是非常高的。也是不现实的。
而长远的解决方法是添加地址空间,也就提出了IPv6方案。可是在IPv6开发和普及期间的过渡方法就是NAT 即网络地址转换,也叫做网络掩蔽或者IP掩蔽。NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。
在这个IPv4与IPv6长期共存的时期。NAT成为了一种广泛应用的技术。
NAT是在IP封包通过路由器或防火墙时重写源IP地址或目的IP地址的技术,这样的技术使得在私有网络中有多台主机但仅仅通过一个或几个公网IP地址訪问因特网成为可能。
提示:在平时我们自己组建的局域网中都是使用私有IP地址进行彼此通信的,比如
A类:10.0.0.0-10.255.255.255(长度相当于1个A类IP地址)
B类:172.16.0.0-172.31.255.255(长度相当于16个连续的B类IP地址)
C类:192.168.0.0-192.168.255.255(长度相当于256个连续的C类IP地址)
这些地址是不会被互联网分配使用的,因此它们在互联网上也从来不会被路由的。同一时候我们能够不必向ISP 或注冊中心申请而在公司或企业内部自由使用,尽管这些私有IP地址它们不能直接和互联网连接,但他们却能帮我们组建自己的内部网络,在内部局域网中将这些地址当作公用IP地址一样使用与局域网内部的其它主机设备进行通信。
NAT转换方法
Full cone NAT又叫全然锥形 NAT。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),全部发自iAddr:port1的包都经由eAddr:port2向外发送。
随意外部主机都能通过给eAddr:port2发包到达iAddr:port1。事实上静态一对一NAT就是Full cone NAT,它的穿透性最好
Address-Restricted cone NAT又叫限制锥形 NAT,它受IP限制。即仅仅接收以前发送到对端的IP地址来的数据包。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2)。全部发自iAddr:port1的包都经由eAddr:port2向外发送。随意外部主机(hostAddr:any)都能通过给eAddr:port2发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:any."any"也就是说port不受限制。事实上动态地址转换就是限制锥形 NAT
Port-Restricted cone NAT相似受限制锥形NAT(Restricted cone NAT),可是还有port限制。一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),全部发自iAddr:port1的包都经由eAddr:port2向外发送。一个外部主机(hostAddr:port3)能够发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:port3.事实上就是port多路复用NAT
Symmetric NAT(对称NAT)每一个来自同样内部IP与port的请求到一个特定目的地的IP地址和port,映射到一个独特的外部来源的IP地址和port。同一个内部主机发出一个信息包到不同的目的端,不同的映射使用外部主机收到了一封包从一个内部主机能够送一封包回来
事实上锥形NAT就是指:仅仅要是从同一个内部地址和port出来的包。无论目的地址是否同样,NAT 都将它转换成同一个外部地址和port。
NAT的原理
私有内部网络的client端将IP的网关个)就可以实现私有地址网络内全部计算机与Internet的通信需求。
NAT将自己主动改动IP报文的源IP地址和目的IP地址。Ip地址校验则在NAT处理过程中自己主动完毕。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还须要同一时候对报文的数据部分进行改动。以匹配IP头中已经改动过的源IP地址。
否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。
NAT功能
NAT不仅能攻克了lP地址不足的问题,并且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
宽带分享:这是 NAT 主机的最大功能。
安全防护:NAT 之内的 PC 联机到 Internet 上面时。他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(port扫描)种类型:
1>从inside到outside时转换源地址
2>从inside到outside时转换目标地址
3>从outside到inside时转换源地址
4>从outside到inside时转换目标地址
当中1和4互相隐含,2和3互相隐含实验一、静态一对一的NAT
PC配置:
PC#conf t
PC(config)#no ip routing
PC(config)#ip default-gateway 192.168.0.1
PC(config)#int fa0/0
PC(config-if)#ip add 192.168.0.100 255.255.255.0
PC(config-if)#no sh
PC(config-if)#exit
Server配置:
Server#conf t
Server(config)#no ip routing
Server(config)#ip default-gateway 192.168.0.1
Server(config)#int fa0/0
Server(config-if)#ip add 192.168.0.80 255.255.255.0
Server(config-if)#no sh
Server(config-if)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside //指定连接内部网络的内部接口,并启用NAT
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside //指定连接外部网络的外部接口。并启用NAT
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip nat inside source static 192.168.0.80202.100.100.80//指定内部源地址192.168.0.80静态一对一转换为202.100.100.80。
当然能够设置转换为外部接口的IP:202.100.100.1,可是这样外部网络訪问202.100.100.1的时候就全部转向訪问Server了。假设内部网络不要求上网或没有其它服务时能够这样做。否则会影响内部网络的使用。
所以不推荐
測试检查:
PC#ping 202.100.100.100 //PC没有转换
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Server#ping 202.100.100.100 //Server直接訪问外部Internet
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max= 28/70/124 ms
Internet#ping 202.100.100.80 //Internet直接通过公网IP訪问内部Server
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.80, timeoutis 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 28/77/152 ms
PC#ping 202.100.100.80 //PC能够通过公网IP訪问内部server
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.80, timeoutis 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 8/39/140 ms
R1#debug ip nat //在R1调试转换信息,对于ICMP包,NAT通过更改ICMP的ID,来实现多对少的映射
IP NAT debugging is on
*Mar 100:12:25.683: NAT*: s=192.168.0.80->202.100.100.80, d=202.100.100.100 [0]
*Mar 100:12:26.655: NAT*: s=192.168.0.80->202.100.100.80, d=202.100.100.100 [1]
*Mar 100:12:26.751: NAT*: s=202.100.100.100, d=202.100.100.80->192.168.0.80 [1]
*Mar 100:12:26.815: NAT*: s=192.168.0.80->202.100.100.80, d=202.100.100.100 [2]
R1#sh ip nat translations //查看转换状态
Pro Inside global Inside local Outsidelocal Outside global
icmp 202.100.100.80:1 192.168.0.80:1 202.100.100.100:1 202.100.100.100:1
--- 202.100.100.80 192.168.0.80 --- ---
实验二、动态NAT
PC1配置:
PC1#conf t
PC1(config)#no ip routing
PC1(config)#ip default-gateway 192.168.0.1
PC1(config)#int fa0/0
PC1(config-if)#ip add 192.168.0.100 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#exit
PC2配置:
PC2#conf t
PC2(config)#no ip routing
PC2(config)#ip default-gateway 192.168.0.1
PC2(config)#int fa0/0
PC2(config-if)#ip add 192.168.0.101 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#exit
PC3配置:
PC3#conf t
PC3(config)#no ip routing
PC3(config)#ip default-gateway 192.168.0.1
PC3(config)#int fa0/0
PC3(config-if)#ip add 192.168.0.50 255.255.255.0
PC3(config-if)#no sh
PC3(config-if)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list standard nat//定义能够进行转换的内部地址范围
R1(config-std-nacl)#10 permit 192.168.0.0 0.0.0.255
R1(config-std-nacl)#20 deny any
R1(config-std-nacl)#exit
R1(config)#ip nat pool global-pool 202.100.100.2202.100.100.3 netmask 255.255.255.0//创建仅仅有两个公网IP的地址池。
R1(config)#ip nat inside source list nat pool global-pool//创建动态转换将符合ACL的内部地址随机转换成公网IP地址池中的一个。动态NAT是暂时映射关系。过一段时间没实用就会删除映射关系,释放公网IP。
注意公网IP地址池有几个IP,那么同一时间仅仅能有几台电脑能够上网,其它电脑要上网必须等暂时映射关系结束才干使用被释放的公网IP再进行转换
R1(config)#ip nat translation timeout 10 //配置动态NAT的超时时间为10s,默觉得24小时,即空暇10s没实用。就删除暂时映射关系。
方便測试
检查測试:
PC1#ping 202.100.100.100 //PC1是第一个转换的,从公网IP池中能够取得一个公网进行转换,能够上网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max= 28/96/172 ms
PC2#ping 202.100.100.100 //PC2是第二个转换的,从公网IP池中能够取得第二个公网进行转换,能够上网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max= 28/90/148 ms
PC3#ping 202.100.100.100 r 100 //PC3由于公网IP池中地址耗尽,要等到其它内部用户的NAT暂时映射关系结束。才干使用被释放出来的公网IP进行上网。
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 0 percent (50/100)
R1#debug ip nat
IP NAT debugging is on
*Mar 100:42:20.671: NAT*: s=192.168.0.100->202.100.100.2, d=202.100.100.100 [1]
*Mar 1 00:42:22.795:NAT*: s=202.100.100.100, d=202.100.100.2->192.168.0.100 [2]
*Mar 100:52:35.259: NAT*: s=192.168.0.101->202.100.100.3, d=202.100.100.100 [5]
*Mar 100:52:35.367: NAT*: s=202.100.100.100, d=202.100.100.3->192.168.0.101 [5]
*Mar 101:07:28.083: NAT: translation failed (A), dropping packet s=192.168.0.50d=202.100.100.100 [158] //拒绝
*Mar 101:07:28.091: NAT: translation failed (A), dropping packet s=192.168.0.50d=202.100.100.100 [159]
*Mar 101:07:59.007: NAT: expiring 202.100.100.2 (192.168.0.100) icmp 3 (3) //过期结束映射关系,释放公网IP
*Mar 101:08:01.059: NAT: expiring 202.100.100.3 (192.168.0.101) icmp 2 (2)
*Mar 101:08:06.463: NAT*: s=192.168.0.50->202.100.100.2, d=202.100.100.100 [160]
*Mar 101:08:06.579: NAT*: s=202.100.100.100, d=202.100.100.2->192.168.0.50 [160]
*Mar 101:08:06.659: NAT*: s=192.168.0.50->202.100.100.2, d=202.100.100.100 [161]
R1#sh access-lists //查看ACL
Standard IP access list nat
10 permit192.168.0.0, wildcard bits 0.0.0.255 (303 matches)
20 deny any
R1#sh ip nat translations //注意10s超时后映射关系清空
Pro Inside global Inside local Outsidelocal Outside global
icmp 202.100.100.2:4 192.168.0.100:4 202.100.100.100:4 202.100.100.100:4
--- 202.100.100.2 192.168.0.100 --- ---
icmp 202.100.100.3:3 192.168.0.101:3 202.100.100.100:3 202.100.100.100:3
--- 202.100.100.3 192.168.0.101 --- ---
实验三、port多路复用的NAT
PC1配置:
PC1#conf t
PC1(config)#no ip routing
PC1(config)#ip default-gateway 192.168.0.1
PC1(config)#int fa0/0
PC1(config-if)#ip add 192.168.0.100 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#exit
PC2配置:
PC2#conf t
PC2(config)#no ip routing
PC2(config)#ip default-gateway 192.168.0.1
PC2(config)#int fa0/0
PC2(config-if)#ip add 192.168.0.101 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list standard nat //定义能够进行NAT转换的内部IP范围
R1(config-std-nacl)#permit 192.168.0.0 0.0.0.255
R1(config-std-nacl)#deny any
R1(config-std-nacl)#exit
R1(config)#ip nat inside source list nat interface fa0/1overload//在外网接口启用port复用NAT转换。转换我们的内部IP
检查測试:
PC1#ping 202.100.100.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 40/153/372 ms
PC2#ping 202.100.100.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 28/124/388 ms
R1#debug ip nat
*Mar 100:15:31.883: NAT*: s=192.168.0.100->202.100.100.1, d=202.100.100.100 [25]
*Mar 100:15:32.107: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.100 [25]
*Mar 100:16:18.395: NAT*: s=192.168.0.101->202.100.100.1, d=202.100.100.100 [45]
*Mar 100:16:18.639: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.101 [45]
R1#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
icmp 202.100.100.1:4 192.168.0.100:4 202.100.100.100:4 202.100.100.100:4
icmp 202.100.100.1:5 192.168.0.101:4 202.100.100.100:4 202.100.100.100:5
R1#sh access-lists
Standard IP access list nat
10 permit192.168.0.0, wildcard bits 0.0.0.255 (4 matches)
20 deny any
实验四、动态NATport多路复用
PC1配置:
PC1#conf t
PC1(config)#no ip routing
PC1(config)#ip default-gateway 192.168.0.1
PC1(config)#int fa0/0
PC1(config-if)#ip add 192.168.0.101 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#exit
PC2配置:
PC2#conf t
PC2(config)#no ip routing
PC2(config)#ip default-gateway 192.168.0.1
PC2(config)#int fa0/0
PC2(config-if)#ip add 192.168.0.102 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#exit
PC3配置:
PC3#conf t
PC3(config)#no ip routing
PC3(config)#ip default-gateway 192.168.01.
PC3(config)#ip default-gateway 192.168.0.1
PC3(config)#int fa0/0
PC3(config-if)#ip add 192.168.0.103 255.255.255.0
PC3(config-if)#no sh
PC3(config-if)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list standard go-internet
R1(config-std-nacl)#10 permit 192.168.0.0 0.0.0.255
R1(config-std-nacl)#20 deny any
R1(config-std-nacl)#exit
R1(config)# ip nat pool public-ip202.100.100.80 202.100.100.81 prefix-length 24
R1(config)#ip nat inside source list go-internet poolpublic-ip overload //注意overload參数关键。启用复用
检查測试:
PC1#ping 202.100.100.100 r 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.!!!!!!!!!
Success rate is 90 percent (9/10), round-trip min/avg/max= 28/46/108 ms
PC2#ping 202.100.100.100 r 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.!!!!!!!!!
Success rate is 90 percent (9/10), round-trip min/avg/max= 28/55/80 ms
PC3#ping 202.100.100.100 r 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max= 40/154/1056 ms
R1#debug ip nat //可见三台主机能够同一时候訪问外网,并且仅仅用了公网ip地址池中的当中一个IP
IP NAT debugging is on
*Mar 100:13:27.883: NAT*: s=202.100.100.100, d=202.100.100.80->192.168.0.101[ 9]
*Mar 100:13:27.887: NAT*: ICMP id=0->1
*Mar 100:13:27.887: NAT*: s=192.168.0.102->202.100.100.80, d=202.100.100.100[ 1]
*Mar 100:13:27.895: NAT*: ICMP id=2->0
*Mar 100:13:27.895: NAT*: s=202.100.100.100, d=202.100.100.80->192.168.0.103[ 1]
*Mar 100:13:27.903: NAT*: ICMP id=1->0
*Mar 100:13:27.903: NAT*: s=202.100.100.100, d=202.100.100.80->192.168.0.102[ 1]
*Mar 100:13:27.911: NAT*: ICMP id=0->2
*Mar 100:13:27.911: NAT*: s=192.168.0.103->202.100.100.80, d=202.100.100.100 [
R1#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
icmp 202.100.100.80:1 192.168.0.101:1 202.100.100.100:1 202.100.100.100:1
icmp 202.100.100.80:0 192.168.0.102:1 202.100.100.100:1 202.100.100.100:0
icmp 202.100.100.80:2 192.168.0.103:1 202.100.100.100:1 202.100.100.100:2
实验五、网络地址port转换(NAPT)
PC1配置:
PC#conf t
PC(config)#no ip routing
PC(config)#ip default-gateway 192.168.0.1
PC(config)#int fa0/0
PC(config-if)#ip add 192.168.0.100 255.255.255.0
PC(config-if)#no sh
PC(config-if)#exit
Server配置:
Server#conf t
Server(config)#no ip routing
Server(config)#ip default-gateway 192.168.0.1
Server(config)#int fa0/0
Server(config-if)#ip add 192.168.0.80 255.255.255.0
Server(config-if)#no sh
Server(config-if)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
Internet(config)#ip http server
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list standard nat //定义能够进行NAT转换的内部IP范围
R1(config-std-nacl)#permit 192.168.0.0 0.0.0.255
R1(config-std-nacl)#deny any
R1(config-std-nacl)#exit
R1(config)#ip nat inside source list nat interface fa0/1overload//开启port多路复用让内网用户上网
R1(config)#ip nat inside source static tcp 192.168.0.8080 202.100.100.1 80//把server的webport80放出来,跟我们的外网IP的80建立映射。
检查測试:
PC#ping 202.100.100.100 //PC能够訪问外网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max= 44/130/216 ms
PC#telnet 202.100.100.1 80 //PC不能够通过外网IP訪问局域网内的server (注意),传说的回流问题
Trying 202.100.100.1, 80 ...
% Connection refused by remote host
Internet#telnet 202.100.100.1 80 //外网能够訪问内网server的80
Trying 202.100.100.1, 80 ... Open
HTTP/1.1 400 Bad Request
Date: Fri, 01 Mar 2002 00:15:36 GMT
Server: cisco-IOS
Accept-Ranges: none
400 Bad Request
[Connection to 202.100.100.1 closed by foreign host]
Server#ping 202.100.100.100 //server能够上网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 36/108/324 ms
R1#debug ip nat
IP NAT debugging is on
*Mar 100:13:40.583: NAT: s=192.168.0.100->202.100.100.1, d=202.100.100.100 [0]
*Mar 100:13:41.559: NAT*: s=192.168.0.100->202.100.100.1, d=202.100.100.100 [1]
*Mar 100:14:43.879: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [59621]
*Mar 100:14:44.039: NAT*: s=192.168.0.80->202.100.100.1, d=202.100.100.100 [5521]
*Mar 100:14:44.299: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [59622]
*Mar 100:14:44.367: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [59623]
*Mar 100:25:08.591: NAT*: s=192.168.0.80->202.100.100.1, d=202.100.100.100 [4]
*Mar 100:25:08.611: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [4]
R1#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
icmp 202.100.100.1:1 192.168.0.80:1 202.100.100.100:1 202.100.100.100:1
tcp 202.100.100.1:80 192.168.0.80:80 202.100.100.100:35356 202.100.100.100:35356
tcp 202.100.100.1:80 192.168.0.80:80 --- ---
icmp 202.100.100.1:2 192.168.0.100:2 202.100.100.100:2 202.100.100.100:2
R1#sh access-lists
Standard IP access list nat
10 permit192.168.0.0, wildcard bits 0.0.0.255 (6 matches)
20 deny any 20 deny any
实验六、区域无关NAT(Domainless NAT)(推荐使用)
PC配置:
PC#conf t
PC(config)#no ip routing
PC(config)#ip default-gateway 192.168.0.1
PC(config)#int fa0/0
PC(config-if)#ip add 192.168.0.100 255.255.255.0
PC(config-if)#no sh
PC(config-if)#exit
Server配置:
Server#conf t
Server(config)#no ip routing
Server(config)#ip default-gateway 192.168.0.1
Server(config)#int fa0/0
Server(config-if)#ip add 192.168.0.80 255.255.255.0
Server(config-if)#no sh
Server(config-if)#exit
Server(config)#ip http server
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat enable //开启nat支持。注意没有区域之分
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat enable //开启nat支持,注意没有区域之分
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list standard Internet
R1(config-std-nacl)#10 permit 192.168.0.0 0.0.0.255
R1(config-std-nacl)#20 deny any
R1(config-std-nacl)#exit
R1(config)#ip nat source list Internet int fa0/1 overload//注意没有区域之分
R1(config)#ip nat source static tcp 192.168.0.80 80202.100.100.1 80//注意没有区域之分
检查測试:
PC#ping 202.100.100.100 //PC能够上网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 88/120/192 ms
Server#ping 202.100.100.100 //Server能够上网
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.100.100.100,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 80/310/1160 ms
Internet#telnet 202.100.100.1 80 //外网能够訪问Server的80服务
Trying 202.100.100.1, 80 ... Open
HTTP/1.1 400 Bad Request
Date: Fri, 01 Mar 2002 00:21:03 GMT
Server: cisco-IOS
Accept-Ranges: none
400 Bad Request
[Connection to 202.100.100.1 closed by foreign host]
PC#telnet 202.100.100.1 80 //PC能够通过外网IP訪问Server的80服务
Trying 202.100.100.1, 80 ... Open
HTTP/1.1 400 Bad Request
Date: Fri, 01 Mar 2002 00:26:32 GMT
Server: cisco-IOS
Accept-Ranges: none
400 Bad Request
[Connection to 202.100.100.1 closed by foreign host]
R1#debug ip nat //调试NAT
*Mar 100:19:15.107: NAT*: s=192.168.0.100->202.100.100.1, d=202.100.100.100 [19]
*Mar 100:19:15.211: NAT: s=202.100.100.100, d=202.100.100.1->192.168.0.100 [19]
*Mar 100:19:32.875: NAT*: s=192.168.0.80->202.100.100.1, d=202.100.100.100 [0]
*Mar 100:19:32.963: NAT: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [0]
*Mar 100:20:19.479: NAT: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [11992]
*Mar 100:20:19.595: NAT*: s=192.168.0.80->202.100.100.1, d=202.100.100.100 [4167]
*Mar 100:20:19.659: NAT: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [11993]
*Mar 100:20:19.667: NAT: s=202.100.100.100, d=202.100.100.1->192.168.0.80 [11994]
*Mar 100:22:25.551: NAT: s=192.168.0.100->202.100.100.1, d=202.100.100.1 [2180]
*Mar 100:22:25.555: NAT: s=202.100.100.1, d=202.100.100.1->192.168.0.80 [2180]
*Mar 100:22:25.663: NAT: s=192.168.0.80->202.100.100.1, d=202.100.100.1 [908]
*Mar 100:22:25.667: NAT: s=202.100.100.1, d=202.100.100.1->192.168.0.100 [908]
R1#sh ip nat nvi translations //查看NVI转换
Pro Source global Source local Destin local Destin global
icmp 202.100.100.1:1 192.168.0.80:1 202.100.100.100:1 202.100.100.100:1
tcp 202.100.100.1:80 192.168.0.80:80 --- ---
icmp 202.100.100.1:4 192.168.0.100:4 202.100.100.100:4 202.100.100.100:4
tcp 202.100.100.1:40023 192.168.0.100:40023 202.100.100.1:80192.168.0.80:80
tcp 202.100.100.100:63747 202.100.100.100:63747202.100.100.1:80 192.168.0.80:80
R1#sh access-lists //查看ACL
Standard IP access list Internet
10 permit192.168.0.0, wildcard bits 0.0.0.255 (8 matches)
20 deny any (2 matches)
ip nat inside source 数据包由inside 接口outside接口发包时,是先路由再NAT转换。而数据包由outside 接口向inside接口发包时是先NAT转换再路由,数据包的发送方向不同,则处理过程也不同
ip nat source做NAT转换时,在须要NAT转换接口上使用的命令为ip nat enable,数据包在由一个接口向还有一个接口发包时,顺序是先路由再NAT然后再路由(第一个路由仅仅是匹配一下路由,而没有真正的路由行为,第二个路由则是真实的路由行为),无论数据包从哪个接口发向哪个接口,处理过程都是一样的。
实验七、NAT解决网络地址重叠
PC1配置:
PC1#conf t
PC1(config)#no ip routing
PC1(config)#ip default-gateway 192.168.0.1
PC1(config)#int fa0/0
PC1(config-if)#ip add 192.168.0.101 255.255.255.0
PC1(config-if)#no sh
PC1(config-if)#exit
PC2配置:
PC2#conf t
PC2(config)#no ip routing
PC2(config)#ip default-gateway 192.168.0.1
PC2(config)#int fa0/0
PC2(config-if)#ip add 192.168.0.101 255.255.255.0
PC2(config-if)#no sh
PC2(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 172.168.20.0 255.255.255.0202.100.100.2 //注意加入去往对端内部全局地址路由
R1(config)#ip nat inside source static 192.168.0.101172.168.10.101
R2配置:
R2#conf t
R2(config)#int fa0/0
R2(config-if)#ip add 192.168.0.1 255.255.255.0
R2(config-if)#ip nat inside
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int fa0/1
R2(config-if)#ip add 202.100.100.2 255.255.255.0
R2(config-if)#ip nat outside
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 172.168.10.0 255.255.255.0 202.100.100.1//注意加入去往对端内部全局地址路由
R2(config)#ip nat inside source static 192.168.0.101 172.168.20.101
检查測试:
PC1#ping 172.168.20.101
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.168.20.101, timeoutis 2 seconds:
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max= 40/40/40 ms
PC2#ping 172.168.10.101
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.168.10.101, timeoutis 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max= 40/258/1100 ms
R1#debug ip nat
IP NAT debugging is on
*Mar 100:14:49.599: NAT*: s=192.168.0.101->172.168.10.101, d=172.168.20.101 [1]
*Mar 100:14:51.103: NAT*: s=172.168.20.101, d=172.168.10.101->192.168.0.101 [0]
*Mar 100:14:51.151: NAT*: s=192.168.0.101->172.168.10.101, d=172.168.20.101 [0]
*Mar 100:14:51.203: NAT*: s=172.168.20.101, d=172.168.10.101->192.168.0.101 [1]
R2#debug ip nat
IP NAT debugging is on
*Mar 100:14:48.267: NAT*: s=172.168.10.101, d=172.168.20.101->192.168.0.101 [1]
*Mar 100:14:49.723: NAT*: s=192.168.0.101->172.168.20.101, d=172.168.10.101 [0]
*Mar 100:14:49.795: NAT*: s=172.168.10.101, d=172.168.20.101->192.168.0.101 [0]
*Mar 100:14:49.843: NAT*: s=192.168.0.101->172.168.20.101, d=172.168.10.101 [1]
R1#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
icmp 172.168.10.101:1 192.168.0.101:1 172.168.20.101:1 172.168.20.101:1
--- 172.168.10.101 192.168.0.101 --- ---
R2#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
icmp 172.168.20.101:1 192.168.0.101:1 172.168.10.101:1 172.168.10.101:1
--- 172.168.20.101 192.168.0.101 --- ---
实验八、NAT的Extendable參数使用
Server配置:
Server#conf t
Server(config)#noip routing
Server(config)#ipdefault-gateway 192.168.0.1
Server(config)#intfa0/0
Server(config-if)#ipadd 192.168.0.80 255.255.255.0
Server(config-if)#nosh
Server(config-if)#exit
Server(config)#usernamecisco password cisco
Server(config)#linevty 0 4
Server(config-line)#loginlocal
Server(config-line)#end
ISP1配置:
ISP1#conf t
ISP1(config)#intfa0/0
ISP1(config-if)#ipadd 11.11.11.11 255.255.255.0
ISP1(config-if)#nosh
ISP1(config-if)#exit
ISP2配置
ISP2#conf t
ISP2(config)#intfa0/0
ISP2(config-if)#ipadd 22.22.22.22 255.255.255.0
ISP2(config-if)#nosh
ISP2(config-if)#exit
R1配置:
R1#conf t
R1(config)#intfa0/0
R1(config-if)#ipadd 192.168.0.1 255.255.255.0
R1(config-if)#ipnat inside
R1(config-if)#nosh
R1(config-if)#exit
R1(config)#intfa0/1
R1(config-if)#ipadd 11.11.11.1 255.255.255.0
R1(config-if)#ipnat outside
R1(config-if)#nosh
R1(config-if)#exit
R1(config)#intfa1/0
R1(config-if)#ipadd 22.22.22.1 255.255.255.0
R1(config-if)#ipnat outside
R1(config-if)#nosh
R1(config-if)#exit
R1(config)# ip nat inside sourcestatic tcp 192.168.0.80 23 11.11.11.80 23 extendable
R1(config)# ip nat inside sourcestatic tcp 192.168.0.80 23 22.22.22.80 23 extendable
检查測试:
ISP1#telnet11.11.11.80
Trying11.11.11.80 ... Open
User AccessVerification
Username: cisco
Password:
Server>
ISP2#telnet22.22.22.80
Trying22.22.22.80 ... Open
User AccessVerification
Username: cisco
Password:
Server>
R1#debug ip nat
*Mar 1 01:28:56.271: NAT*: s=11.11.11.11,d=11.11.11.80->192.168.0.80 [33886]
*Mar 1 01:28:56.311: NAT*:s=192.168.0.80->11.11.11.80, d=11.11.11.11 [2465]
*Mar 1 01:28:56.379: NAT*: s=11.11.11.11,d=11.11.11.80->192.168.0.80 [33887]
*Mar 1 01:28:56.471: NAT*: s=11.11.11.11,d=11.11.11.80->192.168.0.80 [33888]
*Mar 1 01:29:26.407: NAT*: s=22.22.22.22,d=22.22.22.80->192.168.0.80 [44393]
*Mar 1 01:29:26.491: NAT*:s=192.168.0.80->22.22.22.80, d=22.22.22.22 [36105]
*Mar 1 01:29:26.547: NAT*: s=22.22.22.22,d=22.22.22.80->192.168.0.80 [44394]
*Mar 1 01:29:26.587: NAT*: s=22.22.22.22,d=22.22.22.80->192.168.0.80 [44395]
R1#sh ip nattranslations
Pro Insideglobal Inside local Outside local Outside global
tcp11.11.11.80:23 192.168.0.80:23 11.11.11.11:14462 11.11.11.11:14462
tcp22.22.22.80:23 192.168.0.80:23 22.22.22.22:62983 22.22.22.22:62983
tcp11.11.11.80:23 192.168.0.80:23 --- ---
tcp22.22.22.80:23 192.168.0.80:23 --- ---
用户能够使用Extendable參数配置多个静态转换。当中每一个转换都能够使用用同样的本地或全局地址转换。
- 实验九、NAT实现TCP负载均衡
Server1配置:
Server1#conf t
Server1(config)#no ip routing
Server1(config)#ip default-gateway 192.168.0.1
Server1(config)#int fa0/0
Server1(config-if)#ip add 192.168.0.101 255.255.255.0
Server1(config-if)#no sh
Server1(config-if)#exit
Server1(config)#line vty 0 4
Server1(config-line)#password cisco
Server1(config-line)#login
Server1(config-line)#exit
Server2配置:
Server2#conf t
Server2(config)#no ip routing
Server2(config)#ip default-gateway 192.168.0.1
Server2(config)#int fa0/0
Server2(config-if)#ip add 192.168.0.102 255.255.255.0
Server2(config-if)#no sh
Server2(config-if)#exit
Server2(config)#line vty 0 4
Server2(config-line)#password cisco
Server2(config-line)#login
Server2(config-line)#exit
Server3配置:
Server3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Server3(config)#no ip routing
Server3(config)#ip default-gateway 192.168.0.1
Server3(config)#int fa0/0
Server3(config-if)#ip add 192.168.0.103 255.255.255.0
Server3(config-if)#no sh
Server3(config-if)#exit
Server3(config)#line vty 0 4
Server3(config-line)#password cisco
Server3(config-line)#login
Server3(config-line)#exit
Internet配置:
Internet#conf t
Internet(config)#int fa0/0
Internet(config-if)#ip add 202.100.100.100 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
R1配置:
R1#conf t
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 202.100.100.80 255.255.255.0 //主ip
R1(config-if)#ip add 202.100.100.1 255.255.255.0 secondary//副ip
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip access-list extended VIP //标识用来转换的公网IP
R1(config-ext-nacl)#permit ip any host 202.100.100.1
R1(config-ext-nacl)#deny ip any any
R1(config-ext-nacl)#exit
R1(config)#ip nat poolserverfarm 192.168.0.101 192.168.0.103 netmask 255.255.255.0 type rotary//定义NAT地址池来标识内部server的本地地址。注意要用到keywordrotary,表明我们要使用轮循的方式从NAT地址池中取出相应IP地址来转换合法IP报文。
最后,把目标地址为訪问表中IP的报文转换成地址池中定义的IP地址。
R1(config)#ip nat inside destination list VIP poolserverfarm
检查測试:
Internet#telnet 202.100.100.1 //第一次telnet 进入server3
Trying 202.100.100.1 ... Open
User Access Verification
Password:
Server3>q
[Connection to 202.100.100.1 closed by foreign host]
Internet#telnet 202.100.100.1 //第二次telnet进入server2
Trying 202.100.100.1 ... Open
User Access Verification
Password:
Server1>q
[Connection to 202.100.100.1 closed by foreign host]
Internet#telnet 202.100.100.1//第三次telnet进入server1
Trying 202.100.100.1 ... Open
User Access Verification
Password:
Server2>q
[Connection to 202.100.100.1 closed by foreign host]
R1#debug ip nat
*Mar 101:05:35.271: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.103[32504]
*Mar 101:05:35.303: NAT*: s=192.168.0.103->202.100.100.1, d=202.100.100.100[62175]
*Mar 101:05:36.047: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.101 [60711]
*Mar 101:05:36.147: NAT*: s=192.168.0.101->202.100.100.1, d=202.100.100.100[26348]
*Mar 101:06:42.691: NAT*: s=202.100.100.100, d=202.100.100.1->192.168.0.102 [6985]
*Mar 101:06:42.751: NAT*: s=192.168.0.102->202.100.100.1, d=202.100.100.100 [35992]
R1#sh ip nat translations
Pro Inside global Inside local Outsidelocal Outside global
tcp 202.100.100.1:23 192.168.0.101:23 202.100.100.100:61090 202.100.100.100:61090
tcp 202.100.100.1:23 192.168.0.102:23 202.100.100.100:47549 202.100.100.100:47549
tcp 202.100.100.1:23 192.168.0.103:23 202.100.100.100:61337 202.100.100.100:61337
R1#sh access-list
Extended IP access list VIP
10 permit ip any host 202.100.100.1 (26 matches)
20 deny ip any any
通过目的地址循环轮询转换实现server的TCP负载均衡,能够把一个虚拟主机映射到多个真实的主机(如Webserver)上。
虚拟主上每次发起的新TCP会话将与一个不同的真实主机进行。通过NAT,你能够在你的内部网络建立多个真实主机,以分担众多用户对一个虚拟主机訪问的负荷。每次从外部网络发起的新会话所相应的真实主机的循环是通过对目的地址以地址池的方式进行轮回转换实现的。
它是一种反向NAT转换,是对目的地址的转换。而不是对源地址的转换. TCP负载转换原理
a.外部网络用户主机发起与虚拟主机(内部全局地址)的连接。此时数据包中的源地址为外部本地地址。目的地址为虚拟主机地址。
b.当路由器接收到连接请求数据包时。创建一个内部网络中真实主机(如1.1.1.1)进行关联的新的NAT转换条目。
c.NAT路由器把连接请求的数据包中的目的地址用真实主机的本地地址进行替换(源地址不变),然后继续发送连接请求数据包。
d.内部网络中真实主机1.1.1.1接收到这个连接请求数据包。并发出一个应答数据包。应答数据包中的源地址是内部真实主机本地地址(1.1.1.1),目的地址为外部网络主机的IP地址
e.当NAT路由器接收到这个应答数据包后,使用内部本地地址和port号,以及外部地址和port号作为keyword在NAT表中进行查找。找到后把应答包中的源地址转换成虚拟主机地址(内部全局地址)进行替换(目的地址不变),继续转发应答数据包。
直接外部网络用户收到应答数据包。
f.之后的转换过程就是不断反复,但每一次转换时虚拟主机所相应的内部主机本地地址不再是1.1.1.1,可能是1.1.1.2。或者1.1.1.3。
这是一个动态NAT转换。不是静态的。
注意:这样的反向的NAT仅仅支持TCP,并且这样的技术不会自己主动检查后端的多台server是否在线,直接就会将数据包转发过去,假设后端server中的当中一台出现故障。而此时刚好NAT转换后将数据发给它。就会导致不能正确的提供服务给客户。
企业不推荐使用
层或第7层交换(实质为:server负载均衡)解决方式。
Cisco IOS SLB 会为发出请求的client呈现出一个单独的虚拟serverIP地址。举例来说,多个client向这个虚拟IP地址发出IP 请求,比方HTTP Get 请求。
交换机会把这些请求分发(负载分担)到多台server上。
然后交换机依据多种因素来实施负载分担。比方TCP和UDP协议、负载和其它负载分担參数。
除此之外,有必要的话,交换机还会把client发来的请求转发给同一台server,比方在使用FTP时,一个client必须在整个回话或数据流过程中。与同样的server进行通信。
通常情况下,client设备会使用DNS来解析虚拟serverIP地址。使用Cisco IOS SLB 来提供冗余性、可扩展性和高性能(负载分担)。能够获得下面优点。
通过把client请求分布到server集群中,获得了更高的性能。
server应用管理员的工作更为轻松。
client仅仅知道虚拟server。因此真实server发生变化时无需对client进行管理。从而使Cisco IOS SLB 具有可扩展性。
为真实server提供了安全保障,由于真实server的地址永远不须要通告给外部网络。而用户仅仅须要知道虚拟的IP地址。管理员还能够依据IP地址和IPport号来过滤不必要的流量。
零停运时间。易于维护,在替换物理(真实)server时其它server负责处理client的请求。
交换机能够检測到无法进行响应的server,然后不再向这些server转发请求,直到这些server能够回应交换机的測试为止。
SLB 的运作模式
分派模式(Dispatched Mode):每一个真实server都要把虚拟server地址配置为环回地址或辅助IP地址。Cisco IOS SLB 会在MAC层把数据包重定向到真实server。由于分派模式不会对虚拟IP地址进行改动。因此真实server为了实现Cisco IOS SLB 必须建立二层邻接关系,或者使接入的路由器无需通过路由就能够找到所选的真实server。
在分派模式中,SLB路由器、真实server地址和虚拟server地址不须要在同一子网中。
採用分派模式时,server必须选择下面的一种做法,否则丢弃数据包:
1>在真实server上加入环回口地址。并把地址设置为虚拟server的IP地址
2>加入第二个IP地址为虚拟server的IP地址:由于SLBserver)会把目的IP为虚拟IP的数据包分派到真实
的server上,在接口下添加一个“secondary”地址就可以;採用这样的方式时,会报“IP地址反复”
的错误,可是这不影响使用。
定向模式(Directed mode):全部的真实server都无需知道虚拟server的IP地址。Cisco IOS SLB 会对client和真实server之间交换的数据包进行转换。也就是通过NAT把虚拟serverIP地址转换为真实server地址。在定向模式中。路由器会更改客户计算机发来的数据包,把目的IP地址改为真实server的IP地址
WWW1配置:
WWW1#conf t
WWW1(config)#noip routing
WWW1(config)#ipdefault-gateway 192.168.0.1
WWW1(config)#intfa0/0
WWW1(config-if)#ipadd 192.168.0.81 255.255.255.0
WWW1(config-if)#nosh
WWW1(config-if)#exit
WWW1(config)#iphttp server
WWW2配置:
WWW2#conf t
WWW2 (config)#noip routing
WWW2 (config)#ipdefault-gateway 192.168.0.1
WWW2 (config)#intfa0/0
WWW2 (config-if)#ipadd 192.168.0.82 255.255.255.0
WWW2 (config-if)#nosh
WWW2 (config-if)#exit
WWW2 (config)#iphttp server
WWW3配置:
WWW3#conf t
WWW3 (config)#noip routing
WWW3 (config)#ipdefault-gateway 192.168.0.1
WWW3 (config)#intfa0/0
WWW3 (config-if)#ipadd 192.168.0.83 255.255.255.0
WWW3 (config-if)#nosh
WWW3 (config-if)#exit
WWW3 (config)#iphttp server
Client1配置:
Client1#conf t
Client1(config)#intfa0/0
Client1(config-if)#ipadd 200.200.200.200 255.255.255.0
Client1(config-if)#nosh
Client1(config-if)#exit
Client2配置:
Client2#conf t
Client2(config)#intfa0/0
Client2(config-if)#ipadd 200.200.200.100 255.255.255.0
Client2(config-if)#nosh
Client2(config-if)#exit
R1配置:
R1#conf t
R1(config)#intfa0/0
R1(config-if)#ipadd 192.168.0.1 255.255.255.0
R1(config-if)#nosh
R1(config-if)#exit
R1(config)#intfa0/1
R1(config-if)#ipadd 200.200.200.1 255.255.255.0
R1(config-if)#nosh
R1(config-if)#exit
R1(config)#ipslb serverfarm webserver //创建server组
R1(config-slb-sfarm)#natserver //开启NAT。即定向模式
R1(config-slb-sfarm)#predictorroundrobin//配置採用负载平衡的方式为轮询。即为默认方式
R1(config-slb-sfarm)#real192.168.0.81 //加入真实server到组中
R1(config-slb-real)#faildetect//配置检測server的可用状态。假设server发生问题,SLB将不会把流量转发到该server
R1(config-slb-real)#inservice//让server生效
R1(config-slb-real)#exit
R1(config-slb-sfarm)#real192.168.0.82
R1(config-slb-real)#faildetect
R1(config-slb-real)#inservice
R1(config-slb-real)#exit
R1(config-slb-sfarm)#real192.168.0.83
R1(config-slb-real)#faildetect
R1(config-slb-real)#inservice
R1(config-slb-real)#exit
R1(config-slb-sfarm)#exit
R1(config)#ipslb vserver VIP //创建server虚拟IP
R1(config-slb-vserver)#virtual200.200.200.80 tcp www//设置IP和相应服务
R1(config-slb-vserver)#serverfarmwebserver //把IP关联到server组
R1(config-slb-vserver)#inservice//启用虚拟server
R1(config-slb-vserver)#exit
检查測试:
Client1#telnet200.200.200.80 80
Trying200.200.200.80, 80 ... Open
HTTP/1.1 400 BadRequest
Date: Fri, 01Mar 2002 00:34:50 GMT
Server:cisco-IOS
Accept-Ranges:none
400 Bad Request
[Connection to200.200.200.80 closed by foreign host]
Client2#telnet200.200.200.80 80
Trying200.200.200.80, 80 ... Open
HTTP/1.1 400 BadRequest
Date: Fri, 01Mar 2002 00:50:49 GMT
Server:cisco-IOS
Accept-Ranges:none
400 Bad Request
[Connection to200.200.200.80 closed by foreign host]
R1#sh ip slbconns
vserver prot client real state nat
-------------------------------------------------------------------------------
VIP TCP 200.200.200.200:59073 192.168.0.82 ESTAB S
VIP TCP 200.200.200.100:16259 192.168.0.83 SYNCLIENT S
VIP TCP 200.200.200.100:47978 192.168.0.83 ESTAB S
R1#sh ip slbstats
Pkts via normalswitching: 156
Pkts via specialswitching: 0
ConnectionsCreated: 12
ConnectionsEstablished: 10
ConnectionsDestroyed: 9
ConnectionsReassigned: 0
ZombieCount: 0
R1#sh ip slbvservers
slb vserver prot virtual state conns
-------------------------------------------------------------------
VIP TCP 200.200.200.80:80 INSERVICE 3
R1#sh ip slbreals
real server farm weight state conns
-------------------------------------------------------------------
192.168.0.81 WEBSERVER 8 OPERATIONAL 0
192.168.0.82 WEBSERVER 8 OPERATIONAL 1
192.168.0.83 WEBSERVER 8 FAILED 1
CCNP路由实验之十五 NAT(网络地址转换)的更多相关文章
- CCNP路由实验之十 组播(多播)
CCNP路由实验之十 组播(多播) 种方法: 在交换机上配置静态的多播MAC地址到用户接口的映射 使用CGMP.执行CGMP的多播路由器能够将用户发送给自己 ...
- CCNP路由实验之十二 MPLS
个.第3个数据包„„同样的操作.包含查询路由表.重写MAC地址,CRC校验等. 系列路由器.或者12000系列路由器. Netflow switching 通过一种标准的交换机制,处理了流的第一 ...
- CCNP路由实验之十四 路由器的訪问控制ACL
年9月1月12:00.还有一种时间叫做周期时间(periodic),即这个时间是会多次反复的.比方每周一,或者每周一到周五 ,"rotary 2″开启3002以此类推. 变成1,1变成 ...
- CCNP路由实验之六 动态路由协议之IS-IS
CCNP路由实验之六动态路由协议之IS-IS 动态路由协议能够自己主动的发现远程网络.仅仅要网络拓扑结构发生了变化.路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络.还能够在当前网络 ...
- CCNP路由实验之七 动态路由之BGP
CCNP路由实验之七 动态路由之BGP 动态路由协议能够自己主动的发现远程网络,仅仅要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络,还能够在当前网络连接失 ...
- CCNP路由实验之八 路由重公布
CCNP路由实验之八 路由重公布 在前面几个实验,已经学习了静态路由和动态路由.如今,我们要掌握怎样使它们在一个网络中融合,即路由重公布. 使用出站口作为静态路由 0 使用下一跳地址作为静态路由 ...
- CCNP路由实验之九 路由策略
CCNP路由实验之九 路由策略 路由器在公布与接收路由信息时,可能须要实施一些策略.以便对路由信息进行过滤,比如仅仅接收或公布满足一定条件的路由信息. 一种路由协议可能须要引入其它的路由协议发现 ...
- NAT 网络地址转换
NAT 网络地址转换(Network Address Translation) NAT(Network Address Translation,网络地址转换)是1994年提出的. 属接入广域网(WA ...
- NAT网络地址转换模拟过程
原理图,如图1 图1 以下为配置NAT网络地址转换的实验: eNSP模拟图,如图2 图2 Step1.给路由器的每个接口赋予一个地址,如图3,图4 图3 图4 AR1和AR2中添加路由表项,如图5,图 ...
随机推荐
- 【Appium】每次启动是提示安装setting和unlock app的解决办法
进入appium安装目录,C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android,编辑android.js文件,注释 ...
- MySQL日志设置及查看方法
MySQL有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin 默 ...
- Spring-statemachine Action不能并发执行的问题
Spring-statemachine版本:当前最新的1.2.3.RELEASE版本 这几天一直被Action是串行执行搞得很郁闷,写了一个demo专门用来测试: public static void ...
- nginx和apache
apache所占用的内存资源较多,并且处理较慢 apache的全部模块都支持动静态编译 apache对Fcgi的支持不好 apache不支持epoll apache相对于nginx是一个庞然大物 ng ...
- atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t
atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t 1. 堵塞队列和非堵塞队列 1 2. java.util.Queue接口. 1 3. ConcurrentLin ...
- Linux学习笔记--cp命令(复制)
cp:英文名copy,复制的意思. 1. 命令格式: cp [选项] 源文件或文件夹 目标文件或文件夹 cp [选项] 源文件1 源文件2 源文件3 ... 目标文件夹 2. 经常使用选项: &quo ...
- Android Design Support Library(一)用TabLayout实现类似网易选项卡动态滑动效果
这里我们用TabLayout来实现这一效果.TabLayout是Android Design Support Library库中的控件.Google在2015的IO大会上,给我们带来了更加详细的Mat ...
- Weka中数据挖掘与机器学习系列之Weka3.7和3.9不同版本共存(七)
不多说,直接上干货! 为什么,我要写此博客,原因是(以下,我是weka3.7.8) 以下是,weka3.7.8的安装版本. Weka中数据挖掘与机器学习系列之Weka系统安装(四) 基于此,我安装最新 ...
- lvs为何不能完全替代DNS轮询--转
原文地址:http://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959595&idx=1&sn=5f0633afd2 ...
- codeforces 357C Knight Tournament(set)
Description Hooray! Berl II, the king of Berland is making a knight tournament. The king has already ...