Sommario

Introduzione

DBD e MTU

Esempio di DBD

Comportamento del comando IP OSPF MTU-Ignore

Conclusioni

Introduzione

In questo documento viene illustrato il motivo per cui è consigliabile non utilizzare il comando ip ospf mtu-ignore.

L'articolo OSPF MTU and LSA Packing Tech Note (informazioni in lingua inglese) spiega un motivo, relativo alla MTU (Maximum Transmission Unit), per cui l'adiacenza OSPF (Open Shortest Path First) non raggiunge lo stato FULL.

DBD e MTU

Si può verificare una situazione in cui l'MTU dell'interfaccia ha un valore alto, ad esempio 9000, mentre il valore reale delle dimensioni dei pacchetti che possono essere inoltrati su questa interfaccia è 1500.

In caso di mancata corrispondenza dell'MTU su entrambi i lati del collegamento in cui è in esecuzione OSPF, la adiacenza OSPF non si formerà perché il valore MTU viene inserito nei pacchetti Database Description (DBD) e controllato sull'altro lato.

Il pacchetto DBD, specificato anche nella RFC 2328, descrive il contenuto del database dello stato del collegamento OSPF:

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   Version #   |       2       |         Packet length         |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                          Router ID                            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                           Area ID                             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|           Checksum            |             AuType            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                       Authentication                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                       Authentication                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|         Interface MTU         |    Options    |0|0|0|0|0|I|M|MS

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                     DD sequence number                        |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

+-                                                             -+

|                                                               |

+-                      An LSA Header                          -+

|                                                               |

+-                                                             -+

|                                                               |

+-                                                             -+

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                              ...                              |

L'appendice A.3.3 della RFC 2328 descrive l'MTU dell'interfaccia come segue: Dimensioni in byte del datagramma IP più grande che può essere inviato all'interfaccia associata, senza frammentazione.

I router collegati a un collegamento scambiano il valore MTU dell'interfaccia in pacchetti DBD quando viene inizializzata la adiacenza OSPF.

La sezione 10.6 della RFC 2328 afferma quanto segue: Se il campo MTU interfaccia nel pacchetto Database Description indica una dimensione del datagramma IP superiore a quella che il router può accettare sull'interfaccia ricevente senza frammentazione, il pacchetto Database Description viene rifiutato.

Quando si usa il comando debug ip ospf adj, è possibile verificare l'arrivo dei pacchetti DBD.

Esempio di DBD

Nell'esempio, esiste una mancata corrispondenza nei valori MTU tra due router adiacenti OSPF. Questo router ha MTU 1600:

OSPF: Rcv DBD from 10.100.1.2 on GigabitEthernet0/1 seq 0x2124 opt 0x52 flag 0x2

len 1452 mtu 2000 state EXSTART

OSPF: Nbr 10.100.1.2 has larger interface MTU

L'altro router OSPF ha l'interfaccia MTU 2000:

OSPF: Rcv DBD from 10.100.100.1 on GigabitEthernet0/1 seq 0x89E opt 0x52 flag 0x7

len 32 mtu 1600 state EXCHANGE

OSPF: Nbr 10.100.100.1 has smaller interface MTU

I pacchetti DBD vengono ritrasmessi continuamente fino a quando l'adiacenza OSPF non viene eliminata.

OSPF: Send DBD to 10.100.1.2 on GigabitEthernet0/1 seq 0x9E6 opt 0x52 flag 0x7

len 32

OSPF: Retransmitting DBD to 10.100.1.2 on GigabitEthernet0/1 [10]

OSPF: Send DBD to 10.100.1.2 on GigabitEthernet0/1 seq 0x9E6 opt 0x52 flag 0x7

len 32

OSPF: Retransmitting DBD to 10.100.1.2 on GigabitEthernet0/1 [11]

%OSPF-5-ADJCHG: Process 1, Nbr 10.100.1.2 on GigabitEthernet0/1 from EXSTART to

DOWN, Neighbor Down: Too many retransmissions

Comportamento del comando IP OSPF MTU-Ignore

Il comando ip ospf mtu-ignore dell'interfaccia disabilita questo controllo del valore MTU nei pacchetti DBD OSPF. Pertanto, l'uso di questo comando consente all'adiacenza OSPF di raggiungere lo stato FULL anche in caso di mancata corrispondenza della MTU dell'interfaccia tra due router OSPF.

Questo comando è stato introdotto con l'ID bug Cisco CSCdr20891.

Questo comando ha effetto sulle dimensioni effettive dei pacchetti OSPF dopo l'ID bug Cisco CSCsk86476.

Questo comando non influisce sulle dimensioni effettive dei pacchetti IP trasmessi e non influisce sul comportamento di rilevamento della MTU del percorso per il traffico che attraversa il router. L'uso del comando potrebbe aiutare a richiamare l'adiacenza OSPF, ma il traffico di transito attraverso il router può ancora essere compromesso per pacchetti IP di grandi dimensioni.

Prima dell'ID bug Cisco CSCse01519, le dimensioni dei pacchetti DBD OSPF erano limitate a 1500 byte. Ciò ha consentito al protocollo OSPF di funzionare normalmente anche in una situazione di mancata corrispondenza MTU, quando è stata utilizzata la funzionalità OSPF mtu-ignore.

Se non si usa l'ID bug Cisco CSCse01519 e il comando ip ospf mtu-ignore, è possibile che la adiacenza OSPF non riesca quando i pacchetti OSPF effettivi sono superiori a 1500 byte.

Dopo l'ID bug Cisco CSCse01519 e con il comando ip ospf mtu-ignore e prima dell'ID bug Cisco CSCsk86476, i pacchetti OSPF potrebbero essere scartati (superiori a 1500 byte). Ciò ha impedito il raggiungimento dello stato FULL da parte dell'adiacenza OSPF.

Dopo l'ID bug Cisco CSCsk86476, se si usa il comando ip ospf mtu-ignore, il router torna a usare un valore MTU massimo sicuro per i pacchetti OSPF. Il valore è 1300 byte. Poiché questo valore è relativamente piccolo, può influire sull'inondazione OSPF. Un pacchetto OSPF più grande è più efficiente per l'flooding OSPF.

Conclusioni

La soluzione corretta in tutti i casi è configurare l'MTU corretta sulle interfacce. Questo valore MTU deve corrispondere sui router su entrambi i lati del collegamento.