CCNP 复习记录 —— 路由


Redistribution

重分发时,EIGRP和RIP中的重分发默认METRIC为无穷大,所以做ROUTER RIP(EIGRP),REDIST OSPF(EIGRP)时需要跟METRIC或另写DEFAULT-METRIC,否则分发的路由无法生效,因为METRIC无穷大。

如果是RIP-EIGRP-OSPF这种多区域多次重分发,那么在RIP端显示的OSPF路径METRICS应该是redist eigrp 1 metric *中*指定的量,不需要在这基础上加成其他数值。

distribute-list:实现对特定路由拒绝或允许重分发。
比如R1有eigrp和ospf两个路由进程,想让10.1.1.0的EIGRP路由信息不能传递给OSPF,则应使用router os 1; distribute-list 1 out eigrp 1; access-list 1 deny 10.1.1.0 0.0.0.255; access-list 1 permit any。
这里的如果用IN,将只能选择接口进入流量控制;OUT的话,意思是说从EIGRP路由交换得到的信息中显示ACCESS LIST 1中规定的流量并导入OSPF,所以如果1中规定PERMIT ANY,则全部信息都可以导入。这点很重要。
但需要注意的是,如果语句是distribute-list 1 out F0/0,则意味着对从F0/0口传出的路由信息进行流量控制,这种语句的表达和上面路由表重分发中的不同!

IP Summary

EIGRP和RIP是在INT下作ip sum,OSPF是在ROUTER OSPF下SUM域内,AREA RANGE域间。

EIGRP,OSPF汇总后的Metric为所有路径中最小的那个。

自动汇总和手动汇总都是针对路由器上得到的全部路由信息进行汇总(包括直连接口),但接收路由器将只接受不包含自己直连接口网段的自动汇总网段信息,比如 R1 f0/0: 10.1.1.1 — f0/0: 10.1.1.2 R2 f0/1: 10.1.2.1 — f0/0: 10.1.2.2 R3 f0/1: 10.1.3.1,则R1是不会接受来自R2的关于10.0.0.0网段的自动汇总的,因为它有一个直连接口属于该类子网,但如果R2关闭自动汇总而使用手动汇总方式发送,则R1会接受,即使是汇总为10.0.0.0。同理,R1会接受R3的关于10.0.0.0的手动汇总,但不会接受R2的10.0.0.0的自动汇总,所以R1中会出现10.0.0.0/8和10.1.2.0/24两个地址。

Passive mode

RIP中是应用在ROUTER RIP下,只接收但不发送路由信息。

EIGRP中也是应用在ROUTER EIGRP下,会导致不接收也不发送。因为不发送信息意味着无法和邻居建立邻接关系,这点与RIP不同。

router rip
passive-interface f0/0
neighbor 10.1.1.1
除了指定邻居10.1.1.1以外,F0/0口不向任何邻居发送路由消息。

OSPF

OSPF的网络类型 (非CISCO提出的都是30秒)
  1. 点到点网络(point-to-point)由cisco提出的网络类型,自动发现邻居选举DR/BDR,Hello时间10s。
  2. 广播型网络(broadcast)由cisco提出的网络类型,自动发现邻居选举DR/BDR,Hello时间10s。
  3. 非广播型(NBMA)网络由RFC提出的网络类型,手工配置邻居选举DR/BDR,Hello时间30s。
  4. 点到多点网络 (point-to-multipoint)由RFC提出,自动发现邻居选举DR/BDR,Hello时间30s。
  5. 点到多点非广播由cisco提出的网络类型,自动发现邻居选举DR/BDR,Hello时间10s。

执行Default-information originate always 的路由器会告知所有OSPF路由器(包括其他区域的)它是出口网关路由器,OSPF内的路由器会递归的传递此消息,最后全网路由器都将默认网关方向指向此路由器。

如果一个网段被宣告给多个区域,如net 10.1.4.0 255.255.255.0 area 0, net 10.1.4.0 255.255.254.0 area 1, 则路由器会参照类似PREFIX的选法,选择更细致的那个。

