NAT转换、VLAN与Trunk(特典:ACL初步)

时间:2022-01-14 20:43:37

一、NAT(网络地址转换)

即公有地址转换为私有地址

私有地址段(非公网地址,即公网不识别)

A       10.0.0.0            10.255.255.255

B       172.16.0.0        172.31.255.255

C       192.168.0.0     192.168.255.255

NAT转换的方式:

一对一转换(静态NAT):即IP对IP(用于服务器挂载公网)

多对一转换(动态NAT):即IP集群对公网的接口(用于用户宽带上网)

NAT基本语法:

ip      nat      inside(内网)     source(源)    源的方式        指向外网的方式(接口或IP)

源的方式一般有两个:ACL列表和static静态IP地址

静态NAT指向外网的方式一般是IP

动态NAT指向外网的方式一般是接口

做NAT转换的一般步骤(思路):

针对静态NAT:     ip nat inside source static 内网地址 外网地址

进入处于外网的接口:ip nat outside

进入处于内网的借口:ip nat inside

针对动态NAT:     access-list 10 permit IP地址(创建一条允许访问的ACL记录)

ip nat inside source list 10 int f0/1(指向所处外网的接口)

进入处于外网的接口:ip nat outside

进入处于内网的接口:ip nat inside

情景实例:

NAT转换、VLAN与Trunk(特典:ACL初步)

要求:PC能够访问服务器上的网页(服务器已开启HTTP服务)

详细配置:

1.      配置计算机和服务器的IP地址

2.      路由器各个接口配上要求的IP地址(代码不做展示)

3.      R2路由器做静态NAT

ip nat inside source static 10.1.1.2 111.1.1.2

int f0/0(外网接口)

ip nat outside

int f0/1(内网接口)

ip nat inside

4.      R1路由器做动态NAT

access-list 10 permit 10.1.1.1

access-list 10 permit 10.1.1.2

ip nat inside source list 10 int f0/1

int f0/0(内网接口)

ip nat inside

int f0/1(外网接口)

ip nat outside

验证:PC访问111.1.1.2即可(因为做静态NAT时服务器的内网IP转换到了公网的指定IP)

二、VLAN与Trunk

VLAN(虚拟局域网):

即由交换机组成一个网络,默认情况下交换机的所有接口都在一个VLAN中(即VLAN1)

将交换机的接口从原来的VLAN1迁移到其他VLAN内,称作VLAN的划分

当终端设备连接不同VLAN时,相当于网络被逻辑层面分割

查看VLAN表:show vlan brief

创建VLAN:vlan XX(XX代表VLAN号)

将接口划入相应的VLAN:

进入端口后:switchport mode access

Switchport access vlan xx

Trunk(中继):

即允许多个VLAN经过交换机的接口,其直接目的是为了使交换机做级联

情景实例:

下面我们就通过这个实验拓扑来直观的讲下VLAN和trunk

(一张图搞懂VLAN和Trunk)

NAT转换、VLAN与Trunk(特典:ACL初步)

如图所示:

PC0一直到PC7共八台主机,其中PC0到PC3四台主机连到了交换机SW1中,其余四台连到了交换机SW2中,八台主机都设置好了IP地址,且保证在一个网段里。

由于我们对交换机未作任何设置,并且八台主机都在一个网段,那么我们可以保证八台主机是可以相互通信的(VLAN1)

实验一:按照拓扑右上角的信息将每台主机划分到相应的VLAN中

首先对SW1进行设置:

(首先创建VLAN)

vlan 10

vlan 20

进入主机联入交换机的相应接口,做如下设置:

int f0/1;int f0/2;int f0/3;int f0/4  //(或者用简便指令:int range f0/1-4)

switchport mode access

switchport access vlan 10;switchport access vlan 20

交换机SW2的指令和SW1几乎一致!

完成实验一后,我们发现:

SW1中连接的PC0和PC1;PC2和PC3能互相通信(SW2也一样)

但PC0,PC1却不能与PC2,PC3互相通信

虚拟局域网(VLAN)起到了作用,效果拔群!

同时我们发现SW1下的VLAN10,VLAN20还是不能与SW2下的VLAN10,VLAN20进行通信

那么我怎么样才能使之相互通信呢?

这就要用到Trunk中继技术了

实验二:SW1与SW2设置级联

SW1和SW2用交叉线连接(其实现在的技术不在乎用直通线或交叉线了,因为现在的网卡都自带了自适应的功能),然后每台交换机进入级联接口输入以下指令:

switchport mode trunk

完成实验二后,我们发现:

SW1中的VLAN10能和SW2中的VLAN10进行通信(VLAN20同理)

Trunk起到了作用,效果依旧拔群!(笑)

特典:ACL简介(2018-12-20修改版)

ACL访问控制列表的主要功能是匹配感兴趣的数据流(主要是针对IP地址)和匹配路由信息(IP),其类型有两种:标准和扩展(访问列表所对应的序号分别为1~99及100~199),两种ACL的访问动作都为deny和permit(拒绝和允许)。

ACL在默认的情况下,其内容都属于“白名单”模式,即默认所有的ACL表最后的语句都自带了deny all语句。

标准语法:

1.      access-list        (标准ACL)

命令格式:     access-list  访问控制列表序号  访问动作  {source [通配符掩码] | any}

其中:     控制列表序号为1~99(标准ACL)

访问动作:permit和deny

source指明了该条控制列表规则应用的源IP地址

通配符源码:即反掩码(以后另开一篇文章好好讲下)

如果在末尾加上参数any,说明此时所有的地址都是匹配这条ACL的

2.  access-list        (扩展ACL)

命令格式:     access-list  访问控制列表序号  访问动作  所使用的协议  {source [通配符掩码] destination [通配符掩码] | any}  eq  端口号(或服务名)

其中:     控制列表序号为100~199(扩展ACL)

访问动作:permit和deny

           所使用的协议:如TCP、UDP、IP、ICMP等

source指明了该条控制列表规则应用的源IP地址

destination指明了该条控制列表规则应用的目标IP地址

3.  ip access-group

命令格式:ip access-group 控制列表序号  针对流量点

其中:     控制列表序号是之前创建的,我们进入接口后要进行调用

针对流量点有两个:in和out(即入口和出口)

下面,我们通过几个实例来简单介绍下ACL的应用:

实例:

1.      创建并配置访问控制列表,80,拒绝来自IP地址12.1.1.1的数据(标准ACL):

  access-list  80  deny  12.1.1.1  //创建标准访问控制列表1,设定拒绝IP地址12.1.1.1的数据

  access-list  80  permit  any    //允许所有的IP地址,因为路由器访问控制列表的最后默认隐含了deny any规则,不加上此条,则所有IP地址都会被拒绝

  int  f0/0        //进入接口从而调用访问控制列表

    ip  access-group  80  in    //在当前接口下调用访问控制列表1,针对从当前端口进入路由器的流量

2.      创建并配置访问控制列表107,要求如下(扩展ACL):

    允许IP地址1.1.1.2访问服务器2.2.2.1,但只能http访问,其他方式无效;

    拒绝IP地址1.1.1.3访问服务器2.2.2.1;

    允许其他所有流量的通过。

  access-list  107  permit  tcp  host  1.1.1.2  host  2.2.2.1  eq  80  

  //创建扩展访问控制列表107,设定允许1.1.1.2访问2.2.2.1,但限定http的流量(80端口是HTTP的服务端口,tcp是HTTP的应用服务)

  access-list  107  deny  ip  host  1.1.1.3  host  2.2.2.1

  //设定拒绝1.1.1.3访问2.2.2.1

  access-list  107  permit  ip  any  any

  //设定允许其他所有流量的通过

  int  f0/1    //进入接口从而调用访问控制列表

    ip  access-group  107  out  //在当前接口下调用访问控制列表107,针对从当前端口流出路由器的流量

3.      创建并配置访问控制列表105,拒绝来自主机12.1.1.1到23.1.1.3的telnet流量;并允许其他所有的流量通过。

  access-list  105  deny  tcp  host  12.1.1.1  host  23.1.1.3  eq  telnet

  //创建扩展访问控制列表105,设定拒绝12.1.1.1访问23.1.1.3,但仅限定telnet的流量(telnet的流量基于TCP协议)

  access-list  105  permit  ip  any  any

  //设定允许其他所有流量的通过

  int  f0/1    //进入接口从而调用访问控制列表

    ip  access-group  105  out  //在当前接口下调用访问控制列表105,针对从当前端口流出路由器的流量

小总结:ACL访问控制列表检索自上而下,在检索的过程中存在合适的条目则不再继续检索,若检索不出,默认执行deny any列表。因此在配置ACL访问控制列表时,无论基础和扩展,建立规则都要遵从先局部,后全局的思想进行!