NAT和防火墙

article/2025/8/15 22:10:35

网络地址翻译@没文化的酒鬼

防火墙和NAT

NAT路由器是安装了NAT软件的路由器,拥有至少一个全球通用的外部IP。

在计算机网络中,NAT最直接的作用是IP映射:将内网终端A的IP和端口号经过NAT映射后,转成公网服务器B的IP和新端口号;当B接收到目的地终端C返回到B的应答之后,B将查找Translate Table,把C的应答转回给A。

防火墙的直接作用是数据包的过滤,拒绝一切主动请求与内网终端进行通信的未知IP。

但NAT不是单纯的翻译翻译IP和端口号就完事儿,它也会考虑任一C、D、E、F……送上门来的这个数据包,到底是不是B应该接收的,对于不该接收的,它会拒绝。NAT似乎包揽了部分的数据包过滤功能。

防火墙

防火墙
防火墙隔断内网和外网。分为两种:

  1. Packet-filtering :是否拒绝接收信息,取决信息来源的于IP地址、端口号,这属于IP/TCP/UDP的管辖范围;
  2. application-level :双向考虑,外网想进内网来的内容有没有问题;内网想送出去的内容该不该送出去。于是设立了应用层的大门。Telnet举例,想通过Telnet通信的ClientA必须通过ALG审核。路由器会阻断所有未经ALG,擅自想出去/进来的数据包。整个过程归应用层管。

默认的防火墙功能:1.当某外网终端送来内容,且与外网的通信建立是由内网发起的,那么内容被接收;2.一切未经内网发起的外来通信请求将被阻断。

这两种防火墙的整体弊端:

  1. 防不住IP假冒。路由器并不知道数据包是否真的来源于数据包自己宣称的地址;
  2. 需求繁琐。用户为了自证身份,必须要知道怎么跟ALG(Apllication Gateway)通信,于是产生了对IP地址代理商的需求;同时存在多个APP需要多扇ALG的复杂问题。

NAT

NAT示意图
NAT最基础的意义在于,把路由器右边的10.0.0.X和左边的138.76.29来回翻译。从右边往左翻译,是为了让内网的信息有资格在外网中传播;从左往右翻译,是为了外网送进来的内容能到达指定的的终端,具体是:X的值是多少。但是既然需要这样费时费力地来回翻译,NAT的存在有什么特别的意义?

考虑几个场景。

  • IPV4濒临枯竭的情况下,要确保每一台终端都分配到一个类似138.76.29的IP,需要花费多少IP。
  • 如果要不打扰所有内网10.0.0.X地把138.76.29给换掉。
  • 如果要不打扰外网(不进行广播)地把10.0.0.2给换掉。
    NAT, bingo>

NAT分四种: Full Cone Address Restricted Cone、Port Restricted Cone、Symmetric

——前三种为什么叫锥形?

NAT是一种地址映射协议。锥形的意义在于同一公网IP和端口(锥形顶点)可能与多个外部终端(锥形底面)建立通信。一个内部IP地址和端口来的所有请求,都映射到相同的公网IP地址和端口,并且,能否与外部终端进行通信,取决于选取的NAT种类是哪种,PORT RESTRICTED是最严格的,要求IP、PORT NUMBER全都固定;FULL CONE最宽松,NAT为A打开一个口以后,只要建立了内部网络的IP地址和端口与公网IP地址和端口的映射关系,所有的Internet上的主机都可以通过该端口访问A。

——锥形和非锥形的根本区别在哪里?
锥形有一个顶点,即经过Translate table后唯一的IP和端口号,无论一个内网终端A进行通信的外部设备有几台,A仅具有独一的IP和端口号。
在NAT已分配端口号给终端A的情况下,如果终端A继续用内网12345端口与另一外网服务器通讯,锥型NAT还会继续用原来62000公网端口,即所分配的端口号不变。而对于对称型NAT,NAT将会分配另一端口号(如62001)给终端A的1235端口。也就是说,同一内网主机同一端口号,对于锥型NAT,无论与哪一外网主机通讯,都不改变所分配的端口号;而对于对称型NAT,同一内网主机同一端口号,每一次与不同的外网主机通讯,就重新分配另一个端口号。