area 1 stub no-summary 只需写在ABR上,但要在全是area 1 stub的区域进行。
area 1 nssa no-summary 只需写在ABR上,但要在全是area 1 nssa的区域进行。

Stub: 添加一条默认路由,将所有非O和OIA交换得到的OSPF区域中宣告的网段指向此默认路由(包括重分发进OSPF的)。不传5类LSA。
Total Stub: 将全部交换得到的网段都归并到默认路由中。路由表中应为只有一条默认路由存在。不传3类和5类LSA。
Nssa: 普通NSSA路由表没有任何变化。但是不传5类LSA,而以7类取而代之。
Total Nssa: 将所有OSPF交换得到的路由都归并到默认路由中,但不包括任何重分发进OSPF的路由。路由表中应为除N2类路由外只有直连和默认路由。还是只传7类,但以一条默认路由代表其他所有网络。

5类到7类的转换只发生在ASBR上,所以如果有一个普通OSPF区域的5类路由信息想通过ASBR或ABR进入一个NSSA区域中,是不可能的,它会被边界路由器阻断。

Virtual-Link:形如0-1-2的OSPF结构,在1中做过virtual link后,会使1中的路由器将0中得到的路由视为区域内路由,也就是是说1将自己并入了0中。

EIGRP

邻居传出的AD < 本地最佳路由的FD,这种邻居才有资格成为可行路由的邻居。
variance ‘?’ 将 “<=” FD路由?倍的路由都添加到路由表
maximum-path 可行路由中选用条数

Eigrp stub 默认为connected & summary,并不会像OSPF STUB那样自动添加一条默认路由,需要在上家路由器手动IP SUM指定。

BGP

BGP与EIGRP和OSPF的不通是后两者之间的邻接关系需要network相连接口或其所属网段才可建立,而BGP的邻接关系建立是建立在IGP互通基础之上,所以和network宣告命令是独立分开的,直连邻居要建立关系只需neighbor即可,而非直连邻居则需要IGP支持以知晓loopback接口如何访问,否则无法建立。

iBGP间邻居地址建议使用loopback接口,能保证非直连接口的可达性;eBGP间因为一般都是直连的,所以没有使用loopback的必要。
同一AS中的所有iBGP PEER都应FULL-MESH。
eBGP multihop用于非直连eBGP邻居间建立关系。

BGP network宣告命令,只有属于network命令中宣告的子网的地址才会被通告,如宣告的是CIDR地址,则其子网是不会被宣告的。比如: network 192.168.1.0 不会宣告192.168.1.1 255.255.255.255.

由于BGP是建立在本地路由表基础之上的路由协议,所以它可以对收到的OSPF等其他路由协议进行再通告(BGP表通告|只能通告IGP得来的,不能将收到的BGP信息再重复宣告),但是默认的下一跳接口地址会使用它收到该路由时的上游地址(所以需要NEXT HOP SELF 才能在下游路由器路由表中生效),比如A-B-C三台路由器,A-B间有OSPF交换,B-C间为iBGP,则C会从B收到以A接口为下一跳的去往A的BGP路由(B上开启NEXT HOP SELF);如果B-C间同时运行着OSPF,则iBGP会被OSPF抑制(iBGP=200, OSPF=110),所以在IGP基础上的重复进行iBGP宣告对本地路由表是没有意义的(iBGP=200大于任何IGP),它的作用体现在将BGP路由传递给下一个eBGP邻居(直连无动态IGP),因为规则是iBGP不会将自己收到的BGP信息传递给下一个iBGP邻居,但可以传给eBGP邻居。

A-B-C-D-E中A-B-C都有OSPF,C-D间为iBGP,D-E为eBGP,则C可以将A的OSPF信息以iBGP传递给D(200),而D会以eBGP传递给E(20)。

使用loopback接口作为BGP邻居名实现load balancing,使用Multihop举例:

bgp-toc5.gif

RTA#
int loopback 0
ip address 150.10.1.1 255.255.255.0
router bgp 100
neighbor 160.10.1.1 remote-as 200
neighbor 160.10.1.1 ebgp-multihop (multihop也不是必须的,因为这用的是LO接口,如果使用NEI上的非直连接口,则multihop是必须的)
neighbor 160.10.1.1 update-source loopback 0
network 150.10.0.0 (此网络宣告对邻接建立没有实际意义,是为了宣告网段到其他非直连BGP PEER,因为IP ROUTE已经告知了metric为1的静态路由给路由器,所以PEER的路由表中只会有S而不是B)

