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.rhkb.cn/news/223753.html

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

相关文章

PHP函数定义和分类

函数的含义和定义格式 在PHP中,允许程序员将常用的流程或者变量等组件组织成一个固定的格式实现特定功能,也就是说函数是具有特定功能特定格式的代码段。 函数的定义格式如下: function 函数名(参数1,参数2,参数n) {…

基于SSM的双减后初小教育课外学习生活活动平台的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说,我们将使用ILI9431显示器作为显示设备,并通过UDP协议将图片数据从发送端传输到ESP8266。最后,我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中,我们将面临一些编程挑战&…

STM32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件

资料下载: https://download.csdn.net/download/vvoennvv/88658447 一、概述 关于IAP的原理和Ymodem协议,本文不做任何论述,本文只论述bootloader如何使用串口通过Ymodem协议接收升级程序并进行IAP升级,以及bootloader和主程序两个工程的配置…

最常见的SQL报错注入函数(floor、updatexml、extractvalue)及payload总结

SQL报错注入是一种常见的SQL注入攻击方式,攻击者通过注入恶意代码,触发数据库的错误响应,并从错误信息中获取有用的信息。 下面介绍最常见的三个报错注入函数用法及payload总结: 1、floor() 使用floor报错注入,需要…

Centos 7.9安装Oracle19c步骤亲测可用有视频

视频介绍了在虚拟机安装centos 7.9并安装数据库软件的全过程 视频链接:https://www.zhihu.com/zvideo/1721267375351996416 下面的文字描述是安装数据库的部分介绍 一.安装环境准备 链接:https://pan.baidu.com/s/1Ogn47UZQ2w7iiHAiVdWDSQ 提取码&am…

Java经典框架之Spring

Java经典框架之Spring Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring简介 2.…

T-Dongle-S3开发笔记——相关配置

portTICK_PERIOD_MS设置 Flash配置 Flash SPI mode 默认是DIO,改为QIO (W25Q128支持QIO) DIO与QIO区别: esp8266,esp32中的SPI FLASH 访问模式(QIO QOUT DIO DOUT)_qio dio-CSDN博客 Dual SPI:MOSI 和 MISO 引脚…

等腰三角形两底角相等

等腰三角形定义: 是指至少有两边相等的三角形。相等的两个边称为这个三角形的腰 二.证明 有等腰△ABC,AB和AC是腰,p是BC的中点 证明等腰三角形两底角相等 即 ∠ A B P ∠ P C A ∠ABP∠PCA ∠ABP∠PCA ∴ ∴ ∴ 三角形内角和为180 ∵ { ∠ A B P ∠ A P B ∠ B A P 180 …

什么是视频号小店?怎么开通,上架产品,一篇详解!

大家好,我是电商糖果 一个做了七年电商的95后,现居河南郑州。 混迹互联网多年,电商圈的gai溜子,偶尔会抽抽风。 这篇文章分享的内容是糖果在2022年做的电商项目——视频号小店。 因为它是刚出来的,很多人对此不是很…

leetcode 1576. 替换所有的问号(easy)(优质解法)

链接&#xff1a;1576. 替换所有的问号 代码&#xff1a; class Solution {public String modifyString(String s) {char[] charSs.toCharArray();int lengthcharS.length;//遍历找到 &#xff1f;for(int i0;i<length;i){if(charS[i]?){//遍历 a ~ z 选择一个合适的字符来…

12.21 汇编点亮STM32MP157小灯

.text .global _start _start: 时钟使能LDR r0,0x50000A28LDR r1,[r0]ORR r1,r1,#(0x1<<4)ORR r1,r1,#(0x1<<5)ORR r1,r1,#(0x1<<1)STR r1,[r0]配置GPIO模式LDR r0,0x50006000LDR r1,[r0]BIC r1,r1,#(0x2<<20)ORR r1,r1,#(0x1<<20)BIC r1,r1,#(…

Redis高并发缓存设计问题与性能优化

Redis高并发缓存设计问题与性能优化 缓存设计典型问题缓存穿透缓存失效(击穿)缓存雪崩热点缓存key重建优化缓存与数据库双写不一致 开发规范与性能优化一、键值设计1. key名设计2. value设计big key的危害&#xff1a;1.导致redis阻塞2.网络拥塞3. 过期删除 big key的产生&…

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作&#xff0c;照着流程操作会清除整个硬盘里的文件&#xff0c;请考虑清楚哦&#xff5e; 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…

AI日报:2024年人工智能对各行业初创企业的影响

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 2024年人工智能对初创企业的影响具体行业医疗金融服务运输与物流等 新趋势 2024年人工智能对初创企业的影响 2023年见证了人工智能在各个行业的快速采用和创新。随着我们步入2024年&#xff0c;人工智能初创公司正…

反序列化版本漏洞

laravel5.7反序列化漏洞 <?phpnamespace Illuminate\Foundation\Testing {class PendingCommand{public $test;protected $app;protected $command;protected $parameters;public function __construct($test, $app, $command, $parameters){$this->test $test; …

5 分钟体验下一代轻量级日志分析系统Loki

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享 Grafana Loki 是什么 Loki是由Grafana Labs开源的一个水平可扩展、高可用性&#xff0c;多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#xff0…

matlab实践(十一):导弹追踪

1.题目 a9.94,x062.06 2.方程 我们有&#xff1a; ( d x d t ) 2 ( d y d t ) 2 w 2 (\frac{\mathrm d\mathrm x}{\mathrm d\mathrm t})^2(\frac{\mathrm d\mathrm y}{\mathrm d\mathrm t})^2\mathrm w^2 (dtdx​)2(dtdy​)2w2 还有导弹始终指向船 ( d x d t d y d t ) …

C语言:字符串字面量及其保存位置

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 虽然C语言中不存在字符串类型&#xff0c;但依然可以通过数组或指针的方式保存字符串&#xff0c;但字符串字面量却没有想象的这么简单&#xff0c;本文就将对此进行讨论…

MLX vs MPS vs CUDA:苹果新机器学习框架的基准测试

如果你是一个Mac用户和一个深度学习爱好者&#xff0c;你可能希望在某些时候Mac可以处理一些重型模型。苹果刚刚发布了MLX&#xff0c;一个在苹果芯片上高效运行机器学习模型的框架。 最近在PyTorch 1.12中引入MPS后端已经是一个大胆的步骤&#xff0c;但随着MLX的宣布&#x…