juniper命令ISIS速成(简单)
配置基本的ISIS:
在需要运行ISIS的接口家上ISO的地址族
任何接口都能配置NET地址。
起用ISIS路由进程
另外假如你接口disable了leve-1,而路由进程下没有disable的话,那么你ISIS数据库还将会创造出leve-1的LSP,只是不会发出去而已。如果disable了那么就不会有。
这就是接口等级的设置,与路由进程下的设置的区别。
protocols {
isis {
interface fxp2.234 {
level 1 disable;
}
interface fxp2.245 {
level 1 disable;
}
interface lo0.4;
}
}
lunsui# run show isis database logical-router R4
IS-IS level 1 link-state database:
LSP ID Sequence Checksum Lifetime Attributes
.00-00 0x2 0xb03c 936 L1 L2 Attached
1 LSPs
IS-IS level 2 link-state database:
LSP ID Sequence Checksum Lifetime Attributes
0100.0000.3003.00-00 0x4 0x47ff 934 L1 L2
0100.0000.3003.02-00 0x3 0x4761 934 L1 L2
0100.0000.3003.03-00 0x2 0x881e 934 L1 L2
.00-00 0x5 0xbac2 935 L1 L2
0100.0000.3005.00-00 0x7 0xf3a4 934 L1 L2
0100.0000.3005.02-00 0x3 0x970b 934 L1 L2
6 LSPs
protocols {
isis {
level 1 disable;
interface fxp2.234 {
level 1 disable;
}
interface fxp2.245 {
level 1 disable;
}
interface lo0.4;
}
}
lunsui# run show isis database logical-router R4
IS-IS level 1 link-state database:
0 LSPs
IS-IS level 2 link-state database:
LSP ID Sequence Checksum Lifetime Attributes
0100.0000.3003.00-00 0x5 001 1134 L1 L2
0100.0000.3003.02-00 0x4 062 1134 L1 L2
0100.0000.3003.03-00 0x3 0x861f 1134 L1 L2
.00-00 0x6 0xb8c3 1136 L1 L2
0100.0000.3005.00-00 0x8 0xf1a5 1134 L1 L2
0100.0000.3005.02-00 0x4 0x950c 1134 L1 L2
6 LSPs
在配置的时候有一个小技巧。姑且理解为最长匹配
[edit protocols isis]
[email=lab@r5]lab@r5[/email]# show
interface fe-0/0/1.0 {
level 2 disable;
}
interface all {
level 1 disable;
}
红色部分已经将所有的借口类型配置为level-2的了。但是蓝色部分更加明确的指定了该行为起用fe-0/0/1.0的类型为level-1。所以最后的结果为fe-0/0/1.0为level-1,其他全部接口为level-2。
在ISIS中两台路由器的直连接口如果不在同一网段,是不会影响ISIS的邻居建立的,因为ISIS在控制层面与IP无关。但是高版本的JUNOS已经修复这个问题,我用的版本是7。4的,但是没做测试。呵呵``
IS-IS的网络类型:
众所周知ISIS不同于OSPF他只支持两种网络类型,广播与点到点。
认证:
ISIS支持两种认证,一种是简单密码认证,另外一种是MD5。他可以基于HELLO,LSP这些数据包进行认证,因为在ISIS里面认证信息是一种TLV(类型10)所以可以附带在任意一种ISIS数据包的TLV里面(其中应该也可以包括CSNP和PSNP的认证但是我没有找到配置的命令)。
protocols {
isis {
no-authentication-check; (关闭认证检测)
level 2 authentication-type md5; ## SECRET-DATA
interface fxp1.245 {
level 1 disable;
level 2 {
hello-authentication-key "$9$PTF/cSevWx"; ## SECRET-DATA
hello-authentication-type md5; ## SECRET-DATA
}
}
蓝色部分为LSP的认证配置,红色部分为HELLO的认证配置,CSNP和PSNP的认证配置与
ISIS策略:
ISIS使用策略去配置路由泄露,路由汇总,路由重分布。、
路由泄露,默认情况下level-1的路由器相当于OSPF中的完全末节区域中的路由。只有一条默认路由出口,实际上这样会容易的产生次优路径的选择,一些情况下我们需要将level-2中的部分路由注入到level-1中。
Juniper的路由器使用策略来实现路由泄露。
policy-options {
policy-statement leak {
term 1 {
from {
protocol isis;
level 2;
route-filter 10.0.3.0/24 longer;
}
to level 1;
then accept;
}
term 2 {
then reject;
}
}
}
定义好策略以后,将策略export.
配置完以后会发现缺少level-1-2自己的路由。所以需要修改一下策略加入此路由。
policy-options {
policy-statement leak {
term 1 {
from {
route-filter 10.0.3.0/24 longer;
}
to level 1;
then accept;
}
term 2 {
then reject;
}
}
}
ISIS路由汇总:
Juniper对与ISIS汇总不支持区域汇总。所以只能用策略来做汇总,并且过滤那些更为明细的路由。
policy-statement sum {
term 1 {
from protocol aggregate; 匹配routing-option aggregate
to level 2; 发给level-2的路由
then accept;
}
term 2 { 如果不配置term2的话,那么明细的路由依然会传递到level-2上面。
from {
protocol isis;
level 1;
}
to level 2;
then reject; 从level-1来的isis路由全部被拒绝。
}
}
}
routing-options {
aggregate {
route 10.0.4.0/22; 被汇总后的条目。
}
}
然后再export,那么就完成了路由汇总。
10.0.4.0/22 *[IS-IS/165] 00:15:53, metric 20
> to 10.0.2.9 via fxp1.245
to 10.0.2.1 via fxp2.235
10.0.4.0/30 *[IS-IS/18] 00:42:58, metric 20
> to 10.0.2.1 via fxp2.235
10.0.4.4/30 *[IS-IS/18] 00:15:53, metric 30
> to 10.0.2.1 via fxp2.235
10.0.4.8/30 *[IS-IS/18] 00:42:23, metric 20
> to 10.0.2.9 via fxp1.245
10.0.4.12/30 *[IS-IS/18] 00:42:58, metric 20
但是要注意,以上的策略并没包含汇总直连路由的配置。根据我自己的实验拓扑和IP地址规划,可以修改一下策略搞定他
policy-statement sum {
term 1 {
from protocol aggregate;
to level 2;
then accept;
}
term 2 {
from {
route-filter 10.0.4.0/22 longer;
}
to level 2;
then reject;
}
}
}
下面路由表里就汇总干净了。
10.0.2.4/30 *[IS-IS/18] 00:47:13, metric 20
to 10.0.2.9 via fxp1.245
> to 10.0.2.1 via fxp2.235
10.0.3.3/32 *[IS-IS/18] 00:47:48, metric 10
> to 10.0.2.1 via fxp2.235
10.0.3.4/32 *[IS-IS/18] 00:47:13, metric 10
> to 10.0.2.9 via fxp1.245
10.0.4.0/22 *[IS-IS/165] 00:20:43, metric 20
> to 10.0.2.9 via fxp1.245
to 10.0.2.1 via fxp2.235
10.0.8.0/30 *[IS-IS/15] 13:09:41, metric 20
to 10.0.8.6 via fxp1.256
> to 10.0.8.10 via fxp2.257
10.0.9.6/32 *[IS-IS/15] 13:10:07, metric 10
> to 10.0.8.6 via fxp1.256
10.0.9.7/32 *[IS-IS/15] 13:09:41, metric 10
> to 10.0.8.10 via fxp2.257
172.16.0.12/30 *[IS-IS/18] 00:47:48, metric 20
> to 10.0.2.1 via fxp2.235
路由重发布:
The general problem relates to the fact that the
default IS-IS export policy will not send level 1 external routes into the IS-IS backbone
从level-1进来的外部路由,leve-1-2路由器默认是不会将这些外部路由注入进leve-2的。
可以检测一下leve-1-2的level-1的数据库是包含这条外部路由的,可是这台路由的level-2的数据库却没有。
[edit logical-routers R3]
lunsui# run show isis database level 1 detail logical-router R3 | match 10.
IP prefix: 10.0.5.0/24 Metric: 63 External Up
ISIS 窄的度量值最大63,支持完整路径累加度量值最大1023。
可以使用set protocols isis level 1 wide-metrics-only命令来修改默认度量方式。
杂七杂八的功能:
使用set protocols isis ignore-attached-bit这条命令可以使路由忽略ATT位被设置为0的LSP,换句换说就使level-1的路由器不去接受那条默认路由。
ISIS在选举DIS的时候,接口的优先级为0不代表着不参与选举。在两台路由器共享多路访问的网络之间如果两台路由器的优先级都为0的话,那么他们会继续比较SNPA,也就是MAC地址。(注意一条链路中可能存在两个DIS,因为需要分Level去考虑这个问题)
修改MAC地址可以使用Set interface fxp0.234 mac XX:XX:XX:XX命令
另外还可以在接口下修改CSNP和LSP的间隔
interface fxp2.235 {
lsp-interval 300;
csnp-interval 20; 注意:这个好象在juniper 的路由器上不分level.
level 1 disable;
level 2 {
检查配置效果
lunsui# run show isis interface fxp2.235 detail
IS-IS interface database:
fxp2.235
Index: 85, State: 0x6, Circuit id: 0x4, Circuit type: 2
LSP interval: 300 ms, CSNP interval: 20 s
Level Adjacencies Priority Metric Hello (s) Hold (s) Designated Router
2 1 64 10 9.000 27 0100.0000.3003.04
(not us)