ip route 160.10.0.0 255.255.0.0 1.1.1.2
ip route 160.10.0.0 255.255.0.0 2.2.2.2
RTB#
int loopback 0
ip address 160.10.1.1 255.255.255.0
router bgp 200
neighbor 150.10.1.1 remote-as 100
neighbor 150.10.1.1 update-source loopback 0
neighbor 150.10.1.1 ebgp-multihop
network 160.10.0.0

ip route 150.10.0.0 255.255.0.0 1.1.1.1
ip route 150.10.0.0 255.255.0.0 2.2.2.1

使用静态路由告知路由器到达对端LOOPBACK接口的方法,BGP就会自动LOAD BALANCING了,当然可以使用动态IGP。

BGP宣告网段原则是network 10.1.1.0 mask 255.255.255.0将只宣告和此定义网段掩码完全一致的直连接口网段,若为network 10.0.0.0,则必须存在一个10.0.0.1类型的直连接口或路由,否则不会被添加到BGP表中。
1. 可以使用auto summary强制BGP自动将10.1.1.1汇总到10.0.0.0,然后配合network 10.0.0.0就可以宣告出去了,但只显示10.0.0.0这个汇总地址,如果同时使用了network 10.1.1.0 mask 255.255.255.0, 则会同时显示10.0.0.0和10.1.1.0两条路由;
2. 还可以使用aggregate-address 10.0.0.0 255.0.0.0进行手动汇总,默认会将两条路由都发出去,如果使用aggregate-address 10.0.0.0 255.0.0.0 no-summary 将会抑制10.1.1.0,在BGP表中以S表示(suppressed)。

GRE Tunnel with IPsec

GRE是基于已有路由的一种模拟直连环境的连接方式,可以实现跨越多个路由器远距离模拟直连。因为基于已有路由,所以它能成立的条件是已有路由能够提供给它足够多的信息,让他知道如何到达TUNNEL对端。所以物理接口的路由可达是先决条件。

单独的GRE通道没有任何加密环境,不安全,所以一般使用是混合IPsec的VPN方式。另一方面,对于跨越ISP网络的公司多站点VPN网络,由于公司内网地址是不会被ISP路由的,所以要想实现远距离公司全部站点路由可见,就只能使用TUNNEL了.

tunnel 172.16.1.1 – 172.16.1.2

IPsec esp-sha-hmac esp-3des

crypto isakmp

int 192.168.1.1 – 192.168.2.1
crypto ipsec transform-set 10 esp-sha-hmac esp-3des
crypto map tunnel ipsec-isakmp
set transfrom-set 10
set peer 192.168.2.1  PEER地址是对方物理接口地址
match address 102
crypto isakmp policy 1
authentication pre-share
group 2
crypto isakmp key lulu address 192.168.2.1  密钥也是针对对方物理地址分配的
access-list 102 permit gre host 192.168.1.1 host 192.168.2.1   不用针对TUNNEL口配置ACL,所有配置都是基于物理接口的
access-list 102 permit esp host 192.168.1.1 host 192.168.2.1
access-list 102 permit udp host 192.168.1.1 eq isakmp host 192.168.2.1
interface f0/0
ip add 192.168.1.1 255.255.255.0
crypto map tuunel    调用先前定义的TUNNEL VPN IPsec isakmp
int tunnel0
ip add 172.16.1.1 255.255.255.0
tunnel source f0/0    宣告所用TUNNEL和哪个接口绑定
tunnel destination 192.168.2.1    宣告TUNNEL对端绑定的地址
router os 200
net 192.168.1.0 0.0.0.255 a 0   宣告物理接口网段,以使得OSPF正常通信。TUNNEL口不需宣告,因为本例中没有其他TUNNEL需要做动态路由。
net *******

IPv6

128bit
路由器发配RA分配信息,客户端产生RS请求,头信息里包含next header field

