2010-10-18

Question of the day

дано:

два роутера соединены fa0/0 интерфейсами. их конфиг:



hostname R1
!
ipv6 unicast-routing
!
int fa0/0
  ipv6 address 2001:1::1/64
  no shutdown
!




hostname R2
!
ipv6 unicast-routing
!
int fa0/0
  ipv6 address autoconfig
  no shutdown
!


вопрос 1:
получит ли R2 адрес ipv6 на интерфейс fa0/0 адрес автоматически?

вопрос 2:
что нужно прописать на R1 что б ответ на вопрос 1 стал утвердительным? :)
a. ничего
b. ipv6 nd prefix 2001:1::/64
c. ipv6 nd ra suppress
d. ipv6 nd advertisement-interval 5
e. ipv6 nd dad
f. не c
g. b и c
h. b и не c
i.. b,c,d,e
j. b, c, d и не e
k. ни один из вариантов (или их комбинаций) не является правильным

вопрос 3:
что произойдет если на R2 ввести команды:

R2(config)# int fa0/0
R2(config-if)# ipv6 address 2001:1::1/64
R2(config-if)# do ping 2001:1::1


ответы:

1. нет, R2 не получит адрес автоматически, т.к. не получает информацию о наличии роутера и о префиксе линка.

2. достаточно "не c", но большинство вариантов включающих "no ipv6 nd ra suppress" будут работать :)
по-умолчанию R1 будет отправлять только NA (neighbor advertisement) сообщения. для того что б R2 смог сделать IPv6 SLAA (state-less autoconfiguration) нужно что б R1 отправлял RA(router advertisement), которые по-умолчанию отключены(supressed).

3. при указанном конфиге, маршрутизаторы используют механизм IPv6 ND DAD:

R1# show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::222:90FF:FEAF:10D8 
  No Virtual link-local address(es):
  Stateless address autoconfig enabled
  Global unicast address(es):
    2001:1::222:90FF:FEAF:10D8, subnet is 2001:1::/64 [EUI/CAL/PRE]
      valid lifetime 2591879 preferred lifetime 604679
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFAF:10D8
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ICMP unreachables are sent
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds (using 15789)
  Hosts use stateless autoconfig for addresses.
потому мы можем наблюдать следующую цепочку событий:
1) мы назначаем адрес на интерфейс
2) роутер выполняет проверку DAD, отправляя NS(neighbor solicitaion) сообщение
3) если роутер получает ответ на NS, адрес уже занят
4) роутер маркирует адрес как DUP
R2(config-if)# do debug ipv6 nd
R2(config-if)# ipv6 address 2001:1::1/64
R2(config-if)#
*Oct 18 13:30:13.029: IPv6-Address: Prefix change 0x1 -> 0x4
*Oct 18 13:30:13.029: IPv6-Address: Updating prefix 2001:1::/64 to FastEthernet0/0
*Oct 18 13:30:13.029: IPv6-Address: Address 2001:1::1 configured on FastEthernet0/0
*Oct 18 13:30:13.029: IPv6-Addrmgr-ND: DAD request for 2001:1::1 on FastEthernet0/0
*Oct 18 13:30:13.033: ICMPv6-ND: Sending NS for 2001:1::1 on FastEthernet0/0
*Oct 18 13:30:13.037: ICMPv6-ND: Received NA for 2001:1::1 on FastEthernet0/0 from 2001:1::1
PC1(config-if)#
*Oct 18 13:30:13.037: %IPV6_ND-4-DUPLICATE: Duplicate address 2001:1::1 on FastEthernet0/0

естественно, наиболее интересным элементом вопроса является то, кого именно мы пропингуем по адресу 2001:1::1 :)
к счастью(или к сожалению), маршрутизатор не использует адреса маркированые как DUP, т.е. не отправляет по ним NA (и таким образом невозможно разрешение IPv6 адреса в MAC данного роутера), и вообще игнорирует его присутствие в конфиге.
таким образом адрес 2001:1::1 будет соответствовать первому роутеру использовавшему данный адрес, т.е. R1:

R2(config-if)#do show run interface fa0/
Building configuration...

Current configuration : 115 bytes
!
interface FastEthernet0/0
 ipv6 address 2001:1::1/64
 ipv6 address autoconfig
end

R2(config-if)#do show ipv6 interface
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::222:90FF:FEAF:10D8 
  No Virtual link-local address(es):
  Stateless address autoconfig enabled
  Global unicast address(es):
    2001:1::1, subnet is 2001:1::/64 [DUP]
    2001:1::222:90FF:FEAF:10D8, subnet is 2001:1::/64 [EUI/CAL/PRE]
      valid lifetime 2591879 preferred lifetime 604679
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFAF:10D8
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ICMP unreachables are sent
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds (using 15789)
  Hosts use stateless autoconfig for addresses.
R2(config-if)# do show ipv6 route
IPv6 Routing Table - Default - 3 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2001:1::/64 [0/0]
     via FastEthernet0/0, directly connected
L   2001:1::222:90FF:FEAF:10D8/128 [0/0]
     via FastEthernet0/0, receive
L   FF00::/8 [0/0]
     via Null0, receive
R2(config-if)# do sh ipv6 ro 2001:1::1
Routing entry for 2001:1::/64
  Known via "connected", distance 0, metric 0, type connected
  Route count is 1/1, share count 0
  Routing paths:
    directly connected via FastEthernet0/0
      Last updated 00:24:58 ago

R2(config-if)# do sh ipv6 ro 2001:1::222:90FF:FEAF:10D8    
Routing entry for 2001:1::222:90FF:FEAF:10D8/128
  Known via "connected", distance 0, metric 0, type receive
  Route count is 1/1, share count 0
  Routing paths:
    receive via FastEthernet0/0
      Last updated 00:25:09 ago

...
R1(config-if)#do debug ipv icmp
  ICMP Packet debugging is on
R1(config-if)#
*Oct 18 13:20:59.409: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.413: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.413: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.413: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.417: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.417: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.417: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.421: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8
*Oct 18 13:20:59.421: ICMPv6: Received echo request, Src=2001:1::222:90FF:FEAF:10D8, Dst=2001:1::1
*Oct 18 13:20:59.421: ICMPv6: Sent echo reply, Src=2001:1::1, Dst=2001:1::222:90FF:FEAF:10D8do R1(config-if)#
как мы видим, на R2 не появился Local маршрут, и маршруты на локальный SLAA-адрес и на адрес 2001:1::1 ярко отличаются (receive для Local, directly connected для удаленного).

Немає коментарів: