文章开头,先提一个小问题:你认为,一个企业网的基本配置有哪些?
有小白会疑惑,企业网络和家庭网络有啥区别?
又或者是:家里的网络不就是一个网线 路由器吗,企业能多复杂?
这就是对咱网工的世界一无所知的最佳案例。
每个企业架构是不同的,网络工程师需要确定的东西很多,比如防火墙模式、交换机类型、网关位置等等。
而在这其中,有一个企业网必备技术,就是NAT。
2011年2月3日中国农历新年, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。
2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。
正是在这样一个背景之下,救世主NAT(网络地址转换)闪亮登场。
NAT是一项神奇的技术,说它神奇就在于,它的出现几乎使IPv4起死回生。
想要详细学习这部分内容的粉丝,也欢迎添加老杨微信,咨询课程详情。
01
NAT是个啥?
NAT(Network Address Translations)网络地址转换,就是替换IP报文头部的地址信息。
NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。
觉得NAT抽象?让你“身临其境”一下。现在打开电脑操作:
(1)打开命令行输入ipconfig查询IP地址
(2)打开百度,输入IP查询,查询IP地址
你会发现一个很奇妙的事情,这俩IP查出来居然是不同的
其实是因为,ipconfig查出来的是你本机的IP地址,也就是内网私有地址,此类地址仅在局域网使用,不能联通外网。
百度查出来的地址是你上网的公有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网。
NAT主要就是用来实现公私有IP地址的转换的,所以,一般是路由器或者防火墙上来完成,不建议在三层交换机上配置。
02
NAT原理给你捋捋
你看上面这张图:
192.168想访问200.2,到路由器后,路由或者三层设备将192.168映射到外网地址,也就是换成外网地址200.1,外网地址(公网地址是需要到运营商购买的,你买的宽带,其实付得是租用公网IP地址的钱)。
200.1 访问 200.2 ,到服务器所在路由后,200.1也是不能直接访问200.2的内网服务器,所以这时候,也需要做地址转换,200.1 换成172.16。
最后,200.1 访问到了172.16,也就是192.168访问到200.1。
回包的时候,道理一样,一出一进,做两次地址映射(地址转换)。
其实,网络地址转换就是,解封装三层包头,更换源IP或者目标IP。
顺便说一嘴,mac地址也会改变,但不是因为NAT,mac地址过个路由就会变一次。
03
NAT的分类
三张图搞定
01 静态NAT(静态映射)
手动写入IP地址映射条目,配置NAT表,一个内网地址对应着一个外网地址。
举个例子,192.168 对应 1.1。
当192.168向外网发包,则过路由的时候,会根据静态NAT表,将192.168更换为1.1。
缺点:内网这么多人,一个内网IP对应一个外网IP,我得花多少钱,买多少个公网ip才够使。
动态NAT解决了这个问题,请往下看。
路由器并不会想防火墙一样,有策略,阻止私网IP,私网IP会过路由跑到公网上去,但是公望路由不认识私网IP,所以私网IP也就废掉了,直接丢弃。
02 动态NAT (动态映射)
一个网段对 一个外网地址,举个例子:
192.1681.0/24 这个网段对应着 100.1; 192.168.1.1来了。
在NAT地址转换里,形成了一条映射(条目),就是,192.168.1.1映射100.1。
这个时候,重点来了,由于192.168.1.1占用着100.1,则别人无法再使用这个100.1,直到192.168.1.1不再发包后的24小时之后,则可以把100.1给别人。
别人无法使用的原因是,如果别人也在使这个100.1, 回包回不来。
但是并没有解决,多人同时上网的问题,所以废掉。
但是PAT解决了这个问题。
03 端口网络地址转换PAT( port address translation )
道理很简单,在ip地址的基础上,在加上端口号,加以区分。
举个例子:
192.168.1.0/24,这个网段映射到外网ip100.1。
192.168.1.1这个ip向外网发了一个http的包,过路由器的时候,路由器随机配置了端口号,192.168.1.1 :1000 — 100.1.1.1:100。
只要这个ip地址的这个端口号 一直占用着 100.1.1.1 的这个端口号,则别人就不能再使用100.1.1.1:100 这个IP 端口号。
其实就是加上端口号,进行复用,用端口号,加以区分每个私网IP的对应相同公网IP。
192.168.1.1:1000, 1000和1000.1.1.1:100 1000和100这两个端口号是路由器配置的临时端口,这个端口范围0-65535,如果过了这个范围的话,再有人上网的话,只能候着了。