NAT 地址转换
NAT功能
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
1.宽带分享:这是 NAT 主机的最大功能。解决IP4地址短缺的问题。
2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
NAT实现方式
有三种,即
1.静态转换Static Nat (静态ip 静态端口)
2.动态(源地址)转换Dynamic Nat
3.动态(目的地址)转换Dynamic Nat
4..端口多路复用OverLoad(PAT)
这些东西还是放在前面讲吧,看不懂,记不住无所谓,底层的原理
Inside 内部
Outside 外部
四个概念:
Inside local 内部本地地址(内部主机的实际地址,一般为私有地址)
Inside global 内部全局地址(内部主机经NAT转换后去往外部的地址,是ISP分配的合法IP地址)
Outside local 外部本地地址(外部主机由NAT设备转换后的地址,一般为私有地址,内部主机访问该外部主机时,
认为它是一个内部的主机而非外部主机)
Outside global 外部全局地址(外部主机的真实地址,互联网上的合法IP地址)
数据包只有在 outside 接口和 inside 接口之间路由时,并且符合
一定规则的,才会进行NAT转换。
所以实现NAT的路由器必须配置至少一个 outside 接口和一个 inside 接口,也可配置多个
内部端口连接的网络用户使用的是内部IP地址。 内部端口可以为任意一个路由器端口。
外部端口连接的是外部的网络,如Internet 。外部端口可以为路由器上的任意端口
ip nat inside source
ip nat inside destination (很多路由设备没有此选项)
都是内部地址转换
ip nat inside source 即是IL->IG (由内部发起的流量)
ip nat inside destination 即是IG->IL (由外部发起的流量)
撇开流量的发起方不说,达到的效果是一样的(都是IL与IG之间转换),即NAT Translation表的IL和IG项都一样。但是对于ip nat inside destination 需要注意
①只有TCP流量才会转换,ping 流量是不会触发NAT的Destination转换的!
②nat pool 一定要设置type为 rotary!!
cisco的NAT 命令汇总
ip nat inside source list 访问控制列表 (pool 池名 | interface 接口名) overload
ip nat inside source static 本地(ip | 端口) 外部(ip|端口)
ip nat outside source
pool
一.静态转换
1.静态IP转换
是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
. 将网络的一个内部地址L映射到一个外部地址G上。从内部网络发送以L为源的数据包的源地址会被替换成地址G。同时,从外部发往内部网络的目的地址为G的数据包的目的地址会被替换成L。这样内部主机就可以伪装成G与外部网络通信
语法:
ip nat inside source static 内部本地地址 内部全局地址
ip nat inside source static 10.0.0.1 222.2.2.1 // 配置静态NAT
ip nat inside source static 10.0.0.2 222.2.2.2
ip nat inside source static 10.0.0.3 222.2.2.3
interface f0/0
ip nat inside // 设置该端口为内部端口
interface f0/1
ip nat outside // 设置该端口为外部端口
实例:先设置好ACL语言,再设置NAT转换(使用上述代码)
2.静态端口转换
ip nat inside source static tcp/udp 内部本地地址 端口 内部全局地址 端口
ip nat inside source static tcp 10.0.0.1 80 222.2.2.1 80
ip nat inside source static tcp 10.0.0.2 24 222.2.2.1 24
interface f0/0
ip nat inside // 设置该端口为内部端口
interface f0/1
ip nat outside // 设置该端口为外部端口
二.动态(源地址)转换
将内部网络访问外部网络数据包的源地址L替换成设定好的全局地址G。使内部网络主机可以用这个全局地址G访问外部网络 ,但外部主机无法用G地址访问内部主机L
1.定义要转换的内部设备
这里使用 acl 访问控制列表
access-list 1 permit host 10.0.0.1
access-list 1 permit host 10.0.0.2
2.定义内部全局IP地址池
ip nat pool 池名 开始地址 结束地址 netmask 子网掩码
ip nat pool nat-pool 222.2.2.1 222.2.2.1 netmask 255.255.255.0
3.为内部本地调用转换地址池
ip nat inside source list acl语句 pool 池名
(这里也可以将池名换为路由器接口,所有动态转换使用此接口ip)
ip nat inside source list 1 pool nat-pool //使用地址池
ip nat inside source list <number> interface <interface> //使用路由器接口
4.定义内部外部端口
interface f0/0
ip nat inside // 设置该端口为内部端口
interface f0/1
ip nat outside // 设置该端口为外部端口
三.端口映射(pat)
1.定义要转换的内部设备
这里使用 acl 访问控制列表
access-list 1 permit host 10.0.0.1
access-list 1 permit host 10.0.0.2
2.定义内部全局IP地址池
ip nat pool 池名 开始地址 结束地址 netmask 子网掩码
ip nat pool nat-pool 222.2.2.1 222.2.2.1 netmask 255.255.255.0
3.为内部本地调用转换地址池
ip nat inside source list acl语句 pool 池名
overload
ip nat inside source list 1 pool nat-pool overload
四,动态(目的地址)转换
前面的几种情况都是对数据包的源地址进行 转换,下面来说下 对目的地址 转换
将外部主机访问设定好的全局地址G的数据包的目的地址替换成内部主机的地址L,也就是常见的虚拟服务器,
可对转换业务进行端口映射。这样外部主机可以访问内部的主机,但内部主机无法主动访问外部主机。
当配置的地址池中包含一个以上的地址时,外部主机对内部的访问会在这几个地址中做负载均衡
语法:
ip nat inside destination list 访问控制列表编号 pool 池名
NAT内部目标地址转换可用于实现TCP负载均衡,你可以用一台虚拟主机代替
多台实际主机接收用户的TCP请求,由NAT把这些请求轮流映射到各个实际主机上,
达到负载分流的目的。
配置TCP负载均衡时,访问控制列表定义的是虚拟主机的地址,IP地址池中定义的是各台实际主机的地址
范例:
ip nat pool np 192.168.1.1 192.168.1.3 netmask 255.255.255.0 // 内网地址
access-list 1 permit 60.8.1.1 0.0.0.0 //外网地址
ip nat inside destination list 1 pool np //内外网地址进行映射
查询:
show ip nat statistics
查看NAT统计数据和规则,包括inside和outside接口
show ip nat translations
查看生效的NAT设置
清除所有动态NAT配置 clear ip nat translation *
清除单个动态NAT配置: clear ip nat translation <global-ip>
清除特定NAT配置:
clear ip nat translation <global-ip> <local-ip> <protocol> <global-port> <local-port>
debug: debug ip nat [<list>] [detailed]
一些高级配置:
1.更灵活的地址池的配置:
ip nat pool <name> { netmask <mask> | prefix-length <length> } [ type { rotary } ]
这样可以允许定义不连续地址池,接下来定义地址空间: address <start> <end>
例子:
Router(config)#ip nat pool fred prefix-length 24
Router(config-ipnat-pool)#address 171.69.233.225 171.69.233.226
Router(config-ipnat-pool)#address 171.69.233.228 171.69.233.238
这样就定义了一个171.69.233.225-226和and 171.69.233.228-238的地址池
2.翻译为接口地址:
ip nat inside source list <number> interface <interface> overload
如果接口shut或者接口没有设置IP地址的话,NAT不会生效
3.映射某个服务到某个主机上(比如邮件服务):
ip nat inside source static { tcp | udp } <localaddr> <localport> <globaladdr> <globalport>
更高级扩展:
4.对route map的支持:
(route map和ACL很类似,它可以用于路由的再发布和策略路由,还经常使用在BGP中)
ip nat inside source route-map <name> pool <name>
例子: ip nat pool provider1-space 171.69.232.1 171.69.232.254 prefix-length 24
ip nat pool provider2-space 131.108.43.1 131.108.43.254 prefix-length 24
ip nat inside source route-map provider1-map pool provider1-space
ip nat inside source route-map provider2-map pool provider2-space
interface Serial0/0
ip nat outside
interface Serial0/1
ip nat outside
interface Fddi1/0
ip nat inside
route-map provider1-map permit 10
match ip address 1
match interface Serial0/0
route-map provider2-map permit 10
match ip address 1
match interface Serial0/1
NAT 地址转换的更多相关文章
- 清除路由器NAT地址转换
首先当你的NAT网络地址转换成功搭建起来,并且测试过网络通信时,此时NAT地址转换表上面是存在转换信息的,你可以通过在特权模式下输入命令"show ip nat translation&qu ...
- 手把手系列:实现Nat地址转换
1.实验目的: 掌握内网中的主机C1连接到Internet时,通过NAT实现私有全局地址转换. 2.实验拓扑: 3.实验步骤: 步骤一:给主机C1和C2配置IP地址.子网掩码和网关.如图: C1: ...
- 神州数码NAT地址转换配置
实验要求:熟练掌握NAT地址转换的配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip ad ...
- 【原创】锐捷实现OSPF路由协议和NAT地址转换协议
路由网络设计与实施 [锐捷设备实现OSPF路由协议与NAT地址转换] 说明: 本文是在多VLAN双星型交换网络的基础之上发展的.关于组建多VLAN双星型交换网络,请参阅: <思科和锐捷组建多 ...
- NAT地址转换
2017年1月12日, 星期四 NAT地址转换 SNAT:源地址转换 DNAT:目标地址转换 null
- 华为eNSP上的NAT地址转换配置
NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能. 1.实验拓扑 地址表: 1.完成各个接口基本配置之后使用pi ...
- CISCO实验记录九:NAT地址转换
1.静态NAT地址转换 #ip nat inside source static 192.168.12.1 192.168.23.4 //将12.1转为23.4 必须精确到主机IP 而不能是某个网段 ...
- NAT地址转换原理全攻略
NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...
- 网络防火墙和NAT地址转换
网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...
- 静态NAT地址转换
1.配置路由器端口ip(两个端口需要设置两个网段) Router(config)#inter f0/1 Router(confiog-if)#ip add 202.1.1.2 255.255.255. ...
随机推荐
- ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->发布)
一.简介 在讲本篇博文之前,需要你熟知怎么自定义ReactNative组件,然后才好学习将自定义的ReactNative组件制作成第三方库.本文中的自定义的ReactNative组件LoginMana ...
- Centos 7安装 Mysql
Mysql数据库的安装与配置 CentOS7的yum源中默认好像是没有mysql的,所有我们采用从官方下载的方式进行安装. 为了节省时间,下面的步骤参考网络上的教程,根据最新情况进行了修改. ①卸载M ...
- 毒瘤养成记1: 如何卡hash
各位毒瘤大家好, 最近模拟赛考了一道trie+主席树好题, 但大家都用hash水过了这道题(包括我), 为了测试一下新搭建的HEAT OJ的hack功能, 我将继续扮演毒瘤的角色, 用毒瘤的艺术形象努 ...
- 异数OS TCP协议栈测试(五)--关于QOS与延迟
. 异数OS TCP协议栈测试(五)–关于QOS与延迟 ##本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6524 ...
- 如何查看Ubuntu服务器上Django项目的MySQL服务有没有挂?
如果你在项目内输入:MySQL -uroot -p 接着输入密码之后返回ERROR:1045……如下图 那么这就说明MySQL服务挂了. 需要重新启动一下 重启时在项目目录下输入:sudo servi ...
- 记录 解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’
当运行sudo apt-get install/update/其他命令时,会出现如下提示: E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不 ...
- Python单元测试unittest测试框架
本文的主题是自动化测试框架的实现,在实现之前,先了解一下关于unittest模块的相关知识: Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回 ...
- NetBeans8.2 修改代码补全延迟时间
NetBeans早期版本提供修改提示速度的选项,大概是6.5版本之后就没这个修改功能了,但是仍可以配置: Windows配置如下: 1.C:\Users\${用户名}\AppData\Roaming\ ...
- java内存模型梳理
java内存模型 内存模型和内存结构区别 它们是两个概念. 内存模型是和jvm多线程相关的. 内存结构是指的jvm内存结构. 内存模型的作用 内存模型简称JMM JMM是决定一个线程对共享变量的写入时 ...
- tarjan求割点与割边
tarjan求割点与割边 洛谷P3388 [模板]割点(割顶) 割点 解题思路: 求割点和割点数量模版,对于(u,v)如果low[v]>=dfn[u]那么u为割点,特判根结点,若根结点子树有超过 ...