.net 代码实现文件下载
2009-08-03 10:35
351 查看
您可能会碰到这样的问题:一个公司会与两个Internet服务提供商连接.
这样做最大的作用是提高内网访问Internet的速度和外网访问内部服务器的速度。当今日新月异的网络发展,导致不同的ISP之间因为竞争关系互访缓慢。就延伸出了这样的网络。那么这就要解决公司如何科学的出外网的问题。
现在进入我们的正题――NAT的双线接入。首先来看一下拓扑图:
从图上可以看出:
ü 公司的出口路由器NAT-Router将LAN和两个Internet服务提供商ISP-A和ISP-B连接。在LAN中有一台WEB服务器需要发布到Internet上,供外网访问。
ü NAT-Router上S0/0的接口地址是200.200.200.1/24,可用于NAT的地址是200.200.200.10-12/24,对端ISP-A的地址是200.200.200.2/24
ü NAT-Router上S0/1的接口地址是201.201.201.1/24,可用于NAT的地址是201.201.201.10-12/24,对端ISP-A的地址是201.201.201.2/24
ü NAT-Router内网口的地址是192.168.1.1/24.
目前的要求是:
公司内部服务器需要分别转换成ISP-A地址和ISP-B地址,以便不同的ISP用户更快地访问服务器,并且内部访问Internet时,使用访问网站所在ISP的NAT地址进行地址转化。
现在开始具体的配置和分析:
第一步:配置接口地址
NAT-Router(config)#int s0/0
NAT-Router(config-if)#ip add 200.200.200.1 255.255.255.0
NAT-Router(config-if)#no sh
NAT-Router(config)#int s0/1
NAT-Router(config-if)#ip add 201.201.201.1 255.255.255.0
NAT-Router(config-if)#no sh
NAT-Router(config-if)#int f0/0
NAT-Router(config-if)#ip add 192.168.1.1 255.255.255.0
NAT-Router(config-if)#no sh
第二步:配置PAT,实现内网访问外网
1. 定义访问控制列表,由于需要根据访问的IP地址的不同来选择进行转换的NAT地址,所以需要使用扩展访问控制列表,控制PAT转换使用的地址池。
NAT-Router(config)#access-list 100 permit ip any 200.200.210.0 0.0.0.255
NAT-Router(config)#access-list 101 deny ip any 200.200.210.0 0.0.0.255
NAT-Router(config)#access-list 101 permit ip any any
说明:Access-list 100定义了到达ISP-A所有网段的ACL,此处以200.200.210.0代表ISP-A所有网段.access-list 101定义到达ISP-A所有网段以外的地址的ACL。也就是说只有目标是ISP-A的数据包才会去往ISP-A。
2. 定义合法的地址池,分别定义ISP-A、ISP-B两个合法的地址池。
NAT-Router(config)#ip nat pool ISP-A 200.200.200.10 200.200.200.12 netmask 255.255.255.0
NAT-Router(config)#ip nat pool ISP-B 201.201.201.10 201.201.201.12 netmask 255.255.255.0
3. 配置PAT转换
NAT-Router(config)#ip nat inside source list 100 pool ISP-A overload
NAT-Router(config)#ip nat inside source list 101 pool ISP-B overload
说明:这样配置之后,满足access-list 100的数据包选择ISP-A的地址进行转换,满足access-list 101的数据包选择ISP-B的NAT地址池进行转换,转换后,数据包的源地址和目的地址便属于同一个ISP,这样的话大大加快了访问的速度。(注意:参数overload不要忘了配置)
第三步:配置静态NAT,实现外网访问内网服务器
NAT-Router(config)#ip nat inside source static tcp 192.168.1.2 80 200.200.200.1 80 extendable
NAT-Router(config)#ip nat inside source static tcp 192.168.1.2 80 201.201.201.1 80 extendable
说明:此处192.168.1.2是内网WEB服务器的地址,200.200.200.1是外接口s0/0上ISP-A的地址,201.201.201.1是外接口s0/1上ISP-B的地址。(注意:参数extendable不可忽略,因为此处是将同一个内部局部地址转换到多个内部全局地址。)
第四步:在内部和外部接口上启用NAT
NAT-Router(config)#int s0/0
NAT-Router(config-if)#ip nat outside
NAT-Router(config-if)#int s0/1
NAT-Router(config-if)#ip nat outside
NAT-Router(config-if)#int f1/0
NAT-Router(config-if)#ip nat inside
(注意:此处是两个外接口)
第五步:配置静态路由,实现对内网访问外网路由的控制
NAT-Router(config)#ip route 200.200.210.0 255.255.255.0 200.200.200.2
NAT-Router(config)#ip route 0.0.0.0 0.0.0.0 201.201.201.2
NAT-Router(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.2 120
(注意:通过路由选择原则,将ISP-A的目的地址配置静态路由并且下一跳指向ISP的路由器,再配置一条默认路由并且下一跳指向ISP-B的路由器,最后再配置一条管理距离为120的默认路由,用以对外出路由备份。)
好了,现在我们可以看到设置好的结果,现在就实现了NAT的双线接入。
现在公司内部的服务器被转换成了两个不同的ISP地址,不同的ISP用户可以更加快速便捷的访问服务器。公司内部访问Internet时,将会使用目的网站所在的ISP的NAT地址池进行地址转化。大大加快了员工访问外网的速度。
本文出自 “zpp” 博客,请务必保留此出处/article/4228536.html本文出自 51CTO.COM技术博客
这样做最大的作用是提高内网访问Internet的速度和外网访问内部服务器的速度。当今日新月异的网络发展,导致不同的ISP之间因为竞争关系互访缓慢。就延伸出了这样的网络。那么这就要解决公司如何科学的出外网的问题。
现在进入我们的正题――NAT的双线接入。首先来看一下拓扑图:
从图上可以看出:
ü 公司的出口路由器NAT-Router将LAN和两个Internet服务提供商ISP-A和ISP-B连接。在LAN中有一台WEB服务器需要发布到Internet上,供外网访问。
ü NAT-Router上S0/0的接口地址是200.200.200.1/24,可用于NAT的地址是200.200.200.10-12/24,对端ISP-A的地址是200.200.200.2/24
ü NAT-Router上S0/1的接口地址是201.201.201.1/24,可用于NAT的地址是201.201.201.10-12/24,对端ISP-A的地址是201.201.201.2/24
ü NAT-Router内网口的地址是192.168.1.1/24.
目前的要求是:
公司内部服务器需要分别转换成ISP-A地址和ISP-B地址,以便不同的ISP用户更快地访问服务器,并且内部访问Internet时,使用访问网站所在ISP的NAT地址进行地址转化。
现在开始具体的配置和分析:
第一步:配置接口地址
NAT-Router(config)#int s0/0
NAT-Router(config-if)#ip add 200.200.200.1 255.255.255.0
NAT-Router(config-if)#no sh
NAT-Router(config)#int s0/1
NAT-Router(config-if)#ip add 201.201.201.1 255.255.255.0
NAT-Router(config-if)#no sh
NAT-Router(config-if)#int f0/0
NAT-Router(config-if)#ip add 192.168.1.1 255.255.255.0
NAT-Router(config-if)#no sh
第二步:配置PAT,实现内网访问外网
1. 定义访问控制列表,由于需要根据访问的IP地址的不同来选择进行转换的NAT地址,所以需要使用扩展访问控制列表,控制PAT转换使用的地址池。
NAT-Router(config)#access-list 100 permit ip any 200.200.210.0 0.0.0.255
NAT-Router(config)#access-list 101 deny ip any 200.200.210.0 0.0.0.255
NAT-Router(config)#access-list 101 permit ip any any
说明:Access-list 100定义了到达ISP-A所有网段的ACL,此处以200.200.210.0代表ISP-A所有网段.access-list 101定义到达ISP-A所有网段以外的地址的ACL。也就是说只有目标是ISP-A的数据包才会去往ISP-A。
2. 定义合法的地址池,分别定义ISP-A、ISP-B两个合法的地址池。
NAT-Router(config)#ip nat pool ISP-A 200.200.200.10 200.200.200.12 netmask 255.255.255.0
NAT-Router(config)#ip nat pool ISP-B 201.201.201.10 201.201.201.12 netmask 255.255.255.0
3. 配置PAT转换
NAT-Router(config)#ip nat inside source list 100 pool ISP-A overload
NAT-Router(config)#ip nat inside source list 101 pool ISP-B overload
说明:这样配置之后,满足access-list 100的数据包选择ISP-A的地址进行转换,满足access-list 101的数据包选择ISP-B的NAT地址池进行转换,转换后,数据包的源地址和目的地址便属于同一个ISP,这样的话大大加快了访问的速度。(注意:参数overload不要忘了配置)
第三步:配置静态NAT,实现外网访问内网服务器
NAT-Router(config)#ip nat inside source static tcp 192.168.1.2 80 200.200.200.1 80 extendable
NAT-Router(config)#ip nat inside source static tcp 192.168.1.2 80 201.201.201.1 80 extendable
说明:此处192.168.1.2是内网WEB服务器的地址,200.200.200.1是外接口s0/0上ISP-A的地址,201.201.201.1是外接口s0/1上ISP-B的地址。(注意:参数extendable不可忽略,因为此处是将同一个内部局部地址转换到多个内部全局地址。)
第四步:在内部和外部接口上启用NAT
NAT-Router(config)#int s0/0
NAT-Router(config-if)#ip nat outside
NAT-Router(config-if)#int s0/1
NAT-Router(config-if)#ip nat outside
NAT-Router(config-if)#int f1/0
NAT-Router(config-if)#ip nat inside
(注意:此处是两个外接口)
第五步:配置静态路由,实现对内网访问外网路由的控制
NAT-Router(config)#ip route 200.200.210.0 255.255.255.0 200.200.200.2
NAT-Router(config)#ip route 0.0.0.0 0.0.0.0 201.201.201.2
NAT-Router(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.2 120
(注意:通过路由选择原则,将ISP-A的目的地址配置静态路由并且下一跳指向ISP的路由器,再配置一条默认路由并且下一跳指向ISP-B的路由器,最后再配置一条管理距离为120的默认路由,用以对外出路由备份。)
好了,现在我们可以看到设置好的结果,现在就实现了NAT的双线接入。
现在公司内部的服务器被转换成了两个不同的ISP地址,不同的ISP用户可以更加快速便捷的访问服务器。公司内部访问Internet时,将会使用目的网站所在的ISP的NAT地址池进行地址转化。大大加快了员工访问外网的速度。
本文出自 “zpp” 博客,请务必保留此出处/article/4228536.html本文出自 51CTO.COM技术博客
相关文章推荐
- .net 代码实现文件下载
- 服务器端实现文件下载功能代码
- ASP实现文件直接下载的代码
- ASP实现文件直接下载的代码
- 基于nodejs+express4.X实现文件下载的实例代码
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 300行python代码的轻量级HTTPServer实现文件上传下载 推荐
- JAVA代码实现下载单个文件,和下载打包文件
- .net 实现文件下载
- asp.net实现文件下载的代码
- PHP代码实现远程下载文件到本地的函数
- OKHTTP_三行代码实现文件下载(dialog显示进度)
- Android快速实现文件下载(只有4行代码)
- php实现文件下载简单示例(代码实现文件下载)
- ASP.NET 大文件下载的实现思路及代码
- Jquery+asp.net实现Ajax方式文件下载实例代码
- 批处理 API实现文件下载的代码第1/2页
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- Spring MVC代码实例系列-10:Spring MVC实现简单的文件上传和下载