10 NAT网络地址转换

广域网技术

上面聊的内容都是内网的一些配置,但内网终将要访问外网的,我们需要怎么处理呢?一般使用HDLC(高级数据链路控制协议)或者PPP(点对点协议)。

image-20231223200049834.png

使用PPP安全接入Internet

PPP(Point-to-Point Protocol 的缩写)点到点协议,提供在点到点链路上传输、封装网络层数据包的数据链路层协议。

PPP 协议支持同步、异步线路,能够提供验证,可以验证对端设备的合法性,在一定程度上保证链路的安全;支持网络层地址协调,支持 IP 地址的远程分配,能满足拨号线路的需求,无重传机制,网络开销小,并且易于扩展。

会话建立流程为:

image-20231223200503927.png

其中PAP和CHAP是两种认证协议

1.PAP:密码认证协议

image-20231223200704245.png

2.CHAP:竞争握手认证协议

image-20231223200730067.png

PPP+PAP的配置方案如下:

  1. PAP设置用户名、密码和服务类型
[RT1]local-user name
[RT1-user-name]password { cipher | simple } 密码
[RT1-user-name]service-type ppp
  1. 封装PPP协议
[RT1-S1/0]link-protocol PPP
  1. 配置认证方式
[RT1-s1/0]ppp authentication-mode { pap | chap }
  1. 被认证端详主认证端发送认证信息
[RT2-S1/0]ppp pap local-user name password { cipher | simple } 密码

image-20231223201633008.png

实战

image-20231223210727731.png

我们先配置一下PC的IP和路由器的接口IP,现在PC1是ping不同PC2的。

[RT1]int g0/0
[RT1-GigabitEthernet0/0]ip add 10.110.10.1 24
[RT1-GigabitEthernet0/0]quit
[RT1]int s1/0
[RT1-Serial1/0]ip add 211.16.12.1 24
[RT1-Serial1/0]quit[RT2]int g0/0
[RT2-GigabitEthernet0/0]ip addr 211.16.3.1 24
[RT2-GigabitEthernet0/0]quit
[RT2]int s1/0
[RT2-Serial1/0]ip addr 211.16.12.2 24
[RT2-Serial1/0]quit

路由器配置OSPF

[RT1]router id 1.1.1.1
[RT1]ospf 1
[RT1-ospf-1]area 0
[RT1-ospf-1-area-0.0.0.0]network 10.110.10.0 0.0.0.255
[RT1-ospf-1-area-0.0.0.0]network 211.16.12.0 0.0.0.255
[RT1-ospf-1-area-0.0.0.0]quit[RT2]router id 2.2.2.2
[RT2]ospf 1
[RT2-ospf-1]area 0
[RT2-ospf-1-area-0.0.0.0]network 211.16.12.0 0.0.0.255
[RT2-ospf-1-area-0.0.0.0]%Dec 23 21:18:42:480 2023 RT2 OSPF/5/OSPF_NBR_CHG: OSPF 1 Neighbor 211.16.12.1(Serial1/0) changed from LOADING to FULL.[RT2-ospf-1-area-0.0.0.0]network 211.16.3.0 0.0.0.255
[RT2-ospf-1-area-0.0.0.0]quit

现在PC1能够Ping通PC2,主要是因为路由表里有数据了。

[RT1]dis ip routing-tableDestinations : 15       Routes : 15Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
10.110.10.0/24     Direct  0   0           10.110.10.1     GE0/0
10.110.10.1/32     Direct  0   0           127.0.0.1       InLoop0
10.110.10.255/32   Direct  0   0           10.110.10.1     GE0/0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
211.16.3.0/24      O_INTRA 10  1563        211.16.12.2     Ser1/0
211.16.12.0/24     Direct  0   0           211.16.12.1     Ser1/0
211.16.12.1/32     Direct  0   0           127.0.0.1       InLoop0
211.16.12.2/32     Direct  0   0           211.16.12.2     Ser1/0
211.16.12.255/32   Direct  0   0           211.16.12.1     Ser1/0
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

配置PAP

[RT2]local-user RT1 class network
New local user added.
[RT2-luser-network-RT1]password simple 1234Abcd1234
[RT2-luser-network-RT1]service-type ppp

