《工业大学计算机网络(第五版)网络地址转换教学课件》由会员分享,可在线阅读,更多相关《工业大学计算机网络(第五版)网络地址转换教学课件(40页珍藏版)》请在金锄头文库上搜索。
1、网络地址转换NetworkAddressTranslation 熊金波jbxiong 福建师范大学软件学院 教学目标 Objectives 8 1NAT概述 NATOverview 8 2NAT术语 NATTerms 8 3NAT操作 NATOperation 8 4NAT分类 NATClass 8 5配置NAT ConfiguringNAT 问题的提出 1校园网 企业 公司或单位内部的网络 这样的网络有什么共同的特征 2校园网 企业 公司或单位内部的网络 给该网络中每个主机分配一个公共IP地址 这样做可行吗 3如果内网都使用私有IP地址 通过什么样的方法可以与外网的终端进行通信呢 4内网中像
2、WWW Mail服务器等终端需要外网能够方便且稳定地访问 其余主机不需要外网直接访问 在设置NAT时有什么不同呢 如果ISP分配给单位的公共IP地址受限时 又设置什么样的NAT较好呢 8 1NAT概述 NATOverview 网络地址转换可以动态改变通过路由器的IP报文的内容 修改报文的源IP地址和 或目的IP地址 离开路由器的报文的源地址或目的地址会转换成与原来不同的地址 这种功能对于申请了少量IP地址空间 但上网主机的数量远远超过了IP地址数目的组织机构来说十分有用 这不仅可以节省维护公共地址的成本而且可以阻止外部网络直接与内部网络通讯从而达到了一定程度上的安全保证 公共地址和私有地址 P
3、ublicAddressandPrivateAddress 1 公共IP地址必须被注册PublicInternetaddressesmustberegisteredbyacompanywithanInternetauthority 2 私有IP地址被保留 并可以被任何人使用PrivateIPaddressesarereservedandcanbeusedbyanyone 私有地址范围 PrivateAddressRange RFC1918定义的私有地址范围 1 Insidelocaladdress 分配给内部网络中一台主机的IP地址 可以是RFC1918定义的私有地址 这些地址通常只有内部主机
4、知道 2 Insideglobaladdress 从ISP或NIC注册的地址 分配给内部主机的以用于NAT处理的地址 对外进行IP通信时 代表一个或多个内部本地地址的合法IP地址 这种内部主机的地址可以被外部主机看到 3 Outsideglobaladdress 分配给外部网络上主机的IP地址 4 AddressPool NIC或ISP分配使用的多个地址 8 2NAT术语 NATTerms NAT术语 NATTerms 路由器A的E0端口连接内部网络 是内部端口 S0连接外部的Internet 为外部端口10 1 1 10为HOSTA的内部本地地址192 1 1 1是HOSTA的内部全局地址H
5、OSTB拥有一个公共地址 199 10 0 11 该地址对A来说是外部全局地址 1 NAT典型工作在存根网络的边缘 边界路由器 网关 执行NAT功能 2 在运行NAT的路由器中 当数据包被传送时 NAT可以转换数据包的IP地址和TCP UDP数据包的端口号 设置NAT功能的路由器至少要有一个Inside 内部 端口和一个Outside 外部 端口 内部端口连接内网的用户 外部端口一般连接到Internet 当IP数据包离开内部网络时 NAT负责将内网IP源地址 通常是私有地址 转换为合法的公共IP地址 当IP数据包进入内网时 NAT路由器检查NAT表 将合法的公共IP目的地址转换为内网的IP源
6、地址 8 3NAT操作 NATOperation NAT操作 NATOperation NAT的局限性 补充 尽管NAT是一个很有用的工具 它仍然有一些缺陷 主要的问题在于 有些应用程序将源IP地址嵌入到了IP报文的数据部分中 这样 报文的源IP地址在经过NAT的转换之后 就与报文数据部分的IP地址不匹配 那么 这些在报文的数据部分嵌入IP地址的应用程序将不能正常工作 就Cisco设备来说 Cisco路由器实现的NAT能够处理许多将IP地址包含在报文数据部分的应用程序 但对某些应用仍然无法支持 NAT的局限性 补充 CiscoNAT支持的应用包括 1在TCP UDP报文中无源和目的地址的应用数
7、据流2在IP报文的数据部分中的IP地址3ICMP4FTP5TCP上的NetBios 除了会话服务 6RealAudio7WhitePinesCUSeeMe8Streamworks9DNS A 和 PTR 查询10H 32311NetMeeting12VDOLive13Vxtreme 以下是CiscoNAT不支持的应用 1IP组播2路由表更新3DNS域的迁移4BOOTP5Talk ntalk6SNMP7NetShow 1 静态NAT将内部本地地址与内部全局地址进行一对一的明确转换 这种方法主要用在内部网络中有对外提供服务的服务器 如WEB MAIL服务器时 这些服务器的IP地址必须采用静态地址转
8、换 以便外部用户可以使用这些服务 该方法的缺点是需要独占宝贵的合法IP地址 即 如果某个合法IP地址已经被NAT静态地址转换定义 即使该地址当前没有被使用 也不能被用作其它的地址转换 8 4NAT分类 NATClass 8 4NAT分类 NATClass 2 动态NAT动态地址转换也是将内部本地地址与内部全局地址进行一对一的转换 但是 是从内部全局地址池中动态地选择一个未使用的地址对内部本地地址进行转换 该地址是由未被使用的地址组成的地址池中在定义时排在最前面的一个 当数据传输完毕后 路由器将把使用完的内部全局地址放回到地址池中 以供其它内部本地地址进行转换 但是在该地址被使用时 不能用该地址
9、再进行一次转换 Pc1 10 1 1 1 200 200 200 1Pc2 10 1 1 2 200 200 200 2Pc3 10 1 1 3 Pc4 10 1 1 4 200 200 200 2 3 端口复用 PAT 复用地址转换也称为端口地址转换 PortAddressTranslation PAT 首先是一种动态地址转换 路由器将通过记录地址 应用程序端口等唯一标识一个转换 通过这种转换 可以使多个内部本地地址同时与同一个内部全局地址进行转换并对外部网络进行访问 对于只申请到少量IP地址甚至只有一个合法IP地址 却经常有很多用户同时要求上网的情况 这种转换方式非常有用 理想状况下 一个
10、单一的IP地址可以使用的端口数为4000个 8 4NAT分类 NATClass PAT特征 PATFeatures 8 5配置NAT ConfiguringNAT 静态NAT配置实例 StaticNATExample 静态NAT配置实例 StaticNATExample r1 config ipnatinsidesourcestatic10 1 1 2200 200 200 3r1 config ipnatinsidesourcestatic10 1 1 3200 200 200 4r1 config interfacef0 0r1 config if ipnatinsider1 config
11、 ints0 0r1 config if ipnatoutside 静态NAT配置实例 StaticNATExample r1 debugipnatIPNATdebuggingison00 11 09 NAT s 10 1 1 2 200 200 200 3 d 2 2 2 2 40936 00 11 09 NAT s 2 2 2 2 d 200 200 200 3 10 1 1 2 40936 00 11 10 NAT s 10 1 1 2 200 200 200 3 d 2 2 2 2 40938 r1 shipnattranslationsProInsideglobalInsideloc
12、alOutsidelocalOutsideglobal 200 200 200 310 1 1 2 200 200 200 410 1 1 3 动态NAT配置实例 DynamicNATExample 动态NAT配置实例 DynamicNATExample r1 config ipnatpoolNAT200 200 200 3200 200 200 50netmask255 255 255 0r1 config access list1permit10 1 1 00 0 0 255r1 config ipnatinsidesourcelist1poolNATr1 config interface
13、f0 0r1 config if ipnatinsider1 config ints0 0r1 config if ipnatoutside 动态NAT配置实例 DynamicNATExample r1 shipnattranslationsProInsideglobalInsidelocalOutsidelocalOutsideglobal200 200 200 310 1 1 2200 200 200 410 1 1 3200 200 200 510 1 1 4 r1 clearipnattranslation r1 shipnattranslations PAT配置实例 PATExamp
14、le PAT配置实例 PATExample r1 config ipnatpoolNAT200 200 200 3200 200 200 3netmask255 255 255 0r1 config access list1permit10 1 1 00 0 0 255r1 config ipnatinsidesourcelist1poolNAToverload overload启用PATr1 config interfacef0 0r1 config if ipnatinsider1 config ints0 0r1 config if ipnatoutsider1 config iprou
15、te0 0 0 00 0 0 0200 200 200 2 PAT配置实例 PATExample r1 shipnattranslationsProInsideglobalInsidelocalicmp200 200 200 3 179210 1 1 4 1792icmp200 200 200 3 102410 1 1 2 1024 NAT应用举例 NAT应用1 某公司使用一台具有两个Ethernet的路由器 Ethernet0连接到内部网络 而Ethernet1则连接到一个LAN网段 公司与其ISP的路由器共享该网段 在内部网络中 公司使用10 0 0 0 24地址空间中的地址 公司为自己提
16、供一个IP地址或171 100 1 0 24 公司路由器的接口使用IP地址171 100 1 1 而ISP路由器接口则使用IP地址171 100 1 2 而将那些从171 100 1 0 24开始的其余地址留给NAT转换 公司希望在路由器上使用必要的命令 以使其内部用户能够使用ISP所提供的地址空间中的有效 全局可路由的地址 以访问Internet 如下图所示 NAT应用1 拓扑图 NAT应用1 解决方案 r1 config ipnatpoolinternet171 100 1 3171 100 1 254netmask255 255 255 0r1 config access list1permit10 0 0 00 255 255 255r1 config ipnatinsidesourcelist1poolinternetr1 config interfaceethernet0r1 config if ipnatinsider1 config interfaceethernet1r1 config if ipnatoutside NAT应用2 公司使用一台具有两个接口的路由器 分