NAT,先做实验,后学习
前言
往往要用到才开始学习整理。
实验
实验环境:HCL模拟器
实验要求:
1.用户内网有2台服务器使用202.1.100.26这个公网地址对外提供web和ftp服务。
2.内网192.168.1.0网段用户需要上网使用公网接口地址。
3.内网用户需要使用公网地址访问内网的web服务器及ftp服务器。
拓补如图所示:
实验步骤
1.第一步是很重要的一步,搭建拓补,把信息好好地写在机子旁边,方便后续做实验。
2.设备重命名,该配的地址都配好,该配的路由都配好。
初步配置如下:
[H3C]sysname web
[web]int g0/0
[web-GigabitEthernet0/0]ip address 192.168.1.100 255.255.255.0
[web-GigabitEthernet0/0]qu
[web]ip route-static 0.0.0.0 0 192.168.1.1
[web]
-------web配置ip地址和默认路由(后续交换机采用三层模式,所以这里要配)
[sw]
[sw]interface Vlan-interface1
[sw-Vlan-interface1] ip address 192.168.1.1 255.255.255.0
[sw-Vlan-interface1]qu
[sw]interface GigabitEthernet1/0/3
[sw-GigabitEthernet1/0/3] port link-mode route//开启三层交换
[sw-GigabitEthernet1/0/3]ip address 172.16.200.1 255.255.255.252
[sw-GigabitEthernet1/0/3]qu
[sw]ip route-static 0.0.0.0 0 172.16.200.2
[sw]
------配置web和pc的网关,并配置路由
[rt]interface GigabitEthernet0/0
[rt-GigabitEthernet0/0]ip address 172.16.200.2 255.255.255.252
[rt-GigabitEthernet0/0]interface GigabitEthernet0/1
[rt-GigabitEthernet0/1]ip address 172.16.1.1 255.255.255.0
[rt-GigabitEthernet0/1]interface GigabitEthernet0/2
[rt-GigabitEthernet0/2] ip address 202.1.100.25 255.255.255.0
[rt-GigabitEthernet0/2]qu
[rt] ip route-static 192.168.1.0 24 172.16.200.1
[rt]
-----同样基础配置该配的配好
<FTP>sys
System View: return to User View with Ctrl+Z.
[FTP]interface GigabitEthernet0/0
[FTP-GigabitEthernet0/0]ip address 172.16.1.100 255.255.255.0
[FTP-GigabitEthernet0/0]qu
[FTP] ip route-static 0.0.0.0 0 172.16.1.1
[FTP]
[Internet]interface GigabitEthernet0/0
[Internet-GigabitEthernet0/0]ip address 202.1.100.1 255.255.255.0
[Internet-GigabitEthernet0/0]
----此时测试pc ping web和ftp服务器都是通的。当然ping不通internet的,要做nat转换。
现在就让拓补全连通吧!
做第二个要求:
内网192.168.1.0网段用户需要上网使用公网接口地址。
这里采用easy ip模式。
先简单学习easy ip怎么配,一般就是在公网的出接口配置acl感兴趣流,允许它通过,再一个outbound就结束了。来看看吧!
[rt]acl basic 2000
[rt-acl-ipv4-basic-2000]rule 0 permit source 192.168.1.0 0.0.0.255
[rt-acl-ipv4-basic-2000]interface GigabitEthernet0/2
[rt-GigabitEthernet0/2]nat outbound 2000
[rt-GigabitEthernet0/2]
看,pc可以访问外网了。当然外网不能随意访问内网的!外网是ping不通内网的现在。
<H3C>ping 202.1.100.1
Ping 202.1.100.1 (202.1.100.1): 56 data bytes, press CTRL_C to break
56 bytes from 202.1.100.1: icmp_seq=0 ttl=253 time=1.031 ms
56 bytes from 202.1.100.1: icmp_seq=1 ttl=253 time=0.950 ms
56 bytes from 202.1.100.1: icmp_seq=2 ttl=253 time=1.195 ms
56 bytes from 202.1.100.1: icmp_seq=3 ttl=253 time=1.069 ms
56 bytes from 202.1.100.1: icmp_seq=4 ttl=253 time=1.016 ms
--- Ping statistics for 202.1.100.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.950/1.052/1.195/0.081 ms
还没完,看一下包的转换再进行下一步吧!
<rt>t m
The current terminal is enabled to display logs.
<rt>t d
The current terminal is enabled to display debugging logs.
<rt>de
<rt>debugging nat p
<rt>debugging nat packet
<rt>
然后pc再ping一下外网
获取包
<rt>*Aug 15 21:46:13:063 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/2-out-config) Protocol: ICMP
192.168.1.10: 172 - 202.1.100.1: 2048(VPN: 0) ------>
202.1.100.25: 2 - 202.1.100.1: 2048(VPN: 0)
*Aug 15 21:46:13:063 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/2-in-session) Protocol: ICMP
202.1.100.1: 2 - 202.1.100.25: 0(VPN: 0) ------>
202.1.100.1: 172 - 192.168.1.10: 0(VPN: 0)
看不懂就gtp!
gtp说:它记录了ICMP(Internet Control Message Protocol,互联网控制消息协议)数据包在网络接口GigabitEthernet0/2上的进出情况。
前面其实就是说源地址从192.168.1.10转换成了202.1.100.25,目的地址没变,还是202.1.100.1
然后回包,源地址没变还是202.1.100.25,目的地址进行了转换,从202.1.100.25变成了192.168.1.10
再想想easy ip
Easy IP也称为基于接口的地址转换。在地址转换时对数据包的IP地址、协议类型、传输层端口号同时转换。但Easy IP直接使用相应公网接口IP地址作为转换后的源地址。由于不必事先配置公网地址池,Easy IP适用于动态获得公网地址的场合。
好了到这里我们学会了easy ip 的配置方法。真是可喜可贺,可喜可贺。。。
进行下一步吧!
来实现这个!
内网用户需要使用公网地址访问内网的web服务器及ftp服务器。
这里需要思考,同网段内网PC使用公网地址访问内部服务器 与 不同网段内网PC使用公网地址访问内部服务器怎么配
简单说一下吧。
前者:配置将内网服务器(IP地址)映射到公网接口,端口和ip映射,然后在靠近服务器的那边接口配置NAT Hairpin
后者:配置将内网服务器(IP地址)映射到公网接口,端口和ip映射。在靠近服务器的一侧配置NAT Hairpin,在内网访问的那一段网址的接口上也需要配置NAT Hairpin。就是下面实验中的g0/0与g0/1都需要进行配置。
来敲命令吧!
首先别忘记把服务开起来!
[web]telnet server enable
[web]line vty 0 63
[web-line-vty0-63] authentication-mode none
[rt]int g0/2
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.25 9890 inside 1
92.168.1.100 23
[rt-GigabitEthernet0/2]qu
[rt]int g0/0
[rt-GigabitEthernet0/0]nat hairpin enable
[rt-GigabitEthernet0/2]dis this
#
interface GigabitEthernet0/2
port link-mode route
combo enable copper
ip address 202.1.100.25 255.255.255.0
nat outbound 2000
nat server protocol tcp global 202.1.100.25 9890 inside 192.168.1.100 23
#
return
看一下pc能不能远程登录!
<H3C>telnet 202.1.100.25 9890
Trying 202.1.100.25 ...
Press CTRL+K to abort
Connected to 202.1.100.25 ...
******************************************************************************
* Copyright (c) 2004-2021 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
<web>
--------------同网段内网PC使用公网地址访问内部服务器做好了------------------
老样子,开服务
[FTP]telnet server enable
[FTP]line vty 0 63
[FTP-line-vty0-63] authentication-mode none
[FTP-line-vty0-63]
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.25 4433 inside 1
72.16.1.100 23
[rt-GigabitEthernet0/2]
[rt]int g0/1
[rt-GigabitEthernet0/1]nat hairpin enable
测试!
<H3C>telnet 202.1.100.25 4433
Trying 202.1.100.25 ...
Press CTRL+K to abort
Connected to 202.1.100.25 ...
******************************************************************************
* Copyright (c) 2004-2021 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
<FTP>
-------------不同网段内网PC使用公网地址访问内部服务器做好了-----------------
看包转换过程。
<H3C>telnet 202.1.100.25 9890
<rt>*Aug 15 22:26:23:658 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/2-out-config) Protocol: TCP
192.168.1.10:17094 - 202.1.100.25: 9890(VPN: 0) ------>
202.1.100.25: 1029 - 202.1.100.25: 9890(VPN: 0)---源转换
*Aug 15 22:26:23:658 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/0-in-config) Protocol: TCP
202.1.100.25: 1029 - 202.1.100.25: 9890(VPN: 0) ------>
202.1.100.25: 1029 - 192.168.1.100: 23(VPN: 0)--目的转换
*Aug 15 22:26:23:659 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/0-in-session) Protocol: TCP
192.168.1.100: 23 - 202.1.100.25: 1029(VPN: 0) ------>
202.1.100.25: 9890 - 202.1.100.25: 1029(VPN: 0)
*Aug 15 22:26:23:659 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/0-out-session) Protocol: TCP
202.1.100.25: 9890 - 202.1.100.25: 1029(VPN: 0) ------>
202.1.100.25: 9890 - 192.168.1.10:17094(VPN: 0)
遇事不决喂gtp,其实就是前面源地址从192.168.1.10映射到202.1.100.25,目的地址没变;202.1.100.25: 1029 - 202.1.100.25: 9890然后202.1.100.25: 9890转变成192.168.1.100: 23(这里,不就是我们的目的吗?)
然后就回包呀。内网地址192.168.1.100的23端口响应来自公网地址202.1.100.25的1029端口的请求。映射为202.1.100.25: 9890 - 202.1.100.25: 1029,然后202.1.100.25: 1029其实是一开始192.168.1.10:17094映射为202.1.100.25: 1029,看看这样不是绕回来了。
提问!
nat server protocol tcp global 202.1.100.25 9890 (外部地址、端口)inside 192.168.1.100 23(内部的服务器)是什么映射?
NAT Server。内部服务器:将(外部地址、端口)映射到内部的服务器上,使外部网络可访问内部服务器
配置如下:
nat server protocol pro-type global global-addr [ global-port ] inside host-addr [ host-port ]
注:拨号接口Global使用当前接口IP地址:current-interface
再提问!
nat hairpin 是什么?
通过在内网侧接口上使能NAT hairpin功能,可以实现内网用户使用NAT地址访问内网服务器或内网其它用户。NAT hairpin功能需要与内部服务器(nat server)、出方向动态地址转换(nat outbound)或出方向静态地址转换(nat static outbound)配合工作,且这些配置所在的接口必须在同一个接口板,否则NAT hairpin功能无法正常工作。
该功能在不同工作方式下的具体转换过程如下:NAT在内网接口上同时转换访问内网服务器的报文的源和目的IP地址,其中,目的IP地址转换通过匹配某外网接口上的内部服务器配置来完成—nat server protocol tcp global 202.1.100.25 9890 (外部地址、端口)inside 192.168.1.100 23(内部的服务器)----,源地址转换通过匹配内部服务器所在接口上的出方向动态地址转换–outbound 2000—或出方向静态地址转换来完成。
看下一个包吧
<H3C>telnet 202.1.100.25 4433
<rt>*Aug 15 22:52:25:704 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/2-out-config) Protocol: TCP
192.168.1.10:17097 - 202.1.100.25: 4433(VPN: 0) ------>
202.1.100.25: 1032 - 202.1.100.25: 4433(VPN: 0)
*Aug 15 22:52:25:704 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/0-in-config) Protocol: TCP
202.1.100.25: 1032 - 202.1.100.25: 4433(VPN: 0) ------>
202.1.100.25: 1032 - 172.16.1.100: 23(VPN: 0)
*Aug 15 22:52:25:704 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/1-in-session) Protocol: TCP
172.16.1.100: 23 - 202.1.100.25: 1032(VPN: 0) ------>
202.1.100.25: 4433 - 202.1.100.25: 1032(VPN: 0)
*Aug 15 22:52:25:704 2024 rt NAT/7/COMMON:
PACKET: (GigabitEthernet0/0-out-session) Protocol: TCP
202.1.100.25: 4433 - 202.1.100.25: 1032(VPN: 0) ------>
202.1.100.25: 4433 - 192.168.1.10:17097(VPN: 0)
这里就不再做包的解释了。
还剩最后一个任务。
用户内网有2台服务器使用202.1.100.26这个公网地址对外提供web和ftp服务。
[rt]interface GigabitEthernet0/2
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.26 21 inside 172
.16.1.100 21
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.26 80 inside 192
.168.1.100 80
[rt-GigabitEthernet0/2]
-----------------结束了。
再加一步吧,看看外网能不能远程登录内部服务器
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.27 23 inside 172
.16.1.100 23
[rt-GigabitEthernet0/2]nat server protocol tcp global 202.1.100.27 1010 inside 1
92.168.1.100 23
结果:
<Internet>telnet 202.1.100.27 23
Trying 202.1.100.27 ...
Press CTRL+K to abort
Connected to 202.1.100.27 ...
******************************************************************************
* Copyright (c) 2004-2021 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
<FTP>
<Internet>telnet 202.1.100.27 1010
Trying 202.1.100.27 ...
Press CTRL+K to abort
Connected to 202.1.100.27 ...
******************************************************************************
* Copyright (c) 2004-2021 New H3C Technologies Co., Ltd. All rights reserved.*
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
******************************************************************************
<web>
结语
哪里说的不对,请指正。关于nat的几种模式,之后再总结吧~