首页 > 其他分享 >NAT

NAT

时间:2023-08-20 12:56:07浏览次数:28  
标签:映射 IP NAT 公网 端口号 路由器

NAT


NAT(Network Address Translations):网络地址转换


公网IP与私网IP

  • 公网IP只能在公网上使用
  • 私网IP只能在内网上使用
  • 公网路由器不会给私网IP路由(会被丢弃)
  • 私网IP可以在不同内网重复使用

私有IP地址范围:

1)10.0.0.0/8 (10开头的)

10.0.0.0 ——— 10.255.255.255

2)172.16.0.0/16 - 172.31.0.0/16 (172.16开头的一直到172.31开头的)

172.16.0.0——— 172.16.255.255

3)192.168.0.0/16 (192.168开头的)

192.168.0.0———192.168.255.255


使用NAT原因:ipv4地址严重不够用了-->内网使用私网IP-->NAT进行公私网IP地址转换,然后完成整个通信

NAT主要实现公私有IP地址的转换,一般是在路由器或者防火墙上来完成,不建议在三层交换机上配置

tips:NAT路由器上先定义内外网端口,包从内到外时修改源IP地址,从外到内时修改目标IP地址


NAT地址转换表

路由器会先通过NAT地址转换表进行地址转换,后匹配路由表

转换表内容不固定,不同类型内容应该不一样


NAT类型

静态NAT、动态NAT、NAPT(PAT)

静态NAT

原理:手动在NAT路由器上配置内网IP与公网IP对应关系:192.1--100.1(这里是简写),当数据包到达路由器时,进行地址转换,将包头里的源IP修改为公网IP100.1,再路由出去。


特点:

  • 一对一映射
  • 支持双向通信(在静态NAT表上配置了映射就可以通过外网一对一访问内网)

缺点:只能一人上网,当内网其他的人想要上网时,需要购买其他的公网IP(穷,买不起)进行映射。

注:当有多个公网IP时,不需要配公网IP于接口上(除去子接口的话,接口本身就只能有一个IP),只需将该公网IP体现在地址转换表上即可
地址池:在本文中指存放公/私网IP的池子,又称内部池和外部池


动态NAT

内网的某人上网时,从外部池中拿一个公网IP来映射,之后的过程和静态NAT一样,只不过转换表条目不用自己配(动态映射),当该人不使用一段时间后(默认10分钟),就会把该映射关系清除,公网IP又返回外部池。


特点:

  • 一对一映射
  • 只能内网访问外网(因为是动态生成,当外网访问内网时,由于没有条目进行匹配,就被丢弃了)

缺点一样,不能给内网的人同时上网。除非购买大量公网IP在地址池里。


NAPT(PAT)

NAPT (Network Address Port Translation):网络地址端口转换(端口复用技术)(现在叫的NAT,一般是NAPT)

原理:假设192.1的数据包源IP192.1,源端口号5000(发送信息时会随机使用一个未使用的端口号发送数据),到达NAT路由器内部时,将192.1修改成100.1,源端口号5000修改成1(会使用路由器的端口),如图中红框框(这就是建立的映射关系),目标IP,目标端口号不变,将数据包路由出去。

192.2的包通过overload复用公网IP,然后使用路由器不同的端口号进行TCP/UDP头的封装(设备端口号的范围一般为0-65535),然后再路由。

注:路由器端口号不重复,除非上一个映射条目通信结束后消失才能继续使用。


特点:

  • 多对多映射

NAPT可分成两类:锥型和对称型,如图。

完全锥形NAT

标签:映射,IP,NAT,公网,端口号,路由器
From: https://www.cnblogs.com/xhzccy/p/17643869.html

相关文章

  • OverTheWire攻关过程-Natas模块33
    我们打开关卡lv33,登陆查看信息是一个上传文件的页面应该是做了很多过滤查看源码//grazXeR,thefirsttosolveit!thanksforthefeedback!//~morlaclassExecutor{private$filename=""; //三个私有参数private$signature='adeafbadbabec0dedabada55ba55d00d......
  • Hibernate文字与格式化字符串不匹配错误
    今天这个呢,主要是在使用Hibernate的时候遇到过这个问题,想着别人可能也会遇到这个问题,那么就简单的来记录一下问题的产生以及解决方案。事情的起因是做一个需求,然后测试反馈说这个有个功能报错阻断流程了,让抽时间排查一下,我一开始以为是数据问题,后来我自己环境上尝试了一下,也的确......
  • 错误org.hibernate.AnnotationException: No identifier specified for entity
    AnnotationExceptionNoidentifierspecifiedforentity错误org.hibernate.AnnotationException:Noidentifierspecifiedforentityorg.hibernate.AnnotationException:Noidentifierspecifiedforentity.报这个异常的原因是因为JavaBean的主键没有注解映射关系,加上对应......
  • hibernate二级缓存
     (一)什么样的数据适合存放到第二级缓存中?1很少被修改的数据2不是很重要的数据,允许出现偶尔并发的数据3不会被并发访问的数据4参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。(二)不适合存放到第二级缓存的数......
  • spring配合hibernate报错:sessionFactory or hibernateTemplate is required
    Causedby:java.lang.IllegalArgumentException:'sessionFactory'or'hibernateTemplate'isrequired atorg.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:118) atorg.springframework.......
  • 关于Mybatis 和 Hibernate 持久层框架之间的区别
    首先,Mybatis和Hibernate都是ORM持久层框架不同点在于,MyBatis是半自动的,它需要开发人员自己手动编写SQL语句。一、MybatisMyBatis支持通过XML或注解的方式来配置需要运行的SQL语句,并且,最终由框架本身将Java对象和SQL语句映射生成最终执行的SQL,执行后,再将结果映射......
  • Native App和web App有什么区别
      NativeApp和webApp有什么区别,请看下图:   NativeApp的优势:1.提供最佳的用户体验,最优质的用户界面,最华丽的交互2.针对不同平台提供不同体验3.可节省带宽成本4.可访问本地资源5.盈利模式明朗NativeApp的劣势:1.移植到不同平台上比较麻烦2.维持多个版本......
  • [React Typescript] Discriminated Tuples in Custom Hooks
    import{useEffect,useState}from"react";exporttypeResult<T>=|["loading",undefined?]|["error",Error]|["success",T];exportconstuseData=<T,>(url:string):Result<T>=>......
  • Two-round n-out-of-n and Multi-Signatures and Trapdoor Commitment from Lattices
    Abstract.Althoughtheyhavebeenstudiedforalongtime,distributedsignatureprotocolshavegarneredrenewedinterestinrecentyearsinviewofnovelapplicationstotopicslikeblockchains.MostrecentworkshavefocusedondistributedversionsofE......
  • 网络地址转换NAT
    静态NAT如果在NAT转换表中存在某个映射,那么NAT只是单向地从Internet向私有网络传送数据。静态NATipnatinsidesourcestatic源IP转换IP删除命令noipnatinsidesourcestatic源IP转换IP列如:R1(config)#noipnatinsidesourcestatic192.168.0.10201.1.......