配置PPP协议

[RT2-Serial1/0]link-protocol ppp
[RT2-Serial1/0]ppp authentication-mode pap
[RT2-Serial1/0]quit

被验证方配置

[RT1-Serial1/0]link-protocol ppp
[RT1-Serial1/0]ppp pap local-user RT1 password simple 1234Abcd1234

NAT

概述

NAT是一种将私有地址转换成公有地址的技术,它实现了私有网络中主机可以通过共享少量公有地址访问Internet。

从内部网络到外部网络的实现流程为:

image-20231223121839909.png

请求从外部网络返回到内部网络的实现流程为:

image-20231223121946237.png

当然,上面的实现只是其中一种,但核心过程都差不多。NAT的实现方式有

  • Basic NAT:一对一转换,一个内部IP对应一个外部IP
  • NAPT(网络地址端口转换):一对多转换,一个外部IP可对应多个内部IP

image-20231223124327974.png

  • NAT Server(内部服务器):内部提供服务供外网访问

Basic NAT

Basic NAT实现一对一的转换,同时访问外网的主机数受地址池中共有地址数限制。

假设只允许市场部访问外网。

image-20231223130855063.png

配置方案一般分为如下几步:

1.配置ACL,哪些私有地址可以访问外网

[RT1]acl number 2000
[RT1-acl-basic-2000]rule permit source 10.110.10.0 0.0.0.255
[RT1-acl-basic-2000]rule deny source any

2.配置可使用的公网地址

nat address-group pool-index start-addr end-addr[RT1]nat address-group pool1 211.35.77.1 211.35.77.5

3.在出口将ACL与地址池关联

nat outbound acl-number address-group pool-index no-pat[RT1]interface S0/1/0
[RT1-Serial0/1/0]nat outbound 2000 address-group pool1 no-pat

4.查看效果

display nat session

NAPT

Basic NAT因为是一对一转换,所以同一时刻访问外网的主机数有限。

而NAPT借助端口复用技术,通过对数据包的 IP 地址、协议类型和传输层端口号同时进行转换,极大地提高了公有 IP 地址的利用效率。

下图比较清晰的展示了NAPT的实现原理,10.0.0.1的请求经过转换后的信息。

image-20231223131827908.png

在配置上和Basic NAT没有太大区别,出口配置的时候,不填写no-pat

nat outbound acl-number address-group pool-index [RT1]interface S0/1/0
[RT1-Serial0/1/0]nat outbound 2000 address-group pool1

Easy IP - NAPT特例

在实际应用中,常用的拨号接入的上网方式,公网 IP 地址是运营商动态分配的,无法提前获知,又该如何使用 NAPT 进行转换?解决这个问题,要引入 Easy IP 特性。Easy IP 直接使用与公网连接的接口 IP 地址作为转换后的地址。本质上省掉了“配置可使用的公网地址”这步。

image-20231223132502259.png

1.配置允许NAT转换的内网地址段

[RT1]acl number 2000
[RT1-acl-basic-2000]rule permit source 10.110.10.0 0.0.0.255

2.在出接口S0/1/0上做Easy IP

[RT1]interface S0/1/0
[RT1-Serial0/1/0]ip address 211.35.77.1 255.255.255.0
[RT1-Serial0/1/0]nat outbound 2000

3.查看

[RT1]display nat bound

NAT Server

NAT Server是解决外网主机首先发起链接,如何进行地址转换的问题。它能将私有地址和端口静态的映射为公网地址和端口,供公网用户访问服务器。

image-20231223171503933.png

配置过程

1.接口视图下配置内部服务器

interface interface-type interface-number
nat server protocol pro-type global golbal-address [global-port] inside local-address [local-port]//举例,202.38.1.1为对外提供服务的IP地址
nat server protocol tcp global 202.38.1.1 80 inside 10.110.10.1 www

2.查看配置

display nat server

实战

这次主要配置NAPT,我们在刚配置的架构图上做修改。

image-20231223215230215.png