ipv6 unicast-routing 具有赋予路由器IPV6路由的功能,如果禁用,则路由器会被作为终端使用。

RA(Router Advertisement)由ND进程发送,只有具备ipv6 unicast-routing 功能的IPv6路由器才会发送,用于在链路上通告自动分配的参数

ipv6 address autoconfig 用于获取IPv6路由器提供的自动分配全球唯一(Global address)地址。
普通接口命令 ipv6 address 34::1/64 定义Global address, 而ipv6 address fe80::1 local-link为手动定义Local Link地址,必须是FE80开头。
作为IPv6客户端,会定期发送RS(Router Solicitation)去探寻网络中的IPv6路由器,请求Global address。客户端能创建自己的全球自动分配地址前提是能收到IPv6路由器的RA,而RA中必将包含路由器相应接口的全球地址,也就是说路由器能给它的客户端分配地址的前提是自己相应接口上要先有一个全球地址,否则它的RA没有内容,客户端无从下手。

接口分配IPv6地址过程:

1. 接口配置了IPv6地址后,会从此接口发送NS信息,以试探所配地址是否网络中唯一;
2. 收到DAD回馈说明地址唯一;
3. 从此接口发出邻居通告(NA, Neighbor Announcement)

Ipv6 OSPFv3 只路由IPV6接口的Global address,不理会Local link,其实Local Link可以视为IPv6中的MAC。

Local Link是OSPFv3能建立邻接关系的根基,路由表中会用LL地址(下一跳)+接口(本地)作为到达方法的注释。

IPv6 to IPv4隧道技术:

分为双栈,隧道,和转换三种类型:

  1. 双栈:全网路由器上同时具有IPv4和IPv6两个地址。
  2. 隧道:只有IPv4边缘路由器上才启用双栈,并使用手动或自动隧道运载IPv6数据。
    手动:使用GRE或ipv6ip将IPv6流量加载到IPv4的数据包中在IPv4网络中传递。GRE的头部比ipv6ip长,其他都一样;
    自动:使用6to4或ISATAP,
    6to4:需要手动赋予边缘路由器特定范围(2002::)的IPv6地址,目标地址不用配置,信息都包含在转换后的IPv6包中了;
    ISATAP:只需tunnel int下定义ipv6 add 12:12::/64 eui-64,剩余后64bit会自动赋予0000:5EFE:ipv4的地址
  3. 转换:使用NAT-PT将IPv6转换到IPv4。

ipv6ip

配置方法和GRE隧道相同,只是使用tunnel mode ipv6ip将普通GRE隧道改成ipv6ip封装。

6to4:

和手动隧道的区别是

  1. 点到多点自动隧道;
  2. 以2002::/16和接口IPv4地址组合成的/48地址作为接口分配的IPv6地址,如192.168.99.1->2002:c0a8:6301::/48;
  3. tunnel int下不需要设置tunnel destination,因为对端IPv4地址已经作为目标地址被这个用于转换的路由器收到作为目标,而此路由器会自动将这个目标封装到转换后的IPv6包作为IPv6数据的目标,发出后到达对端会自动被对端自动隧道的路由器解封装并认知是给自己相应IPv4接口的;
  4. 使用tunnel mode ipv6ip 6to4定义接口。
  5. 因为是点到多点隧道,又没有定义对端IPv4接口基础地址,所以ip route ::/0 tunnel0并不管用,需要使用 ip route ::/0 2002:c0a8:6301:: 告知下一跳的IPv6转换口地址才能启用默认路由。

ISATAP

和6to4区别:

  1. 定义接口可以随便给予任何前64bit地址,型如ipv6 add 12:12::/64 eui-64,后64bit会在使用tunnel mode ipv6ip isatap后自动将0000:5EFE和接口IPv4地址转换为16进制形式添加上。
  2. 如果tunnel此前已经赋予过自动或手动地址(以F0/0接口MAC填充的地址),执行isatap后会自动将地址改成isatap形式,同时应用于Local link和Global add。
  3. 不支持NAT
  4. 不支持多播,所以RIPng,OSPFv3等用多播同步数据的路由协议会有问题。
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s