博客竟然不显示更新的时间,只有个发布时间。看起来像2个月没更新一样,其实更新了几行呢。好几个东西想理一下,本来想和周记放一起了,但放一起就没有主题了。

当然一搜也有一些很好的博客,更详细:https://blog.csdn.net/gui951753/article/details/79593307 ,https://www.zhihu.com/question/31332694

我是想用自己的话去说一下,简单明了总结一下,并且还会说一下ovs怎么实现nat。

NAT

  在说之前要明了两个事情:

  1. 计算机上的技术,几乎都是为了解决出现的问题产生的,这是任何知识需要明白的根源。
  2. 自己的网络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功能的更多相关文章

  1. VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式

    恐怕这是今年在上海的最后的一篇博客了,同事们上班都不工作了,我也没有什么事情要做.为什么要写这篇博客呢,原因是我回家要带上自己的笔记本,里面装了一个虚拟机.平时自己的学习和工作都是在虚拟机里进行的.回 ...

  2. [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1985084.html VMWare提供了三种工作模式,它们是brid ...

  3. VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...

  4. [转载]桥接与NAT

    NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x) 网桥只是把网络桥接起来,还是原来的网关(192.168.21.x),虚拟机相当于 ...

  5. (转) 注意啦,笔记本是无线的,虚拟机上网方式莫用NAT,好难整。

    有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认 NAT模式) 如果默认情况下不能上网,则按以下步骤尝试: ************************** ...

  6. Switch&NAT 测试

    测试环境: PC1:Windows10 iperf3 PC2:Ubuntu iperf3 都装有千兆网卡,直连的iperf速度是935Mbps. 因为TXRX两个方向的数据是差不多的,下面的测试数据只 ...

  7. VMware Workstation中网络连接之桥接、NAT和Host-only

    在Windows XP系统中,安装好VMware Workstation虚拟机软件以后,我们可以查看一下"网络连接"窗口: 在窗口中多出了两块网卡: VMware Network ...

  8. 转发 通过NAT和防火墙特性和TCP穿透的测评(翻译)

    转自 http://blog.csdn.net/sjin_1314/article/details/18178329 原文:Characterization and Measurement of TC ...

  9. NAT技术

    该文摘自百度百科"NAT"中的一部分 NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地 ...

  10. 在AWS中创建NAT节点

    NAT, Network Address Translation,即网络地址转换.当内部网络的主机想要访问外网,但是又不想直接暴露给公网,可以通过NAT节点来访问外网.这样做有两个好处,第一是内网的主 ...

随机推荐

  1. cad图整理

    UF_initialize(); tag_t ObjectTag = NULL_TAG; tag_t view_tag = NULL_TAG; UF_OBJ_disp_props_t disp_pro ...

  2. 运行代码后出现Process finished with exit code 0

    pycharm_运行不出结果,也不报错_Process finished with exit code 0用pycharm运行程序的时候,运行不出结果 ,也不报错,且正常退出解决1:将 run → e ...

  3. UE4 编辑器的非运行时,给StaticMeshActor设置StaticMesh

    用 UAssetManager::GetStreamableManager().LoadSynchronous<UStaticMesh>(FSoftObjectPath(packagePa ...

  4. Java断言语句

    ​ 断言语句在调试代码阶段非常有用,断言语句一般用于 程序不准备通过捕获异常来处理的错误,例如,当发生某个错误时,要求程序必须立即停止执行.在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错 ...

  5. Flink笔记

    高可用(HA):直白来说就是系统不会因为某台机器,或某个实例挂了,就不能提供服务了.高可用需要做到分布式.负载均衡.自动侦查.自动切换.自动恢复等. 高吞吐: 单位时间内,能传输的数据量,对应指标就是 ...

  6. Django框架搭建web项目(一)

    建议查看官方文档:https://docs.djangoproject.com/zh-hans/4.0/intro/tutorial01/ 1.本地安装python环境(略) 2.本地安装Django ...

  7. Spring Cloud学习记录

    Eureka和zookeeper都是注册中心为什么zookeeper不适合? 1.CAP原则.一致性,可用性,分区容错性,最多满足两种.zookeeper遵循CP原则,实际项目中不应该为了一致性失去可 ...

  8. Python+Django(4)——创建其他网页(模板继承)

    模板继承: 1,修改主页 父模板:抽取通用元素,在index.html同级目录下新建base.html <p> <a href="{% url 'learning_logs ...

  9. django rest 自定义返回数据接口和异常处理

    参考 Django rest framework自定义返回数据格式 一.简介 drf 默认返回的异常格式是这样的 1 { 2 "username": [ 3 "该字段是必 ...

  10. 去除input框相关样式,只显示内容

    <input /> css代码: .edit-input{ /* width: 20px; */ height: -webkit-fill-available; background: i ...