草庐IT

华为 静态NAT---动态NAT---NAPT---Easy IP---NAT服务器工作原理和示例配置

义一 2023-04-03 原文

目    录

一、NAT简介

二、NAT好处:

三、静态NAT工作原理和示例配置

1. 静态NAT工作原理

2. 静态NAT配置示例 

四、动态NAT工作原理和示例配置

1. 动态NAT工作原理 

2.动态NAT示例配置

五、NAPT工作原理和示例配置

1. NAPT工作原理  

2.NAPT示例配置

六、Easy IP工作原理和示例配置

1. Easy IP工作原理  

2. Easy IP示例配置

七、NAT服务器工作原理和示例配置

1. NAT服务器工作原理

2. NAT服务器示例配置


一、NAT简介


        随着Internet的发展和网络应用的增多,IPv4地址枯竭已经成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足的问题,但目前众多的网络设备和网络应用仍是基于IPv4的,因此在IPv6广泛应用之前,些过渡技术的使用是解决这个问题的主要技术手段。网络地址转换技术NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。

        静态NAT:静态NAT技术的核心内容就是建立并维护一张静态地址映射表,静态地址映射表反映了公有IP地址与私有IP地址之间的一一对应关系,即,一个公网地址对应一个私网地址。
        公有IP地址与私有IP地址之间对应关系:一对一。

        动态NAT:动态NAT是建立私有地址池和公有地址池映射表,以先到先得的原则给私有IP地址分配公有地址池中的IP地址,地址转换时随机的。
        当具有私有 IP 地址的主机请求访问 Internet 时,动态 NAT 从公有地址池中选择一个未被其它主机占用的 IP 地址一对一的映射给私有 IP 地址主机;当Internet访问结束后,私有地址池和公有地址池映射表会释放公有IP地址回到地址池,以供其他私有IP地址的转换。
        在一个时间点内,一个私有IP地址只能占用一个公有IP地址;一个公有IP在不同的时间里可以对应多个私有IP。
        当同一时刻动态NAT地址池中的公有IP地址用尽后,只能等待被占用的公网IP地址被释放后,其他主机才能使用它来访问公网。

        公有IP地址与私有IP地址之间对应关系:多对多。

        NAPT(Network Address Port Translation网络地址端口转换):也称为NAT-PT或PAT,允许多个私网IP地址映射到同一个公网IP地址的不同端口。
        通常适用于大型企业网络(申请多个固定的公网地址)。

        公有IP地址与私有IP地址之间对应关系:一对多。

        Easy IP:允许多个私网IP地址映射到网关出接口IP地址上的不同端口。
        适用于小规模局域网中的主机访问Internet的场景。如:家庭、小型网吧、小型办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网IP地址。
 
        公有IP地址与私有IP地址之间对应关系:一对多。

        NAT服务器:也叫端口映射,当公网用户访问内网服务器时,NAT Server通过事先配置好的"公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网P地址+端口号”根据映射关系替换成对应的“私网P地址+端口号”。

        NAT服务器和静态NAT、动态NAT、NAPT、Easy IP的区别:
        NAT服务器是内网向外网提供服务,是从公网IP地址访问私网IP地址,由外向内访问;
        静态NAT、动态NAT、NAPT、Easy IP是从私网IP地址访问公网IP地址,由内向外访问。
​​​​​​​

二、NAT好处:

  1. NAT具有“屏蔽”内部主机的作用,有效避免来自外网的攻击,可以很大程度上提高网络安全性。
  2. 控制内网主机访问外网,同时也控制外网主机访问内网,解决了内网和外网不能互通的问题。 

三、静态NAT工作原理和示例配置

1. 静态NAT工作原理

2. 静态NAT配置示例 

system-view
sysname UserR
dhcp enable    //开启DHCP服务
interface GigabitEthernet 0/0/0
ip address 192.168.11.254 24
dhcp select interface    // 0/0/0接口和DHCP接口地址池关联
int GigabitEthernet 0/0/1
ip address 6.6.6.2 29
nat static global 6.6.6.6 inside 192.168.11.253    //创建静态NAT
nat static global 6.6.6.5 inside 192.168.11.252
ip route-static 0.0.0.0 0 6.6.6.1
//注:如果静态NAT功能没开启,需先用nat static enable命令开启后在创建静态NAT。


system-view
sysname ISP
int GigabitEthernet 0/0/0
ip address 6.6.6.1 29
int GigabitEthernet 0/0/1
ip address 8.8.8.8 28

        PC2设置和PC1相同
 

四、动态NAT工作原理和示例配置

1. 动态NAT工作原理 

2.动态NAT示例配置

  

