Daily update. 2018-06-22 10:02:32

This commit is contained in:
gnu4cn
2018-06-22 10:02:32 +08:00
parent afbd1578da
commit 6bb14ddcc2

View File

@@ -11,7 +11,7 @@
- 阅读ICND1记诵指南
- 在[subnetting.org](http://www.subnetting.org)上花15分钟
和子网划分及VLSM一样访问控制清单access control lists, ACL对于新CCNA学员来说也是一大难点one of the bugbear subjects。有关ACL的问题包括学习相关的IOS配置命令、理解ACL规则包括隐式的deny all规则),以及掌握端口号及协议类型。
和子网划分及VLSM一样访问控制清单access control lists, ACL对于新CCNA学员来说也是一大难点one of the bugbear subjects。有关ACL的问题包括学习相关的IOS配置命令、理解ACL规则包括隐式的`deny all`规则),以及掌握端口号及协议类型。
与其它CCNA科目一样应该在学习过程中一次完成一个小部分在路由器上使用所见到的每个命令并完成许多实验。
@@ -52,9 +52,9 @@
- 扩展的编号ACLs
- 标准或扩展的命名ACLs
**标准的编号ACLs是可以应用到路由器上的最为基本的ACL形式**。它们是最易于配置的,因此其可用的过滤有着最大的限制。**它们仅能依据源IP地址或源网络进行过滤**。识别标准ACL的方法就是看配置行的前导数字标准ACLs的该数字为1到99
**标准的编号ACLs是可以应用到路由器上的最为基本的ACL形式**。它们是最易于配置的,因此其可用的过滤有着最大的限制。**它们仅能依据源IP地址或源网络进行过滤**。识别标准ACL的方法就是看配置行的前导数字标准ACLs的该数字为`1``99`
**扩展的编号ACLs可以有多得多的粒度, 但配置和故障排除起来会更难应付。**它们可以对某个目的或源IP地址或网络、某种协议类型以及某个端口号进行过滤they can filter a destination or source IP address or network, a protocol type, and a port number。可用于配置扩展ACLs的编号为100199(包含100199
**扩展的编号ACLs可以有多得多的粒度, 但配置和故障排除起来会更难应付。**它们可以对某个目的或源IP地址或网络、某种协议类型以及某个端口号进行过滤they can filter a destination or source IP address or network, a protocol type, and a port number。可用于配置扩展ACLs的编号为`100``199`(包含`100``199`)。
**命名ACLs允许给某过滤清单一个名称而不是编号**。这就令到在路由器配置中更易于区别这些ACLs了。命名ACLs可以是标准及扩展ACLs; 在该ACLs的初始化配置行处可以选择其作为标准ACL还是扩展ACL。
@@ -70,15 +70,15 @@
<table>
<tr><th>端口</th><th>服务</th><th>端口</th><th>服务</th></tr>
<tr><td>20</td><td>FTP数据</td><td>80</td><td>HTTP</td></tr>
<tr><td>21</td><td>FTP控制</td><td>110</td><td>POP3</td></tr>
<tr><td>22</td><td>SSH</td><td>119</td><td>NNTP</td></tr>
<tr><td>23</td><td>Telnet</td><td>123</td><td>NTP</td></tr>
<tr><td>25</td><td>SMTP</td><td>161/162</td><td>SNMP</td></tr>
<tr><td>53</td><td>DNS</td><td>443</td><td>HTTPS(带有SSL的HTTP)</td></tr>
<tr><td>69</td><td>TFTP</td><td></td><td></td></tr>
<tr><td>`20`</td><td>FTP数据</td><td>`80`</td><td>HTTP</td></tr>
<tr><td>`21`</td><td>FTP控制</td><td>`110`</td><td>POP3</td></tr>
<tr><td>`22`</td><td>SSH</td><td>`119`</td><td>NNTP</td></tr>
<tr><td>`23`</td><td>Telnet</td><td>`123`</td><td>NTP</td></tr>
<tr><td>`25`</td><td>SMTP</td><td>`161/162`</td><td>SNMP</td></tr>
<tr><td>`53`</td><td>DNS</td><td>`443`</td><td>HTTPS(带有SSL的HTTP)</td></tr>
<tr><td>`69`</td><td>TFTP</td><td></td><td></td></tr>
</table>
## 访问控制清单规则Access Control List Rules
这是最难掌握的部分之一。我从没有在哪本思科手册中见到里面曾写过一条完整的规则清单。仅有一些手册对其简单概过或是稍加解释另外一些则完全不讲。难点就在于这些规则一直都在用但到目前为止你都是通过试误法发现的它们the difficulty is that the rules always apply but unitil now, you found them only by trial and error。下面就是你需要知道的这些规则了。
@@ -97,14 +97,14 @@
**the lines are processed top-down**
某些工程师在他们的ACL未如预期那样运行时感到迷惑。路由器会看看ACL的顶行在发现匹配后就会停在那里且不再对其它行进行检查了。为此需要将**最明确的(最小的)那些条目放在ACL的顶部**you need to put the most specific entries at the top of the ACL。比如在利用ACL来阻挡主机172.16.1.1时的做法。
某些工程师在他们的ACL未如预期那样运行时感到迷惑。路由器会看看ACL的顶行在发现匹配后就会停在那里且不再对其它行进行检查了。为此需要将**最明确的(最小的)那些条目放在ACL的顶部**you need to put the most specific entries at the top of the ACL。比如在利用ACL来阻挡主机`172.16.1.1`时的做法。
<table>
<tr><td>Permit 10.0.0.0</td><td></td><td>没有匹配的</td></tr>
<tr><td>Permit 192.168.1.1</td><td></td><td>没有匹配的</td></tr>
<tr><td>Permit 172.16.0.0</td><td></td><td>匹配了-放行</td></tr>
<tr><td>Permit 172.16.1.0</td><td></td><td>不会处理了</td></tr>
<tr><td>Deny 172.16.1.1</td><td></td><td>不会处理了</td></tr>
<tr><td>`Permit 10.0.0.0`</td><td></td><td>没有匹配的</td></tr>
<tr><td>`Permit 192.168.1.1`</td><td></td><td>没有匹配的</td></tr>
<tr><td>`Permit 172.16.0.0`</td><td>``</td><td>匹配了-放行</td></tr>
<tr><td>`Permit 172.16.1.0`</td><td></td><td>不会处理了</td></tr>
<tr><td>`Deny 172.16.1.1`</td><td></td><td>不会处理了</td></tr>
</table>
在本例中,应该将`Deny 172.16.1.1`这行放到顶部或至少应在语句statement`Permit 172.16.0.0`之前。
@@ -113,20 +113,20 @@
**There is an implicit "deny all" at the bottom of every ACL**
这条规则另很多工程师为难。在每条ACL的底部有着一条看不见的命令。该命令设置为拒绝尚未匹配的所有流量。而阻止此命令起作用的唯一方法就是在底部手动配置一条`permit all`命令。在取得来自IP地址172.20.1.1的某个进入的数据包时的做法。
这条规则另很多工程师为难。在每条ACL的底部有着一条看不见的命令。该命令设置为拒绝尚未匹配的所有流量。而阻止此命令起作用的唯一方法就是在底部手动配置一条`permit all`命令。在取得来自IP地址`172.20.1.1`的某个进入的数据包时的做法。
<table>
<tr><td>Permit 10.0.0.0</td><td>无匹配项</td></tr>
<tr><td>Permit 192.168.1.1</td><td>无匹配项</td></tr>
<tr><td>Permit 172.16.0.0</td><td>无匹配项</td></tr>
<tr><td>Permit 172.16.1.0</td><td>无匹配项</td></tr>
<tr><td>[Deny all]</td><td>匹配 -- 丢弃数据包</td></tr>
<tr><td>`Permit 10.0.0.0`</td><td>无匹配项</td></tr>
<tr><td>`Permit 192.168.1.1`</td><td>无匹配项</td></tr>
<tr><td>`Permit 172.16.0.0`</td><td>无匹配项</td></tr>
<tr><td>`Permit 172.16.1.0`</td><td>无匹配项</td></tr>
<tr><td>`[Deny all]`</td><td>匹配 -- 丢弃数据包</td></tr>
</table>
你实际上想要路由器放行该数据包,但却拒绝了。原因就在于那条隐式的deny all命令了,而该命令实际上是一种安全手段。
你实际上想要路由器放行该数据包,但却拒绝了。原因就在于那条隐式的`deny all`命令了,而该命令实际上是一种安全手段。
###ACL规则四 -- 路由器是不能过滤自己产生的流量的
**The router can't filter self-generated traffic.**
这在某个实际网络上于部署ACL前进行测试时会造成混乱。路由器不会过滤其自身产生的流量。在图9.2中有演示。
@@ -136,10 +136,10 @@
*图9.2 -- 对自身流量的ACL测试*
###ACL规则五 -- 不能对运行中的ACL进行编辑
**You can't edit a live ACL.**
实际上在IOS 12.4之前的版本中只能对命名ACL进行编辑, 而不能对标准ACL或扩展ACLs两种进行编辑。这曾是ACL架构的一个局限this was a limitation of ACL architecture。在IOS 12.4之前如想要编辑标准ACL或扩展ACL就必须按照以下步骤进行这里使用list 99作为例子
实际上,在`IOS 12.4`之前的版本中只能对命名ACL进行编辑, 而不能对标准ACL或扩展ACLs两种进行编辑。这曾是ACL架构的一个局限this was a limitation of ACL architecture。在`IOS 12.4`之前如想要编辑标准ACL或扩展ACL就必须按照以下步骤进行这里使用`list 99`作为例子)。
1. 使用命令`no ip access-group 99 in`在接口上停用ACL流量stop ACL traffic on the interface with the `no ip access-group 99 in` command
2. 将该条ACL复制粘贴到文本编辑器并在那里编辑好。
@@ -206,10 +206,10 @@ Router(config)#int FastEthernet0/0
Router(config-if)#ip access-group 1 in ← reapply to the interface
```
如使用的是Packet Tracer, 那么这些命可能不会工作。同时,请一定在某台路由器上尝试这些命令,因为它们是考试考点。**记住在编辑ACL前要先在接口上关闭它此时它就不再是活动的了以避免一些奇怪或是不可预期的行为发生**。而在IOS 12.4及以后的版本中如何来编辑ACLs会在后面演示。
如使用的是Packet Tracer, 那么这些命可能不会工作。同时,请一定在某台路由器上尝试这些命令,因为它们是考试考点。**记住在编辑ACL前要先在接口上关闭它此时它就不再是活动的了以避免一些奇怪或是不可预期的行为发生**。而在`IOS 12.4`及以后的版本中如何来编辑ACLs会在后面演示。
###ACL规则六 -- 在接口上关闭ACL
**Disable the ACL on the interface.**
在打算短时间对ACL进行测试或是撤销ACL时许多工程师都会将其完全删除掉。这是不必要的。如你要停止ACL运行只需简单地将其从所应用到的接口上移除即可。
@@ -229,15 +229,15 @@ Router(config-if)#^Z
![ACL的重用](images/0903.png)
*图9.3 -- ACL的重用*
###ACL规则八 -- ACL应保持简短
ACLs的基本规则就是保持简短且只专注于做一件事情。许多新手的思科工程师将其ACL延伸到数行那么长最后经深思熟虑后就可以紧缩到少数几行的配置。前面提到的将那些最为特定的最小的行放在ACL的顶部。这是好的做法从而可以节约路由器CPU的执行周期。
优良的ACL配置技能来自于知识和操练。
###ACL规则九 -- 尽可能将ACL放在接近源的地方
思科文档建议将扩展ACL尽量放在离源近的地方而将标准ACL尽量放在离目的近的地方因为这可以避免不必要的开销又能放行那些合法流量。
![将ACL尽量放在离源近的地方](images/0904.png)
@@ -247,55 +247,55 @@ ACLs的基本规则就是保持简短且只专注于做一件事情。许多新
>Farai 指出 -- “思科官方建议是扩展ACL尽量离源近而标准ACL尽量离目的近”。
##反掩码
**Wildcard Masks**
**因为在ACLs及某些路由协议的配置中反掩码是命令行的组成部分所有有必要学习反掩码**。之所有存在反掩码是因为需要有某种方式来告诉路由器我们要去匹配IP地址或网络地址的哪些部分。
匹配实在二进制层面完成的,却可以采用与子网掩码相同的表示法,来容易地配置反掩码。一个二进制1告诉路由器忽略对应的位,0则是要匹配的位。
匹配实在二进制层面完成的,却可以采用与子网掩码相同的表示法,来容易地配置反掩码。一个二进制`1`告诉路由器忽略对应的位,`0`则是要匹配的位。
CCNA考试中反掩码计算的一种简易方法就是把一个数与子网掩码相加确保它们的和为255。那么如果子网掩码的某个8位值为192时需要加上63才等于255。而如果子网掩码的某个8位值为255, 则需要加的就是0。看看下面的例子吧。
CCNA考试中反掩码计算的一种简易方法就是把一个数与子网掩码相加确保它们的和为`255`。那么如果子网掩码的某个`8`位值为`192`时,需要加上`63`才等于`255`。而如果子网掩码的某个`8`位值为`255`, 则需要加的就是`0`。看看下面的例子吧。
<table>
<tr><th>子网掩码</th><td>255</td><td>255</td><td>255</td><td>192</td></tr>
<tr><th>反掩码</th><td>0</td><td>0</td><td>0</td><td>63</td></tr>
<tr><th>相加之和</th><td>255</td><td>255</td><td>255</td><td>255</td></tr>
<tr><th>子网掩码</th><td>`255`</td><td>`255`</td><td>`255`</td><td>`192`</td></tr>
<tr><th>反掩码</th><td>`0`</td><td>`0`</td><td>`0`</td><td>`63`</td></tr>
<tr><th>相加之和</th><td>`255`</td><td>`255`</td><td>`255`</td><td>`255`</td></tr>
</table>
<table>
<tr><th>子网掩码</th><td>255</td><td>255</td><td>224</td><td>0</td></tr>
<tr><th>反掩码</th><td>0</td><td>0</td><td>31</td><td>255</td></tr>
<tr><th>相加之和</th><td>255</td><td>255</td><td>255</td><td>255</td></tr>
<tr><th>子网掩码</th><td>`255`</td><td>`255`</td><td>`224`</td><td>`0`</td></tr>
<tr><th>反掩码</th><td>`0`</td><td>`0`</td><td>`31`</td><td>`255`</td></tr>
<tr><th>相加之和</th><td>`255`</td><td>`255`</td><td>`255`</td><td>`255`</td></tr>
</table>
<table>
<tr><th>子网掩码</th><td>255</td><td>128</td><td>0</td><td>0</td></tr>
<tr><th>反掩码</th><td>0</td><td>127</td><td>255</td><td>255</td></tr>
<tr><th>相加之和</th><td>255</td><td>255</td><td>255</td><td>255</td></tr>
<tr><th>子网掩码</th><td>`255`</td><td>`128`</td><td>`0`</td><td>`0`</td></tr>
<tr><th>反掩码</th><td>`0`</td><td>`127`</td><td>`255`</td><td>`255`</td></tr>
<tr><th>相加之和</th><td>`255`</td><td>`255`</td><td>`255`</td><td>`255`</td></tr>
</table>
在想要ACL与匹配某个子网或是整个网络时就需要输入一个反掩码。比如要匹配172.20.1.0 255.255.224.0, 就需要输入下面的命令。
在想要ACL与匹配某个子网或是整个网络时就需要输入一个反掩码。比如要匹配`172.20.1.0 255.255.224.0`, 就需要输入下面的命令。
`Router(config)#access-list 1 permit 172.20.1.0 0.0.31.255`
而要匹配子网192.200.1.0 255.255.255.192, 就需要下面的命令。
而要匹配子网`192.200.1.0 255.255.255.192`, 就需要下面的命令。
`Router(config)#access-list 1 permit 192.200.1.0 0.0.0.63`
在OSPF中应用网络语句时也要当心(be careful when applying network statements with OSPF),那位那也要用到反掩码。
在有着一个仅有两位主机位的网络时也要当心因为需要输入一条ACL来匹配这些主机位。比如要匹配子网192.168.1.0 255.255.255.252, 或/30的话需要输入下面的命令。
在有着一个仅有两位主机位的网络时也要当心因为需要输入一条ACL来匹配这些主机位。比如要匹配子网`192.168.1.0 255.255.255.252`, 或`/30`的话,需要输入下面的命令。
`Router(config)#access-list 1 permit 192.168.1.0 0.0.0.3`
这里剔除了一些配置是为展示出对应的部分。上面的命令将匹配192.168.1.0网络上的1号和2号主机。而如果要匹配192.168.1.4/30网络上的5号和6号主机,则需输入下面的命令。
这里剔除了一些配置,是为展示出对应的部分。上面的命令将匹配`192.168.1.0`网络上的`1`号和`2`号主机。而如果要匹配`192.168.1.4/30`网络上的`5`号和`6`号主机,则需输入下面的命令。
`Router(config)#access-list 1 permit 192.168.1.4 0.0.0.3`
请阅读子网划分和VLSM部分的课文以更好地掌握此概念。
##访问控制清单的配置
**Configuring Access Control Lists**
熟能生巧对于任何技能都是适用的。如同前面提到的你应该在路由器上输入这里给出的每个例子完成尽可能多的实验并构建出自己的实例。在考试和现实世界中你都需要精准快速的设计ACL。
@@ -303,7 +303,7 @@ CCNA考试中反掩码计算的一种简易方法就是把一个数与子网
接下来的章节中出现的标准和扩展ACLs都是编号ACLs。它们是配置ACLs的经典方法。命名ACLs是配置ACLs的另一种方式将在其后的部分出现。
###标准ACLs
**Standard ACLs**
标准的编号ACLs是最易于配置的所以拿它来作为开端是最好的。**标准ACLs只能实现依据源网络或源IP地址的过滤**。
@@ -325,17 +325,19 @@ Router(config)#access-list 1 permit host 192.168.1.1
Router(config)#access-list 1 permit 10.1.0.0 0.0.255.255
```
此ACL应在服务器侧的路由器上应用。又记得在清单的底部有一条隐式的deny all,所以其它流量都会给阻止掉。
此ACL应在服务器侧的路由器上应用。又记得在清单的底部有一条隐式的`deny all`,所以其它流量都会给阻止掉。
###扩展ACLs
**Extended ACLs**
**扩展的编号ACLs中可以构建出细得多的粒度**。而正是由于有了细得多的粒度令到扩展的编号ACLs变得诡异起来。藉由扩展的编号ACLs可以对源或目的网络地址、端口、协议及服务进行过滤。
一般来说你可以看看扩展的ACLs配置语法就像下面这样。
`access list# permit/deny [service/protocol] [source network/IP] [destination network/IP] [port#]`
```
access list# permit/deny [service/protocol] [source network/IP] [destination network/IP] [port#]
```
比如下面这样。
@@ -483,7 +485,7 @@ Router(config-if)#ip access-group BlockWEB in
**ACL Sequence Numbers**
自12.4往后你会发现思科IOS给每个ACL条目添加了序号。那么现在就可以创建一条访问控制清单并在其后从它里面一处一行了。
`12.4`往后你会发现思科IOS给每个ACL条目添加了序号。那么现在就可以创建一条访问控制清单并在其后从它里面一处一行了。
```
Router(config)#ip access-list standard test
@@ -505,10 +507,10 @@ Standard IP access list test
注意到**在路由器运行配置中,序号并不会显示出来**。要查看它们,必须执行一个`show [ip] access-list`命令。
##加入一个ACL行
**Add an ACL Line**
**要加入一个新的ACL行只需简单地输入新的序号并接着输入该ACL语句**。下面的例子展示如何往现有的ACL中加入行15
**要加入一个新的ACL行只需简单地输入新的序号并接着输入该ACL语句**。下面的例子展示如何往现有的ACL中加入行`15`
```
Router#conf t
@@ -531,7 +533,7 @@ Router(config-std-nacl)#
**Remove an ACL Line**
要移除某个ACL行只需简单地敲入`no <seq_number>`命令即可,就如同下面的例子中行20被删除掉了。
要移除某个ACL行只需简单地敲入`no <seq_number>`命令即可,就如同下面的例子中行`20`被删除掉了。
```
Router#conf t
@@ -564,8 +566,8 @@ Standard IP access list test
Router(config-std-nacl)#
```
命令`resequence`则会创建新的序号自100开始每个新行增加20。译者注在更新的IOS版本中此命令可指定开始序号及步进序号。
命令`resequence`则会创建新的序号,自`100`开始,每个新行增加`20`。译者注在更新的IOS版本中此命令可指定开始序号及步进序号。
###ACL日志
**ACL Logging**
@@ -609,10 +611,12 @@ Extended IP access list test
这时当有该特定ACL条目匹配时路由器就会生成一条更为详细的日志消息当中包含了进入的接口以及源MAC地址。
`%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(14013) (FastEthernet0/0 00aa.aabb.ccdd) -> 10.10.10.1(80), 1 packet`
```console
%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(14013) (FastEthernet0/0 00aa.aabb.ccdd) -> 10.10.10.1(80), 1 packet
```
**ACL日志在查看到底那些数据包被丢弃或放行的故障排除中会是非常有用的**, 但在现实世界情形中此内容超出CCNA考试范围不得提的是包含`[log]``[log-input]`关键字的ACL条目是为路由器进行线程交换的, 与之相反,现代路由器中, 默认都是经由CEF交换的ACL entries that contain `[log]` or `[log-input]` keyword are process-switched by the router, as opposed to being CEF-switched, which is the default in modern routers。这需要更多的路由器CPU周期因而导致在有大量与被记录的ACL条目匹配时出现问题。
###使用ACLs来限制Telnet和SSH访问
**Using ACLs to Limit Telnet and SSH Access**
@@ -621,7 +625,7 @@ Extended IP access list test
有时我们可能不想接受到设备或自设备发出的所有Telnet/SSH连接。而为实现此操作就必须定义一条ACL以指定在VTY线路上所允许或拒绝的流量类型。该ACL可以是编号ACL或命名ACL。通过命令`access-class <acl> | [in|out]`, 将该ACL加入到想要的VTY线路上。
下面的例子定义了一条允许来自主机10.10.10.1的Telnet流量该ACL随后被应用到VTY线路的进入方向。
下面的例子定义了一条允许来自主机`10.10.10.1`的Telnet流量该ACL随后被应用到VTY线路的进入方向。
```
Router(config)#ip access-list extended VTY_ACCESS
@@ -647,7 +651,7 @@ access-class VTY_ACCESS in
**Trubleshooting and Verifying ACLs**
相信有了对配置命令和规则的深入理解在访问控制清单上就不会有问题了。在ACL不工作的时候首先要通过ping操作检查有没有基本的IP连通性问题。接着看看有没有应用该ACL看看在ACL中有没有什么文字错误以及你是否需要允许任何IP流量通过记住那个隐式的deny all条目。而一些在ACL故障排除过程中最重要的检查点包括下面这些。
相信有了对配置命令和规则的深入理解在访问控制清单上就不会有问题了。在ACL不工作的时候首先要通过ping操作检查有没有基本的IP连通性问题。接着看看有没有应用该ACL看看在ACL中有没有什么文字错误以及你是否需要允许任何IP流量通过记住那个隐式的`deny all`条目。而一些在ACL故障排除过程中最重要的检查点包括下面这些。
- 查看ACL统计信息
- 检查所允许的网络
@@ -655,7 +659,7 @@ access-class VTY_ACCESS in
###查看ACL统计信息
在成功配置一条ACL并将其应用到某个接口上之后某种可以验证该ACL正确行为的手段非常重要尤其是某个ACL条目被使用到的次数。基于匹配次数就可以对过滤策略进行调整或者对ACLs进行增强以实现整体安全性的提升。而根据需求的不同可以在全局层面或者单个接口上从IOS 12.4开始查看ACL统计信息。
在成功配置一条ACL并将其应用到某个接口上之后某种可以验证该ACL正确行为的手段非常重要尤其是某个ACL条目被使用到的次数。基于匹配次数就可以对过滤策略进行调整或者对ACLs进行增强以实现整体安全性的提升。而根据需求的不同可以在全局层面或者单个接口上`IOS 12.4`开始查看ACL统计信息。
**ACL全局统计信息**
@@ -685,7 +689,7 @@ Extended IP access list 100 in
30 permit ip host 10.10.10.2 any (31 matches)
```
如未有指定方向则应用到该特定接口上的任何进或出方向的ACL都将显示出来。此特性也叫做“ACL可管理能力ACL Manageability自IOS 12.4开始可用。
如未有指定方向则应用到该特定接口上的任何进或出方向的ACL都将显示出来。此特性也叫做“ACL可管理能力ACL Manageability`IOS 12.4`开始可用。
###检查那些放行的网络
@@ -737,14 +741,14 @@ Extended IP access list 100 in
**实验步骤**
1. 配置上面的网络。在两台路由器上加入一条静态路由,领导到任何网络的任何流量都从串行接口发出。这么做的原因是,尽管这不是一个路由实验,仍然需要路由的流量。把.1地址加到路由器A的串行接口,.2地址加到路由器B的串行接口。
1. 配置上面的网络。在两台路由器上加入一条静态路由,领导到任何网络的任何流量都从串行接口发出。这么做的原因是,尽管这不是一个路由实验,仍然需要路由的流量。把`.1`地址加到路由器`A`的串行接口,`.2`地址加到路由器`B`的串行接口。
```
RouterA(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
```
2. 在路由器A上配置一条标准ACL放行192.168.1.0/10网络。默认情况下其它所有网络都将被阻止。
2. 在路由器A上配置一条标准ACL放行`192.168.1.0/10`网络。默认情况下,其它所有网络都将被阻止。
```
RouterA(config)#access-list 1 permit 192.168.1.0 0.0.0.63
@@ -755,7 +759,7 @@ RouterA(config)#exit
RouterA#
```
3. 从路由器B上测试该条ACL默认将使用10.0.0.1地址。
3. 从路由器`B`上测试该条ACL默认将使用`10.0.0.1`地址。
```
RouterB#ping 10.0.0.1
@@ -765,7 +769,7 @@ UUUUU
Success rate is 0 percent (0/5)
```
4. 以源地址192.168.1.1来做另一个ping测试这将没有问题。
4. 以源地址`192.168.1.1`来做另一个ping测试这将没有问题。
```
RouterB#ping
@@ -802,11 +806,11 @@ Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms
**实验步骤**
1. 配置上述网络。在路由器B上加入一条静态路由,令到前往所有网络的所有流量都从串行接口上发出。这么做是因为,尽管这不是一个路由实验,仍然需要路由流量。
1. 配置上述网络。在路由器`B`上加入一条静态路由,令到前往所有网络的所有流量都从串行接口上发出。这么做是因为,尽管这不是一个路由实验,仍然需要路由流量。
`RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0`
2. 在路由器A上配置一条扩展ACL。仅允许往环回接口上发起Telnet流量。
2. 在路由器`A`上配置一条扩展ACL。仅允许往环回接口上发起Telnet流量。
```
RouterA(config)#access-list 100 permit tcp any host 172.20.1.1 eq 23
@@ -819,11 +823,11 @@ RouterA(config-line)#^Z
RouterA#
```
上面的那条ACL编号为100, 这就告诉路由器它是一条扩展ACL。所要允许的是TCP。该条ACL允许来自任何网络的目的地址为172.20.1.1的Telnet端口端口号为23。在执行`show run`命令时,就会看到,路由器实际上会将端口号替换为其对应的名称,就像下面演示的这样。
上面的那条ACL编号为`100`, 这就告诉路由器它是一条扩展ACL。所要允许的是TCP。该条ACL允许来自任何网络的目的地址为`172.20.1.1`的Telnet端口端口号为`23`。在执行`show run`命令时,就会看到,路由器实际上会将端口号替换为其对应的名称,就像下面演示的这样。
`access-list 100 permit tcp any host 172.20.1.1 eq telnet`
3. 现在从路由器B上做一个Telnet测试。首先往路由器A的串行接口上Telnet将会被阻止。接着测试环回接口。
3. 现在从路由器B上做一个Telnet测试。首先往路由器`A`的串行接口上Telnet将会被阻止。接着测试环回接口。
```
RouterB#telnet 10.0.0.1
@@ -836,7 +840,7 @@ Password:
RouterA> ←Hit Control+Shift+6 together and then let go and press the X key to quit.
```
>**注意:**我们会在其它实验中涉及ACLs但你真的需要完全地掌握这些内容。为此要尝试其它的TCP端口比如80、25等等。另外要试试那些UDP端口比如53。如没有将一台PC接上路由器则是无法对这些其它端口进行测试的。
>**注意:**我们会在其它实验中涉及ACLs但你真的需要完全地掌握这些内容。为此要尝试其它的TCP端口比如`80``25`等等。另外要试试那些UDP端口比如`53`。如没有将一台PC接上路由器则是无法对这些其它端口进行测试的。
##命名ACL实验
@@ -859,7 +863,7 @@ RouterA(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
```
2. 在路由器B上加入一条扩展的命名ACL。只放行主机172.20.1.1,阻止其它任何主机或网络。
2. 在路由器`B`上加入一条扩展的命名ACL。只放行主机`172.20.1.1`,阻止其它任何主机或网络。
```
RouterB(config)#ip access-list extended blockping
@@ -870,7 +874,7 @@ RouterB(config-if)#ip access-group blockping in
RouterB(config-if)#
```
3. 现在分别从路由器A的串行接口和换回接口发出ping来测试该条ACL。
3. 现在分别从路由器`A`的串行接口和换回接口发出`ping`来测试该条ACL。
```
RouterA#ping 192.168.1.1