nat是干什么的,为什么要有nat?以及谈谈ovs里使用ct实现nat功能
博客竟然不显示更新的时间,只有个发布时间。看起来像2个月没更新一样,其实更新了几行呢。好几个东西想理一下,本来想和周记放一起了,但放一起就没有主题了。
当然一搜也有一些很好的博客,更详细:https://blog.csdn.net/gui951753/article/details/79593307 ,https://www.zhihu.com/question/31332694
我是想用自己的话去说一下,简单明了总结一下,并且还会说一下ovs怎么实现nat。
NAT
在说之前要明了两个事情:
- 计算机上的技术,几乎都是为了解决出现的问题产生的,这是任何知识需要明白的根源。
- 自己的网络ip是私网ip,只能在小的局域网(Local Area Network ,简称 LAN)通信,想要在我们说的互联网(WAN)上冲浪,需要公网ip,也就是IANA(互联网数字分配机构)分配的ipv4地址。
用一句话说nat,那就是因为ipv4的地址不够用,没办法每个人都用公网ip上网,nat可以让多个地址映射成一个地址,就是把多个私网ip映射成一个公网ip。这样ipv4就又能用起来了!

直接说三种nat:
1. 静态nat:一对一,把一个私网ip映射成一个公网ip,这样做主要为了隐藏自己的真实ip,需要自己配置路由器。

2. 动态nat:多私网ip对多公网ip,有个公网ip池子,给每个局域网内的主机分配一个私网ip,然后动态映射。比如有一台主机没了, 那就又可以空出来一个公网ip,多了一台主机,就会从公网ip池子里拿出来一个ip,动态添加一条映射, 无需自己配置路由。

3.NAPT( Network Address Port Translation )实际常用到的,可以真正节省公网ip的:这个也是动态的。前两个会把私网的ip映射成公网的ip,但这个会根据私网的(ip1, port1),映射成一个公网(ip1,port1)。当子网ip从一个port往外发包,到路由器会做个nat,找第一个可用的公网ip,再找到这个公网ip的第一个可以用的port,然后改成公网ip,port,并且会在路由器的nat表里生成记录,当收到包时候就可以反向nat,改成子网ip,port,这样就实现了通信。这样相当于可以把公网ip的资源用光,每个ip有64K+个端口可以用,(一共65535,除去前1024个不能用的)。

到处都是nat,你在电脑命令行上输入ipconfig看到的命令和你在百度搜索ip查询显示你的ip不是一个ip,这就是运营商给你做了nat。早期可能有些人的路由器都有一个公网ipv4,但是后来ipv4的地址一般都是分给机构、公司、政府等。现在个人使用的网络一般都是这些公司提供的服务,你ipconfig看到的地址,只是运营商在这个子网分给你的一个地址,上网的时候,运营商会给你做nat的。
OVS的CT实现NAT
也有一个文章:https://blog.csdn.net/ambzheng/article/details/123438943
这里只是非常简单提一下,ovs作为一个虚拟交换机,可以自己定义网络包如何转发,那么也就可以做nat。OVS-CT里面记录了一个连接的状态,可以根据其中的信息做nat,比如知道书记包是来自于哪一个连接的方向决定做snat(把私网变成公网,就是往外发包)还是dnat(公网变成私网,就是收包)。

nat是干什么的,为什么要有nat?以及谈谈ovs里使用ct实现nat功能的更多相关文章
- VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式
恐怕这是今年在上海的最后的一篇博客了,同事们上班都不工作了,我也没有什么事情要做.为什么要写这篇博客呢,原因是我回家要带上自己的笔记本,里面装了一个虚拟机.平时自己的学习和工作都是在虚拟机里进行的.回 ...
- [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1985084.html VMWare提供了三种工作模式,它们是brid ...
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...
- [转载]桥接与NAT
NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x) 网桥只是把网络桥接起来,还是原来的网关(192.168.21.x),虚拟机相当于 ...
- (转) 注意啦,笔记本是无线的,虚拟机上网方式莫用NAT,好难整。
有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认 NAT模式) 如果默认情况下不能上网,则按以下步骤尝试: ************************** ...
- Switch&NAT 测试
测试环境: PC1:Windows10 iperf3 PC2:Ubuntu iperf3 都装有千兆网卡,直连的iperf速度是935Mbps. 因为TXRX两个方向的数据是差不多的,下面的测试数据只 ...
- VMware Workstation中网络连接之桥接、NAT和Host-only
在Windows XP系统中,安装好VMware Workstation虚拟机软件以后,我们可以查看一下"网络连接"窗口: 在窗口中多出了两块网卡: VMware Network ...
- 转发 通过NAT和防火墙特性和TCP穿透的测评(翻译)
转自 http://blog.csdn.net/sjin_1314/article/details/18178329 原文:Characterization and Measurement of TC ...
- NAT技术
该文摘自百度百科"NAT"中的一部分 NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地 ...
- 在AWS中创建NAT节点
NAT, Network Address Translation,即网络地址转换.当内部网络的主机想要访问外网,但是又不想直接暴露给公网,可以通过NAT节点来访问外网.这样做有两个好处,第一是内网的主 ...
随机推荐
- 如何在超星下载非资料页面的ppt
首先打开迅雷(没有就复制到网页下载) 点击f12 点击网络,筛查出输入flag,在响应模块中找到ppt,复制网址并下载
- 微信小程序云函数中管理短信验证码的完整SDK工具
微信小程序云开发管理短信验证码并不是一件容易的事情,它不像其他web服务器开发中可以将验证码存放到session或者cookie中,你只能将其存到云开发的数据库中,实现起来非常困难.一个简单的需要短信 ...
- Day14-封装、继承、多态
封装.继承.多态 一.封装 package Demo; //类 private私有 public class student { //属性私有 //名字 private String name; // ...
- Java 获取【.jar】文件里的资源文件
获取jar文件里的图片等文件时,会发现使用相对路径不行了. 因为打包后的jar文件,在获取路径时稍有不同. 下面是获取jar文件中图片的例子: 1 Resource[] resources = new ...
- 插件和依赖的区别以及Java web开发层次结构
一:插件和依赖的区别 依赖:运行时和开发时都需要用到的包,比如项目中需要一个包,就要添加一个依赖(数据库驱动,连接池,mybatis...),这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖 ...
- 【APT】Patchwork APT组织针对巴基斯坦国防官员攻击活动分析
前言 Patchwork(白象.摩诃草.APT-C-09.Dropping Elephant)是一个疑似具有印度国家背景的APT组织,该组织长期针对中国.巴基斯坦等南亚地区国家进行网络攻击窃密活动.本 ...
- Jetpack compose初尝试
2021/07/29 Jetpack compose1.0正式发布,已经可以在生产环境中使用了. 下面的内容为根据官方教程尝试的总结,上手没难度,而且也不需要配置什么环境. Android 开发者 ...
- spring中.xml配置文件头部
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 线程池使用、countDownLatch、以及数据库批量插入 添加配置优化插入与计算
//新建线程池ThreadPoolExecutor cpuThreadPoolExecutor = ThreadUtil.getCpuThreadPoolExecutor(); //使用Countdo ...
- SQL五十题记录 1-2
前言: 创建以下四张表:①:课程表 ②:成绩表 ③:学生表 ④:教师表 1.查询课程编号为""01""的课程比"02"的课程成绩高的所有学生 ...