——既然有NAT Router为内部终端翻译地址从而能够进行内外网的自由通信,那内部终端为什么还要打听自己的公网IP?
一个内网终端A主动往外网终端B发包后,B所属的局域网的防火墙会把A阻拦,所以接下来A、B想进行通信,B需要再向A发包,这时因为A已经主动建立过与B的通信,所以A不会拒绝B。A、B相互发送的数据包的源IP,都必须是公网IP和端口号,子网IP的数据包是不会被正确追踪和传送的。NAT Router只负责映射出一个表格,不负责动态、自动地给每个想与外部建立连接的A终端分配并修改数据包上的Src IP,所以从A发出的数据包,A必须自己负责确定卸载数据包上的Src IP是多少,这就要求,在发出之前,搞清楚自己的公网IP和端口号。

怎样让内网的应用程序知道自己的公网IP和端口号,这个问题叫做NAT的穿透。有四种解决NAT穿透问题的办法,前三种是向NAT外部设备发出询问,第四种是向NAT本身发出询问。

  1. STUN(Simple Traversal of UDP Through NATs) 通过与外部的STUN服务器建立UDP连接,继而询问公网IP和端口号。如果STUN服务器仅一台,那么不同的应用程序被反馈的端口号是唯一的,因此这种方法的弊端在于不支持对称NAT。除此,STUN无法进行TCP连接。
  2. TURN(Traversal Using Relay NAT)TURN允许多媒体数据包直接传向TURN服务器,从而适用在对称型NAT,但带来了其他一系列复杂问题,现在SIP用户很少支持TURN。
  3. ICE(Interactive Connectivity Establishment)最理想的穿透方式,能够保证:除非在用户接起电话的一瞬间数据是连通的,否则用户的电话铃就不会响起。对NAT种类没有要求。
  4. UPnP(Universal Plug and Play)一次性询问NAT大门:我是谁,我在哪。获得NAT Gateway 提供的IP、端口号。但考虑某种网络:NAT大门串联存在的网络,这时UPnP一定不能起效。另一个弊端:每当新的应用程序出现,Application Layer Gateway 需要获得更新,这将UPnP的使用限制在大型企业。至今没有商用的SIP ALGs。 UPnP的限制性描述

http://chatgpt.dhexx.cn/article/pHMBFfeT.shtml

相关文章

快速了解防火墙

快速了解防火墙 防火墙是一种由计算机硬件和软件组成的系统,部署于网络边界,是连接内部网络和外部网络(或内部网络不同安全级别的部门)之间的桥梁,同时对进出网络边界的数据进行保护,防止恶意入侵、恶意代码的传播等,…

防火墙概述

AC是为了防御从内网到外网的攻击防火墙是为了防御从外网到内网的攻击 防火墙的定义 防火墙通常用于两个网络之间的隔离 主要用于保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为路由器与交换机的本质是转发,防火墙的本质是控制和防护 防火墙的工…

防火墙(firewall)

前言 计算机的安全性历来就是人们热衷的话题之一。而随着Internet的广泛应用,人们在扩展了获取和发布能力的同时也带来信息被污染和破坏的危险。这些安全问题主要是由网络的开放性、无边界性、自由性造成的,还包括以下一些因素。 1. 计算机操作系统本身…

华为防火墙的学习

防火墙 - 含义和定义 什么是防火墙? 防火墙的工作原理 防火墙的区域: 包过滤防火墙----访问控制列表技术---三层技术 代理防火墙----中间人技术---应用层 状态防火墙---会话追踪技术---三层、四层 UTM---深度包检查技术----应用层 下一代防火墙 防火墙的…

潘多拉 STM32L475 VE——开发板学习 (持续更新)

首先就是开发板的各个硬件的介绍: ◆ MCU : STM32L475VET6 , LQFP100 , SRAM : 128K , FLASH : 512K ◆ 外扩 SPI FLASH : W25Q128 , 16M 字节 ◆ 1 个电源指示灯…

WiFi 移植记录及心得 一

平台环境:IMX6-sabresd_6dq Android4.4.2 Linux3.0.35 WiFi模块:AP6181 (BCM43362) Linux3.0.35已经是支持博通的芯片,可以看到 kernel_imx/drivers/net/wireless 下面有几款博通芯片(bcm4329/bcm4330/bcmdhd)的驱动源码,AP6181WiFi模块用的bcm43362这款,所以这里选…

imx6ull linux下wifi驱动移植

linux下wifi移植,首先要保证硬件gpio相关配置正确,第二步是才是软件相关的配置 一、硬件篇 硬件模块选的是正基ap6745的三合一模块(wifi、bt、fm),wifi通讯用sdio模式传输数据,sdio_vsl决定sdio工作电压是…

物联网中你需要了解的ESP8266最基本的知识!

