提到网工,你很难不想到路由器和交换机。在许多文章里,我都围绕这两个设备展开讨论过。
今天想聊聊关于路由器里所涉及的技术。
路由器广泛应用于各行各业,成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的超级主力军。
IT行业里,从运维者到架构师都在兢兢业业的工作,让路由器们以最佳状态更可靠、更安全、更高效地运行。
与国内很多跨国公司不同,华为是一家以技术主导型的企业。以通信设备起家的华为,路由器中有哪些黑科技?
分四个技术点,和你聊聊。
01
Basic NAT
NAT是路由器的一项非常重要,且应用非常广泛的技术。
Basic NAT方式属于一对一的地址转换,但要注意它不是静态的一对一转换,而是动态的。
在这种转换方式下,在内网用户向公网发起连起请求时,请求报文中的私网IP地址,就会通过事先准备好的公网IP地址池动态地建立私网IP地址与公网IP地址的NAT映射表项,并利用所映射的公网IP地址将报文中的源IP地址(也就是内网用户主机的私网IP地址)进行替换。
但只转换IP地址,而不处理TCP/UDP协议的端口号。
且一个公网IP地址不能同时被多个私网IP地址映射,然后,再送达给外网的目的主机。
当外网主机收到请求报文后进行响应时,响应报文到达NAT设备后,又将依据前面请求报文所建立的私网IP地址,与公网IP地址的映射关系,反向将报文中的目的IP地址(为内部主机私网IP地址映射后的公网IP地址)替换成对应的私网IP地址,然后再送达给内部源主机。
需先要在Router上创建公网地址池,才可实现Basic NAT的运转。
Basic NAT中的请求报文转换的仅是其中的源IP地址(目的IP地址不变),即仅需关心源IP地址。
而响应报文转换的仅是其中的目的IP地址(源IP地址不变),即仅需关心目的IP地址。两个方向所转换的IP地址是相反的。
02
NAPT
由于Basic NAT这种一对一的转换方式并未实现公网地址的复用,不能有效解决IP地址短缺的问题,因此在实际应用中并不常用。
而NAPT可以实现并发的地址转换,允许多个内部地址映射到同一个公有地址上,因此也可以称为“多对一地址转换”或地址复用。
NAPT使用“IP地址+端口号”的形式进行转换,相当于增加了一个变量,最终可以实现使多个私网用户可共用一个公网IP地址访问外网。
需先在Router上创建好公网地址池,才可进行NAPT的运转。
请求报文中转换的仅是源IP地址和源端口号(目的IP地址和目的端口号不变),即仅需关心源IP地址和源端口号。
而响应报文中转换的是目的IP地址和目的端口号(源IP地址和源端口号不变),即仅需关心目的IP地址和目的端口号。
不同私网主机可以转换成同一个公网IP地址,但转换后的端口号必须不一样。
03
Easy IP
Easy IP实现原理与NAPT转换类似,可以算是NAPT的一种特例。
不同的是,Easy IP方式可以实现自动根据路由器上WAN接口的公网IP地址,实现与私网IP地址之间的映射(无需创建公网地址池)。
Easy IP主要应用于通过路由器WAN接口IP地址作为要被映射的公网IP地址的情形,特别适合小型局域网接入Internet的情况。
这里的小型局域网主要指中小型网吧、小型办公室等环境。
通常,这种环境的内部主机较少、出接口通过拨号方式获得临时(或固定)公网IP地址以供内部主机访问Internet。
Easy IP运转的具体过程如下:
假设私网中的Host A主机要访问公网的Server服务器,首先向Router发送一个请求报文(即Outbound方向),此时报文中的源地址是10.1.1.100,端口号1540。
Router在收到请求报文后自动利用公网侧WAN接口临时或者固定的“公网IP地址:端口号”(162.10.2.8:5480),建立与内网侧报文“源IP地址:源端口号”间的Easy IP转换表项(也包括正、反两个方向),并依据正向Easy IP表项的查找结果将报文转换后向公网侧发送。
此时转换后的报文源地址和源端口号由原来的(10.1.1.100:1540)转换成了(162.10.2.8:5480)。
Server服务器在收到请求报文后需要向Router发送响应报文(即Inbound方向),此时只需要将收到的请求报文中的源IP地址、源端口号和目的IP地址、目的端口号对调即可,即此时的响应报文中的目的IP地址、目的端口号为(162.10.2.8:5480)。
Router在收到公网侧Server的回应报文后,根据其“目的IP地址:目的端口号”查找反向Easy IP表项,并依据查找结果将报文转换后向内网侧发送。
即转换后的报文中的目的IP地址为10.1.1.100,目的端口号为1540,与Host A发送请求报文中的源IP地址和源端口完全一样。
如果私网中的Host B也要访问公网,则它所利用的公网IP地址与Host A一样,都是路由器WAN口的公网IP地址,但转换时所用的端口号一定要与Host A转换时所用的端口不一样。
04
NAT Server
NAT Server用于外网用户需要使用固定公网IP地址访问内部服务器的情形。
它通过事先配置好的服务器的“公网IP地址+端口号”与服务器的“私网IP地址+端口号”间的静态映射关系来实现。
要先在Router上配置好静态的NAT Server转换映射表,才可实现NAT Server的运转。
由外网向内网服务器发送的请求报文中转换的仅是其目的IP地址和目的端口号(源IP地址和源端口号不变),即仅需关心目的IP地址和目的端口号。
而从内网向外网发送的响应报文中转换的仅是其源IP地址和源端口号(目的IP地址和目的端口号不变),即仅需关心源IP地址和源端口号。两个方向所转换的IP地址和端口号是相反的。
NAT中,凡是由内网向外网发送的报文(不管是请求报文,还是响应报文),在NAT路由器上转换的都是源IP地址(或者同时包括源端口号)。
而凡是由外网向内网发送的报文(也不管是请求报文,还是响应报文),在NAT路由器上转换的都是目的IP地址(或者同时包括源目的口号)。
编辑:黄飞
评论
查看更多