[RT2]undo ospf
[RT1]undo ospf
[RT1]ip route-static 0.0.0.0 0.0.0.0 s1/0[RT1]acl number 2000
[RT1-acl-ipv4-basic-2000]rule permit source 10.110.10.0 0.0.0.255
[RT1-acl-ipv4-basic-2000]quit[RT1]nat address-group 1
[RT1-address-group-1]address 211.16.12.10 211.16.12.20
[RT1-address-group-1]quit[RT1]int s1/0
[RT1-Serial1/0]nat outbou
[RT1-Serial1/0]nat outbound 2000 address-group 1
[RT1-Serial1/0]quit

查看效果

[RT1-Serial1/0]dis nat session brief
Slot 0:
Protocol   Source IP/port         Destination IP/port    Global IP/port
ICMP       10.110.10.2/207        211.16.3.2/2048        211.16.12.11/0Total sessions found: 1

总结

总算能上网了,但是吧,感觉哪里不太对,还是得真的申请一个固定IP,然后用真机测试一下。后面会把防火墙的配置再学习一下,然后以小公司的网络配置设计一个架构图,用真机进行配置。另外也会把交换机、路由器常用的命令梳理好,方便自己也方便大家查找。

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java应用性能指标_性能与可靠性:Java应用为何像F1汽车

java应用性能指标再想一想。 性能和可靠性相关吗? 还是这些东西相互排斥? 我认为是后者。 如今,现实是IT部门将应用程序的性能和可靠性视为同一事物,但这离事实还差得远。 让我们看看一级方程式车队如何管理性能和可靠性。 上赛…

tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞(CVE20201938)复现

一、漏洞背景2020年02月20日,国家信息安全漏洞共享平台(CNVD)发布了关于Apache Tomcat文件包含漏洞(CVE-2020-1938/CNVD-2020-10487)的安全公告。Tomcat作为一款免费开源轻量级的web应用服务器,广泛应用于并发量不是很高的场合,Tomact默认端口…

【H.264/AVC视频编解码技术】第三章【熵编码】

熵编码的概念 熵:化学与热力学概念,用于度量能量退化的指标。熵越高,物体/系统做工能力越低。 信息学中的熵:用于度量消息的平均信息量,和信息的不确定性。越是随机的,前后不相关的信息,其熵越…

mock 抛出一个异常如何终止_教你使用Mock完成单元测试

更多精彩文章请关注本人微信公众号1、什么是Mock?mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。比如说你需要调用B服务,可是B服务还没有开发完成,那么你就可以将调用B服务的那部分给Moc…

jconsole查看连接数_在JConsole和VisualVM中查看DiagnosticCommandMBean

jconsole查看连接数我已经将JConsole用作合适的通用JMX客户端已有很多年了。 该工具通常随Oracle JDK一起提供,并且易于使用。 在JMX交互方面,JConsole优于VisualVM的最大优点是JConsole带有内置的MBeans选项卡,而必须为VisualVM中的相同功能…

如何知道一个域名是否存在_域名检测API实现查看一个域名在微信中是否被封

针对微信转发分享链接过程中,您宝贵的域名被微信检测系统过滤拦截而无法正常浏览,例如该网页包含诱导分享内容,被多人投诉等,又例如提示该网页已停止访问等提示。怎么查询域名在微信中是否被封了呢?以上接口可检测到域名的四种异…

量化指标公式源码_通达信指标公式源码线上阴线指标公式

工作线:(EMA(C,14)),POINTDOT,LINETHICK3,COLOR22ACDE;生命线:(MA(C,25)),LINETHICK1,COLORMAGENTA;不惑线:(MA(C,40)),COLORCYAN,LINETHICK1;姊妹线:(EMA(C,56)),POINTDOT,COLOR33CCDD,LINETHICK1;A3:EMA((((SLOPE(C,21)) * 20) C),68);A4:EMA(C,10);A5:REF(C,2);A6:((SMA((M…

jsf和jsp_带有JSF,Servlet和CDI的DynamicReports和JasperReports

jsf和jsp在此示例中,我将展示如何将DynamicReport和JasperReports与Servlet和CDI集成。 工具: TIBCO Jaspersoft Studio-6.0.4。最终版 Eclipse Luna服务版本2(4.4.2)。 WildFly 8.x应用程序服务器。 这是Eclipse上项目层次结…

接口隔离原则_设计模式的三大分类及六大原则

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式分为三大类&…

Leetcode 24. 两两交换链表中的节点

原题链接 题解: 1.头部会改变创建虚拟头结点 2.前两个点定义为a,b,c 3.p指向b,a指向c,b指向a ; p指向本段最后一个结点。 class Solution { public:ListNode* swapPairs(ListNode* head) {auto dummy new ListNode(-1);dummy->next head;for (a…

python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...

1. 提出需求 这已经不知道是粉丝问我的第几个办公自动化的问题了,并且这些问题都是大家在学习和工作中碰到过的真实问题场景。其实从下图中已经可以很明确的看出别人的需求了,我这里就不用在赘述了,下面直接上思路吧!2. 解题思路为…

apache ignite_从In Memory Data Grid,Apache Ignite快速入门

apache igniteIMDG或内存数据网格不是内存中关系数据库,NOSQL数据库或关系数据库。 它是另一种软件数据存储库。 数据模型分布在单个位置或多个位置的许多服务器上。 这种分布称为数据结构。 这种分布式模型被称为“无共享”架构。 IMDG具有以下特征: 所…

bvp解算器是什么_那些学习了编程的中学生,为什么会更可能成功?

来源 | 异步当你看到这个题目,或许会想,这不是搞笑吗?众所周知,高等数学是编程的基础和前提,而说起程序编写员,在普通人眼里就是数学学霸的代名词,人们往往会把它和那些数学天才的名字联系在一起…

maven与spring_与Spring和Maven签约首个SOAP服务

maven与spring1.简介 在本教程中,我们将学习使用JAX-WS,Spring和Maven实施合同优先的SOAP服务应用程序。 这是使用合同优先还是代码优先方法的更多设计决定。 在开发基于SOAP的Web服务应用程序时使用应用合同优先的方法最显着的好处是,可以在…

如何维持手机电池寿命_充电小知识:你知道如何正确充电吗?这几种充电方式最损害电池...

目前基本上大部分人都至少有一部智能手机,智能手机基本上都需要每日一充,你的充电方式会不会损伤电池呢?有部分消费者认为要等到手机电量耗尽后再充电,还有人认为手机充电要充至100%才能拔下来,有人觉得充电宝等产品给…

【开放集检测】OpenGAN: Open-Set Recognition via Open Data Generation 论文阅读

文章目录 英语积累为什么使用GAN系列网络进行开放集检测摘要1. 前言2. 相关工作开集检测基于GAN网络的开集检测基于暴露异常数据的开集检测 3. OpenGAN3.1 公式建模3.1.1 二分类方法存在问题如何解决 3.1.2 使用合成数据存在问题如何解决 3.1.3 OpenGAN3.1.4 模型验证 3.2 先前…

sso集成shiro_Keycloak SSO集成到jBPM和Drools Workbench中

sso集成shiro介绍 单一登录(SSO)和相关令牌交换机制正在成为Web上不同环境中身份验证和授权的最常见方案,尤其是在迁移到云中时。 本文讨论了Keycloak与jBPM或Drools应用程序的集成,以便使用Keycloak上提供的所有功能。 Keycloak…

jbpm 和 drools_jBPM和Drools工作台中的用户和组管理

jbpm 和 drools介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组。 用户和组管理 在安装,设置和使用此功能之前,本文讨论了一些以前的概念,需要进一步理…

从事java编程技能要求_5道Java视频课程,提高您的编程技能

从事java编程技能要求作为Web开发人员,跟上技术知识可能会很棘手。 新技术似乎每天都在弹出,而基本技术也看到了重复迭代的浪潮,增加了新的功能。 Java开发人员应该做什么? 这是在线教育平台发挥作用的地方。 它们可以帮助您快速…

sqlserver存储过程加锁后怎么解锁_【缺陷周话】第59期:重复加锁

聚焦源代码安全,网罗国内外最新资讯!*声明:《缺陷周话》栏目系列文章由奇安信代码卫士团队原创出品。未经许可,禁止转载。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。代码审计是使用静态分析发现源代码中安全缺陷的方法&…