sys
sysname UserR
dhcp enable
int gi 0/0/1
ip add 192.168.0.254 24
dhcp select interface
ip route-sta 0.0.0.0 0 11.1.1.1
nat address-group 1 11.1.1.10 11.1.1.99    //创建公有IP地址池
acl 2000
rule 5 permit source 192.168.0.0 0.0.0.255    //允许和公有IP地址池映射的私有IP地址
int gi 0/0/0
ip add 11.1.1.2 23
nat outbound 2000 address-group 1 no-pat    //私有IP地址和公有IP地址映射


sys
sysname ISP
int gi 0/0/0
ip add 11.1.1.1 23
int gi 0/0/1
ip add 22.2.2.1 24

五、NAPT工作原理和示例配置


1. NAPT工作原理

2.NAPT示例配置

  

sys
sysname UserR
dhcp enable
int gi 0/0/1
ip add 192.168.0.254 24
dhcp select interface
ip route-sta 0.0.0.0 0 11.1.1.1
nat address-group 1 11.1.1.99 11.1.1.99    //公有地址池只有一个IP地址
//nat address-group 1 11.1.1.10 11.1.1.99    //公有地址池有多个IP地址
acl 2000
rule 5 permit source 192.168.0.0 0.0.0.255    //允许和公有IP地址池映射的私有IP地址
int gi 0/0/0
ip add 11.1.1.2 23
nat outbound 2000 address-group 1    //私有IP地址和公有IP地址映射
//和动态NAT配置不同的是,此处没有no-pat命令,其他完全相同
//nat outbound 2000 address-group 1 no-pat    //动态NAT配置


sys
sysname ISP
int gi 0/0/0
ip add 11.1.1.1 23
int gi 0/0/1
ip add 22.2.2.1 24

NAPT和动态NAT配置只有一条命令不同,其他完全相同:
        动态NAT配置命令nat outbound 2000 address-group 1 no-pat;
        NAPT的配置命令nat outbound 2000 address-group 1。

路由和PC配置与动态NAT基本相同,此处不再赘述。

六、Easy IP工作原理和示例配置

1. Easy IP工作原理  

        Easy IP 特点:
        公有IP地址未知(动态分配),直接关联内部私有IP网络网关出接口,因此不用创建公有IP地址池,否则会出现冲突而报错。

2. Easy IP示例配置

​​​​​​​

sys
sysname UserR
dhcp enable
int gi 0/0/1
ip add 192.168.0.254 24
dhcp select interface
ip route-sta 0.0.0.0 0 11.1.1.1
//nat address-group 1 11.1.1.99 11.1.1.99    //公有地址池只有一个IP地址
//nat address-group 1 11.1.1.10 11.1.1.99    //公有地址池有多个IP地址
acl 2000
rule 5 permit source 192.168.0.0 0.0.0.255    //允许和公有IP地址池映射的私有IP地址
int gi 0/0/0
ip add 11.1.1.2 23
nat outbound 2000    //Easy IP配置所需命令
//nat outbound 2000 address-group 1    //NAPT配置所需命令
//nat outbound 2000 address-group 1 no-pat    //动态NAT配置所需命令 

sys
sysname UserR
dhcp enable
int gi 0/0/1
ip add 192.168.0.254 24
dhcp select interface
ip route-sta 0.0.0.0 0 11.1.1.1
acl 2000
rule 5 permit source 192.168.0.0 0.0.0.255 
int gi 0/0/0
ip add 11.1.1.2 23
nat outbound 2000 


sys
sysname ISP
int gi 0/0/0
ip add 11.1.1.1 23
int gi 0/0/1
ip add 22.2.2.1 24

        Easy IP和动态NAT、NAPT只有UserR路由器配置不同,其他配置都相同,不再赘述。

七、NAT服务器工作原理和示例配置

1. NAT服务器工作原理

2. NAT服务器示例配置

sys
sysname UserR
dhcp enable
int gi 0/0/1
ip add 192.168.0.254 24
dhcp select interface
ip route-sta 0.0.0.0 0 11.1.1.1
int gi 0/0/0
ip add 11.1.1.2 23
nat server protocol tcp global 11.1.1.11 6688 inside 192.168.0.11 www


sys
sysname ISP
int gi 0/0/0
ip add 11.1.1.1 23
int gi 0/0/1
ip add 22.2.2.1 24

        内网通过拨号上网,要访问内网服务器可用动态域名绑定,即动态的公网地址,固定的域名。

        外网访问内网有两种方式:1.端口映射,即NAT服务器;2.VPN。

有关华为 静态NAT---动态NAT---NAPT---Easy IP---NAT服务器工作原理和示例配置的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  4. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  5. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  6. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  7. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  8. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  9. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  10. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

随机推荐