(以下所有内容为本手纯手打,有纰漏的地方,也请大家多多包含可发小猪消息赐教交流!)
(本文所有内容及批注呈内收递归的架构显示,因格式显示不懂之处望谅解!)
(本文手打之,命令关键字大多使用简写,如有不明最好是键入命令时惯用tab补全!)
网络地址转转nat(static静态转换/dynamic动态转换)、端口多路复用pat:
1、静态nat的配置:
router(config)#int f0/0
router(config-if)#ip add 10.0.0.1 255.255.255.0 (设置外部端口的ip地址)
router(config)#int f1/0
router(config-if)#ip add 192.168.1.1 255.255.255.0 (设置内部端口的ip地址)
router(config)#ip nat inside source static local-ip global-ip [extendable]
(这里是将内部局部地址静态转换为内部全局地址,extendable为可选项,表示支持多个global-ip)
(inside表示对从inside口进入的流量源地址进行静态转换,static为静态,例如配置:)
router(config)#ip nat in so stat 192.168.1.10 10.0.0.2
router(config)#ip nat in so stat 192.168.1.100 10.0.0.3 extendable
router(config)#ip nat in so stat 192.168.1.100 10.0.0.4 extendable
(这里配置static-nat,可以发现,并没有减少global-ip的使用!!!)
router(config)#int f0/0
router(config-if)#ip nat oustside
router(config-if)#int f1/0
router(config-if)#ip nat inside (在内部或外部端口启用NAT)
router(config)#ip route 0.0.0.0 0.0.0.0 gateway-ip (配置默认路由网关ip)
(以上为静态nat配置地址转换全部完毕)
2、nat的端口映射:
router(config)#ip nat in so stat protocol local-ip udp/tcp-port global-ip port [extendable]
(以上为将内部某服务器端口号转化为全局地址端口号使用,主要用来发布内部服务器:web)
router(config)#ip nat in so stat tcp 192.168.1.10 80 10.0.0.2 8080 extendable
router(config)#ip nat in so stat tcp 192.168.1.100 25 10.0.0.2 25 extendable
(这里还可以把内部不同服务器的不同服务端口映射到同一个ip上的不同端口上)
3、动态nat的配置:
router(config)#int f0/0
router(config-if)#ip add 10.0.0.1 255.255.255.0 (设置外部端口ip)
router(config-if)#int f1/0
router(config-if)#ip add 192.168.1.1 255.255.255.0 (设置内部端口ip)
router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
(这里是定义内部网络中允许访问外网的acl)
router(config)#ip nat pool pool-name start-ip end-ip {netmask netmask |prefix-length prefix-length } [type rotary] (定义合法ip地址池,用来地址转换的global-ip)
(pool-name:合法地址池的名称 start-ip/end-ip:地址池内起始和终止ip,表示范围
netmask :子网掩码,用十进制表示如24位子网掩码表示为netmask 255.255.255.0
prefix-length :子网掩码用位数表示,如prefix-length 24,即表示24位的子网掩码
type rotary :可选项,表示地址池ip为循环使用)
(这里合法地址池可同时定义多个,来供给不同需求调配使用,举例如下:)
router(config)#ip nat pool test1 10.0.0.10 10.0.0.20 netmask 255.255.255.0
router(config)#ip nat pool test2 20.0.0.10 20.0.0.20 prefix-length 24
router(config)#ip nat inside source list acl-name pool pool-name [overload] (实现网络地址转换)
(这里 voerload为扩展可选项,表示地址复用,用于pat,单纯的动态nat并不配置此项)
router(config)#ip nat in so list 1 pool test1
router(config)#ip nat in so list 1 pool test2
(这里可以同时为一个acl调配多个pool,用来扩大可转换的地址范围)
router(config)#int f0/0
router(config-if)#ip nat outside
router(config-if)#int f1/0
router(config-if)#ip nat inside (在内部和外部端口启用nat)
router(config)#ip route 0.0.0.0 0.0.0.0 gateway-ip
(配置默认路由,保证数据包正常选路路由,这里gateway通过isp下发配置)
4、配置pat端口多路复用地址转换:
pat和动态nat的区别:都是动态地址转换,配置上基本一样
pat启用voerload地址复用选项,而动态nat没有,但可以通过此选项变换成pat
pat一般用于只有一个或可分配合法ip比较少的情况下用一个合法ip完成地址转换效果
动态nat虽然可以动态转换并可循环使用合法ip,但依然是一对一地址转换
pat是通过允许对tcp/udp连接会话端口进行地址转换,成为端口多路复用!!!
配置如下(直接举例):
router(config)#int f0/0
router(config-if)#ip add 10.0.0.1 255.255.255.0 (设置外部端口ip)
router(config-if)#int f1/0
router(config-if)#ip add 192.168.1.1 255.255.255.0 (设置内部端口ip)
router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 (定义acl)
router(config)#ip nat pool onlyone 10.0.0.10 10.0.0.10 prefix-length 24 (定义合法地址池)
(这里start-ip/end-ip一样则表示只有一个合法ip可使用,动态nat中同理)
(值得注意:这里只有一个合法ip不能配成外部端口ip地址,如果只有一个外部端口合法ip可以使用,请详细看5配置,复用路由器外部接口地址转换)
router(config)#ip nat in so list 1 pool onlyone overload (配置端口多路复用地址转换)
router(config)#int f0/0
router(config-if)#ip nat outside
router(config-if)#int f1/0
router(config-if)#ip nat inside (在内部和外部端口启用nat)
router(config)#ip route 0.0.0.0 0.0.0.0 gateway-ip
(配置默认路由,保证数据包正常选路路由,这里gateway通过isp下发配置)
5、复用路由器外部接口地址转换(pat):
(使用于:公司内部只有一个合法ip,则必须用于外部端口,这种情况下应配置如下:)
router(config)#int f0/0
router(config-if)#ip add 10.0.0.1 255.255.255.0 (设置外部端口ip)
router(config-if)#int f1/0
router(config-if)#ip add 192.168.1.1 255.255.255.0 (设置内部端口ip)
router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 (定义acl)
(由于地址转换是直接应用外部接口地址,所以此处不必定义合法地址池!!!)
router(config)#ip nat in so list 1 int f0/0 voerload (配置复用路由器外部端口地址转换)
router(config)#int f0/0
router(config-if)#ip nat outside
router(config-if)#int f1/0
router(config-if)#ip nat inside (在内部和外部端口启用nat)
router(config)#ip route 0.0.0.0 0.0.0.0 gateway-ip
(配置默认路由,保证数据包正常选路路由,这里gateway通过isp下发配置)
6、验证nat配置及相关优化:
router#sh run(这里是可以看到nat配置信息及端口启用nat情况)
router#sh ip nat translations 【verbose】 (查看nat的转换条目,verbose可查看详细条目)
router#sh ip nat statistics (产看nat的统计信息)
router(config)#ip nat translation {dns-timeout | icmp-timeout | tcp-timeout | udp-timeout | finrst-timeout | syn-timeout } { seconds | never}
(此配置为用户修改超时的默认值,可针对不同的协议进行配置!)
(如ip nat translation icmp-timeout 120 表示icmp协议转换nat超时为120s)
(当设备中存在大量的nat转换条目事,会占用大量的内存和cpu资源,可以使用以下配置优化 :)
router#clear ip nat translation * (清空所有动态地址转换条目,*表示任意值)
router#clear ip nat translation inside local-ip global-ip
router#clear ip nat translation outside local-ip global-ip
(清空包含一个内部地址转换/外部地址转换的简单条目,一般用来清空静态nat使用)
(常见nat故障处理简单思路:)
(一般两种原因:配置错误或是没有正确理解nat的工作方式!)
1、是否设置了acl访问控制阻塞了内部地址转换,或是没有配置允许acl通过地址转换的流量
2、定义nat的acl是是否遗漏需要允许地址转换的ip地址条目
3、如果是配置的pat,是否遗漏了voerload关键命令,从而没有启用端口多路复用地址转换
4、是否正确使用nat命令,启动nat配置inside和outside接口错误,形成不对称路由或是直接错误
5、nat地址池和静态nat表项中是否有重复使用的合法ip,否则会导致nat间断性失败!
(以上如有故障,还可以通过:debug ip nat 来动态跟踪nat地址转换操作!!!)
(以上为cisco-router的地址转换全部基本配置,到此完毕!下期小猪将给大家整理 Cisco-sw-router-acl访问控制列表策略基础配置,敬请关注!)