长湖南营销型网站,设计一个网站的优势,百度网站大全旧版,濮阳建站建设私网地址如何能够访问到公网的#xff1f; 在上一篇中#xff0c;我们用任意一个内网的终端都能访问到百度的服务器#xff0c;但是这是我们在互联网设备上面做了回程路由才实现的#xff0c;在实际中#xff0c;之前也说过运营商是不会写任何路由过来的#xff0c;那对于…私网地址如何能够访问到公网的 在上一篇中我们用任意一个内网的终端都能访问到百度的服务器但是这是我们在互联网设备上面做了回程路由才实现的在实际中之前也说过运营商是不会写任何路由过来的那对于我们这种私网地址是如何访问到公网的呢那就是依靠一个技术NAT---网络地址转换 「模拟器、工具合集」复制整段内容
链接https://docs.qq.com/sheet/DV0xxTmFDRFVoY1dQ?tab7ulgil
NAT技术的由来与实现
在网络基础篇中讲解过目前的IPV4地址已经是枯竭的状态了在早期发现问题的时候提出过几个解决办法取消固定网络位的方式引入了子网掩码VLSM、CIDR来解决IP地址浪费的问题同时提出了私网地址的概念这样使得局域网都可以使用私网地址来进行通信缓解了IPV4地址被用尽的情况但是也带来了一个问题私网地址的流量是不能进入公网的因为私网地址每个不同的局域网都可以使用重复都没有关系在这样的情况下引入了一个技术就是NAT它实现的功能就是把私网地址转换成公网地址相当于做了一个”伪装”一样这样自然就能够去访问互联网了。
1配置更改
想要知道是如何实现的那就先得配置上然后在配合抓包以及查看状态来整体了解先来做下初始化操作。
#出口路由器整改[AR1200]interface g0/0/1[AR1200-GigabitEthernet0/0/1]undo pppoe-client dial-bundle-number 1[AR1200-GigabitEthernet0/0/1]ip address dhcp-alloc [AR1200]undo ip route-static 0.0.0.0 0.0.0.0 Dialer1这里把之前做的PPPOE去掉改成简单的DHCP模式跟目前家庭网络其实差不多更容易理解 #互联网设备整改[internet]interface g0/0/1[internet-GigabitEthernet0/0/1]ip address 192.168.1.1 24[internet-GigabitEthernet0/0/1]dhcp select interface
[internet]undo ip route-static allWarning: This operation may lead to the deletion of all the public IPv4 static routes and their configurations. Continue? [Y/N]:y //去掉所有静态路由 现在已经获取到地址了也可以访问到外网的百度服务器但是下面是无法访问的配置下NAT来看看它是如何实现的。
2NAT相关配置
#ACL匹配需要NAT转换的流量[AR1200]acl number 3000[AR1200-acl-adv-3000]rulepermit ip在华为路由器配置里面它是需要先定义一个规则的这个规则的作用是匹配哪些内网网段能够做NAT转换也就是该列表里面的允许转换如果不在则不允许而这个规则匹配工具就叫做ACLAccess Control list访问控制列表它的作用非常广泛在NAT里面它就起到一个匹配的作用。#命令解析#ACL匹配需要NAT转换的流量[AR1200]acl number 3000[AR1200-acl-adv-3000]rule permit ip
在华为路由器配置里面它是需要先定义一个规则的这个规则的作用是匹配哪些内网网段能够做NAT转换也就是该列表里面的允许转换如果不在则不允许而这个规则匹配工具就叫做ACLAccess Control list访问控制列表它的作用非常广泛在NAT里面它就起到一个匹配的作用。
#命令解析 acl number 3000这条命令的作用是定义一个高级ACLID编号范围是3000~3999高级可以匹配源目IP、源目端口号、协议类型等参数在实际中用的最多也最推荐用这种。rule permit ip这个命令的作用是定义规则一个ID编号里面是可以匹配N多规则的 • rule 后面跟动作其中permit为匹配抓取的意思 • ip表示整个IPV4全部匹配其实它是一条简化命令完整是rule permit ip source any destination any平时可以省略不写
整体下来这条ACL的作用就是匹配抓取所有ipv4数据。
#NAT转换配置[AR1200]interface g0/0/1[AR1200-GigabitEthernet0/0/1]nat outbound 3000 这条命令的就是做NAT转换但是这里注意outbound表示是出去的方向也就是从内网进从外网出其中3000就是上面定义的acl number 3000这里只需要输入ID即可整体命令的意思是ACL 3000里面规则匹配上的进行NAT转换。目前这里ACL是全部匹配
3开始测试 访问成功了现在是互联网设备没有回程路由的注意服务器DNS与HTTP服务开启
4NAT是如何实现内网访问外网的 开启互联网接口的抓包以及出口路由器G0/0/0口抓包然后来看看NAT是如何实现访问的 出口路由器G0/0/0口的抓包过滤下输入tcp or dns 互联网G0/0/1口的抓包不知道大家第一眼看过去有没有发现不一样的地方 这个地址就是出口路由器对接互联网接口获取到的地址源地址是从192.168.255.1变成了192.168.1.254了来看看具体是如何实现的 1、PC2发起DNS请求经过办公区一交换机的二层转发、A核心的三层转发以及出口路由器的三层转发 查询路由表交给互联网处理该路由是DHCP模式自动从运营商设备获取到的
2、出口路由器在发出的时候发现接口配置了NAT转换 有了nat outbound 3000这个配置存在路由器会查询ACL 3000的规则发现是全部匹配就会执行一个操作NAT转换 抓包对比可以发现源地址192.168.255.1变成了192.168.1.254源端口49153变成了3624其余的目的IP与目的端口号是没有变化的。 并且路由器会记录这个转换记录在NAT 会话中原始的五元组信息源IP、目的IP、源端口、目的端口、协议以及转换后的源地址以及源端口号它的作用待会就能体现了但是这里模拟器有一个小问题它的端口号记录的是不对的跟抓包的完全对应不上的真机是没这个问题的转换后把这个数据从G0/0/1发送出去交给互联网。
3、互联网设备收到以后查询路由表直接发现目标地址是直连直接把数据交给服务器处理。 4、服务器收到DNS请求后开始回应告诉客户端 www.baidu.com 对应的地址是61.128.1.1 将这个回应交给网关处理就从网卡发出去值得注意的是服务器回应的地址是192.168.1.254出口路由器的接口地址
5、互联网收到这个数据包后查询目的地址查询路由表发现是直连网段直接丢给出口路由器
6、关键的来了出口路由器收到以后发现是给自己的但是它发现自己的G0/0/1口是有NAT功能配置的于是查询是否有NAT会话表 路由器只要发现NAT会话里面有对应匹配比如这里目的地址是192.168.1.254端口号是10258的就会匹配第二条自然就会把192.168.1.254转换成192.168.255.1端口号变成2312当然这个模拟器的NAT会话不对但过程是这样的 抓包对比从互联网交给出口路由器的回包目的地址是192.168.1.254目的端口号是3624经过出口路由器后出口路由缓存了NAT会话信息该数据包匹配了NAT会话的信息它执行一个操作NAT还原把192.168.1.254还原成192.168.255.1目的端口号3624还原成49153这个就是就是路由器保留这个会话信息的作用如果说路由器只执行转换操作而不去生成这个NAT会话信息那么导致的情况是数据包回来的时候路由器发现找的是自己但是自己并没与去DNS请求就把数据包给丢弃了导致内网无法得到响应也可以看出来NAT会话信息的重要性后续排错会经常查看会话表。 转换后出口路由器查询路由表发现192.168.255.1属于直连路由直接从G0/0/0口发出去交给192.168.250.1处理然后核心A经过三层转发交给办公区1交换机同样执行二层转发交给PC2至此PC2就得到了www.baidu.com 对应的IP地址了剩下的流程是一样的发起SYN关键的地方就在于出口路由器的NAT转换。
有用的信息汇总与经验分享
1通过上面的分析知道之所以内网能够去访问到外网资源就是出口路由器做了NAT技术NAT技术在实际中有两种分类目前我们这篇接触到的叫做源NAT技术中的NAPT网络地址端口转换从上面抓包可以看到在经过出口路由做了NAT配置的接口源地址以及端口都会被转换所以这个技术叫做源NAT--NAPT。
2数据包经过出口路由器的时候接口配置了nat outbound 3000路由器会查看ACL 3000里面的规则来进行转换那转换的是哪个地址呢就是接口的地址 从抓包也可以看出来内网的192.168.255.1经过出口路由器后被转换成了192.168.1.254这种直接使用接口获取的地址进行转换的在实际中用的最多的通常的场景是能上外网的地址只有一个的情况下使用这种方式像DHCP从猫获取只有一个可上网地址PPPoE拨号获取到的也只有一个地址所以我们直接在接口下面配置nat outbound后面跟对应的ACL ID即可它就会利用接口获取配置的地址进行转换这种方式叫做Easy IP这个只是一个称呼每个厂商不太一样记住它的作用即可。
3在回顾之前说过的运营商不会去在乎你内网是如何配置的它也不会写回程路由第一个是因为内网使用的是私网地址运营商没法写第二个是运营商知道在企业的出口都会去配置NAPT技术把内网的IP信息转换成运营商能够正常回包的地址。比如上面的环境就像家庭网一样猫出来分配192.168.1.0/24的网络电脑或者路由器接下面就可以直接上网因为猫能够处理该网段的信息同样的上面的出口路由器从互联网那获取了一个地址192.168.1.254这个互联网是知道这个地址在哪的它能够去处理与转发最终内网的192.168.255.1或者其他网段过来转换成该地址就自然能够穿越互联网抵达服务器那了换个角度看它就像换了一个”马甲”伪装了一样从始至终互联网设备看到的都是192.168.1.254在发数据是看不到内网里面真实的地址信息的所以NAT技术还有一个特性是隐藏地址真实信息。
4出口路由器在进行NAPT转换以后在NAT信息中会保存一份记录叫做NAT会话信息表它的作用就是记录当前的该会话把源地址以及端口号转换成了多少当该数据从外网返回的时候出口路由器能够正常的处理它可以依据之前生成的会话信息表来还原成之前的信息。 这里要注意很多初学者卡在这觉得为什么要还原呢PC2在发起DNS请求的时候源端口是自己随机生成的抓包看到得是49153目的端口是53它本地会维护这样一个会话等待服务器的返回记录的信息就是对应的端口号信息如果这个时候外网返回的不进行还原第一个目的地址互联网返回的是192.168.1.254而不是192.168.255.1第二个互联网返回的端口号是转换后的3624实际PC2随机的端口号是49153这两个是缺一不可的否则会导致该通信就失败了这就是要还原的原因也是为什么要生成这样一个NAT会话表的作用就是为了后续的数据包能够正常的还原信息返回。
5NAT会话信息并不是永久存在的它有一个生存时间不同的协议与应用生存时间不一样 通过display firewall-nat session aging-time可以查看也可以通过firewall-nat session 修改时间
多个内网网段它是如何转换的 在上面我们只测试了192.168.255.1访问实际内网有很多内网都需要去访问外网的很多资源那假设同时用PC2以及client2都去访问61.128.1.1能不能通呢 重新抓互联网G0/0/1接口的数据 测试没有问题 过滤一下只看DNS有两次请求两次回应自然有一个是PC2一个是client2的这是经过路由器NAPT转换所以源地址都变成了192.168.1.254了 源地址都是一样因为现在出口路由器就一个可上网地址自然都转换的192.168.1.254区别不一样的就是源端口一个是3112一个是3624这个就是NAPT的核心机制了不同的内网终端在经过出口路由器的时候执行NAPT转换接口地址只有一个都转换成192.168.1.254端口号随机转换成不一样的这样就能够很清晰的区分当服务器回应这两个请求后抵达出口路由器的时候可以根据对应的端口号信息来进行区分到底哪个回应给PC2的哪个是回应给client2的还原成会话信息表中之前的信息进行回复这样保证只有一个可上网地址的情况下多私网用户可以上网。
其他外网对接方式如何调用PPPoE与静态
#静态专线调用NATinterface GigabitEthernet0/0/1 ip address 219.135.2.55 255.255.255.192 nat outbound 3000这个跟DHCP模式是一样的直接物理口调用即可
#PPPoE拨号调用NATinterface Dialer1 link-protocol ppp ppp chap user ccieh3c ppp chap password simple ccieh3c.com ppp pap local-user ccieh3c password simple ccieh3c.com mtu 1492 tcp adjust-mss 1452 ip address ppp-negotiate dialer user ccieh3c dialer bundle 1 nat outbound 3000
这个有点特别在拨号接口调用因为实际可上网的地址在拨号口上而不再物理口