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节点来访问外网.这样做有两个好处,第一是内网的主 ...
随机推荐
- rabbitmq 使用管理页面向队列中推送消息
参考:https://blog.csdn.net/weixin_43343423/article/details/103382661
- 最长上升子序列(LIS) dp典型例题(tzoj 矩形嵌套,Rectangles )
5985: 矩形嵌套 题意:求最长递增子序列(包含两个元素) 思路:先找出关系式子: li=lj+1(当ai<aj时) 两层循环 第一层i从1-n 第二层j 从0-i :求出i前面的每个j 的m ...
- UniCode 下char*转CString ,利用MultiByteToWideChar进行转换,中文乱码的解决方案
//计算char *数组大小,以字节为单位,一个汉字占两个字节 int charLen = strlen(sText); //计算多字节字符的大小,按字符计算. int len = MultiByte ...
- mongodb删除指定字段
db.getCollection('geoServer').update({},{$unset:{longitude:null,latitude:null}},{ multi: true}) 实测有效 ...
- 24 Django模块的导入--常用总结
常用模块导入 1 forms # forms组件的使用 from django import forms 2 ValidationError # modelform报错时使用 from django. ...
- 【python】界面学习
最近开始要用python做界面了,又是在百度的洪流中不断呛水.下面列举了很多我在过程中查询的内容以及我认为相对对我的认知有益的链接. 1.python有哪些做界面的工具 三个:python gui 中 ...
- vue element tree 上移下移
效果图 需求是:上边没有了应该取最后一个 下边没有了 应该取第一个 直接上代码: <template> <el-tree :key="tree_key" v ...
- 【LeetCode】 907 子数组的最小值之和
Decrisption Given an array of integers arr, find the sum of min(b), where b ranges over every (conti ...
- Vue3引用全局js
在vue3中引入全局js: 1,创建一个js文件: 2,在main.js中引入该js文件: import comm from './utils/comm' app.config.globalPrope ...
- UE4 联网RPC部分
有些人生来就是为了奔跑,而有些人,则拥有更高的目标> 笔者近期在进行UE C++网络的一些开发,发现RPC这个部分它看起来很简单,理解起来也算不上难.但真正应用起来,对netcode经验不多的人 ...