若要涉及到物联网,必然绕不开ESP8266。由于其低廉的价格、超高的性能和便利的开发环境,其毫无疑问成为了业界里程碑一样的存在。 在本文中,我们采购的是正点原子的ESP8266模块,连接的单片机为正点原子的STM32 MINI开发板。 本文…

WiFi蓝牙FM三合一模块AP6356S

AMPAK正基AP6356S,这是一款可同时双频工作的双通道SDIO接口WiFi支持11ac级双频、蓝牙支持BT4.1标准的WiFi 蓝牙 FM三合一模块;其中蓝牙和WiFi共用天线(也就是双天线),还有一款硬件尺寸完全一样的,蓝牙WiFi天线分开的AP6398S3R(也就是三天线) 技术问题 模…

正基WiFi模块STA模式基本操作示例(2)

接上一篇文章! 4. STA 模式基本操作示例 4-1 加载驱动 步骤 1. 加载驱动。 ap6181/ap6212/ap6212a/ap6214a/ap6255 himm 0x100d0004 0x1 himm 0x12098034 0x10101070 insmod cfg80211.ko insmod bcmdhd.ko firmware_path/etc/firmware/fw_bcm40181a2.bin nvram_path…

android+wifi驱动移植,全志R16 android4平台移植wifi资料下载

2. 模块概述 目前R16 android4.4 平台上已支持wifi 模组有5款,本文档将以R16 y3方案为例 说明如何配置每款wifi 模组。Rtl8723au暂不支持 wifi 模组可分USB 接口和SDIO 接口两种类型,部分模组带蓝牙和FM 功能(FM 功能尚未支持),wifi 的全功能…

ap8161驱动移植

平台:imx287 linux内核:2.6.35 开机设置:正常开机,跳线帽在jp4, SD烧写JP3 JP4 正常启动后,sd卡的内容读取,拔掉jp4跳线帽,在串口控制台输入:df -m 找到盘号。然后在板子的/media…

[RK3288 Android7.1.2 ]新增wifi模块ap6256

Platform: ROCKCHIP Chip: RK3288 OS: Android7.1.2 Kernel: 4.4.143 背景 旧板wifi模块ap6235,硬件将wifi模块替换成ap6256,未改代码情况下,wifi不能用, 设备打印如下 代码修改 1.新增固件:wifi在externa\wlan_loader\firmw…

RK903 RK901 AP6xxx系列WiFi模块配置

包括以下模块:RK901、RK903、AP6181、AP6210、AP6330、AP6476、AP6335等选择“RK901/RK903/BCM4330/AP6XXX wireless cards support” 不需要配置:“Select the wifi module”与”Select the wifi module crystal freq”dts中wifi_chip_type配置&#xf…

AMPAK正基AP6XXX系列WiFi移植(1)

通常 Wi-Fi 有四种模式,不同的 Wi-Fi 设备可能支持其中一种或几种模式,四种模式如下: SoftAP:access point,一种将无线设备连接到一个网络的设备,可以理解为无线路由。 STA:station&#xff0…

RT-Thread学习的综合应用——使用AP6181 WiFi模组对接OneNET应用示例

学习了RT-Thread的内核也有一段时间了,由于各种各样的琐事自己没有去做一个综合应用示例,刚最近有点时间,做了一个对接OneNET的历程,采用的是OneNET的EDP协议,关于OneNET的EDP协议可以点击跳转至OneNET EDP协议讲解与应…

IOT-OS之RT-Thread(十六)--- WLAN管理框架 + AP6181(BCM43362) WiFi模块

文章目录 一、WLAN管理框架简介二、WLAN Device实现与AP6181 WLAN驱动移植2.1 WLAN Device驱动接口层2.2 AP6181 WLAN驱动移植 三、WLAN Protocol实现与LwIP协议栈移植3.1 WLAN Protocol 网络协议层3.2 LwIP协议栈移植 四、WLAN Config 参数管理与自动连接实现4.1 WLAN Config …

ap6181移植

ap6181 功能:wifi station、softap、wifi direct 接口类型:SDIO 编译模式:编成模块方式,修改路径如下BoardConfig.mk android4.4\device\softwinner\astar-y3 BoardConfig.mk 文件决定android 加载哪一款wifi 模组, 要…

超高性价比WiFi蓝牙模块大合集

无线技术的不断成熟,对物联网的发展起着至关重要的作用,实现“万物互联、物物互联”变得更加轻松、安全。蓝牙技术和WiFi技术都属于无线通信网络标准,可以实现无线段距离联络,并且都工作在ISM2.4GHz公共频段,但是不同的…