经常有学生问,一个企业的基本配置一般会有哪些?能不能给一个配置模板什么的?
如果是家用网络,边界光猫或者路由器上的配置基本上是一样的,无非填写用户名密码,选择拨号,然后开启DHCP,开启WIFI就OK了。
但是企业网,边界路由器的配置还真不是完全一样的!
因为每个企业的架构不同,比如有没有防火墙?防火墙是什么模式?有没有三层交换机?内网网关在哪?是否有冗余网关?等等。
NAT是上网必用技术之一
NAT的主要功能是可以在内网配置私有地址,然后在边界设备上统一转换为公有地址再访问互联网,这样就不需要为内网的每个终端配置公有地址了,不但节约了地址,而且节约了费用。
IPv4的地址总数才接近43亿个,然而现在全球有多少人口需要上网?有多少设备需要联网?
所以其实这个地址数量是远远不够的,如果不是NAT,IPv4也早就耗光了,但是也说不定IPv6应用的就更快了?
其实和我们学习一样,很多时候能力是逼出来的,自己都不知道自己的潜力到底有多大。
所以,NAT有优点也有缺点:
从应用的角度来说,NAT的基本应用场景主要有下面3个:
1对1转换:即有一个私有地址,就对应一个公有地址,这样根本不节约地址,有什么用呢?主要实现端口的静态映射。
多对多转换:即有很多的私有地址,对应很多的公有地址,谁先来谁先转换,用完为止。
多对1转换:这也是最常见的配置,即有很多的私有地址,只有一个公有地址,比如家庭、一般的小型公司,基本都是这样的配置。(有时候ISP送了多个公有地址,所以也可以配置多个多对1的组合)。
下面通过实例帮助大家更好的理解。
— 实验1 —
思科静态NAT配置(1:1)
路由器和终端的地址请自行配置
a.内网边界的静态默认路由:
代码语言:javascript复制R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
b.互联网端的公有地址静态路由:
代码语言:javascript复制ISP(config)#ip route 58.211.1.1 255.255.255.255 12.1.1.1
ISP(config)#ip route 58.211.1.2 255.255.255.255 12.1.1.1
c.在没有实施NAT之前,内网是无法访问外网的:
d.静态NAT:
代码语言:javascript复制R1(config)#ip nat inside source static 192.168.1.1 58.211.1.1
R1(config)#ip nat inside source static 192.168.1.2 58.211.1.2
就像静态路由一样,有多少终端,就要写多少条。
代码语言:javascript复制R1(config)#inter g0/1
R1(config-if)#ip nat inside #转换的内部接口
R1(config-if)#
R1(config-if)#inter g0/0
R1(config-if)#ip nat outside #转换的外部接口
e.测试内网访问外网:
— 实验2 —
思科动态NAT配置(M:N)
a.内网边界的静态默认路由:
代码语言:javascript复制R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
b.互联网端的公有地址静态路由:
代码语言:javascript复制ISP(config)#ip route 58.211.1.0 255.255.255.0 12.1.1.1
代码语言:javascript复制c.动态NAT:
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #定义允许转换的私有地址
R1(config)#access-list 1 permit 192.168.2.0 0.0.0.255
R1(config)#ip nat pool ccna 58.211.1.1 58.211.1.254 netmask 255.255.255.0 #定义公有地址池的范围
R1(config)#ip nat inside source list 1 pool ccna #把list 1中定义的私有地址转换为 pool ccna中定义的公有地址
R1(config)#inter range g0/1-2
R1(config-if-range)#ip nat inside
R1(config-if-range)#inter g0/0
R1(config-if)#ip nat outside
终端测试略。
— 实验3 —
NAT超载M:1 静态端口映射
PAT超载的含义是只有一个公有地址,这个公有地址显然是在边界路由器的出口下的,即R1的G0/0接口地址,而大部分情况下,这个地址应该是拨号获取的,不是静态配置的地址。
所以本实验要求内网所有终端使用G0/0的地址访问互联网,并且要实现从外网可以访问内网服务器的HTTP资源。因为这些内网使用共同的公有地址,无法区分,所以需要使用第四层的端口号加以区分。
内网边界的静态默认路由:
代码语言:javascript复制R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
R1(config)#access-list 1 per 192.168.1.0 0.0.0.255
R1(config)#access-list 1 per 192.168.2.0 0.0.0.255
R1(config)#ip nat inside source list 1 interface g0/0 overload
公有地址池直接写接口名称就可以了,overload代表超载,多对1转换
代码语言:javascript复制R1(config)#inter range g0/1-2
R1(config-if-range)#ip nat inside
R1(config-if-range)#inter g0/0
R1(config-if)#ip nat outside
此时内网可以访问外网。但是外网无法访问内网服务器的HTTP资源。
配置端口映射,使得外网可以访问内网的某些资源。
代码语言:javascript复制R1(config)#ip nat inside source static tcp 192.168.2.1 80 12.1.1.1 80
配置其他端口映射,如HTTPS是443端口,FTP是20和21端口,这些PT都支持测试。
代码语言:javascript复制R1(config)#ip nat inside source static tcp 192.168.2.1 443 12.1.1.1 443
R1(config)#ip nat inside source static tcp 192.168.2.1 20 12.1.1.1 20
R1(config)#ip nat inside source static tcp 192.168.2.1 21 12.1.1.1 21
---END---