Come già detto in precedenza IPv6 ha completamente cambiato il trattamento delle opzioni; queste ultime infatti sono state tolte dalla testata del pacchetto, e poste in apposite testate di estensione (o extension header) poste fra la testata di IPv6 e la testata del protocollo di trasporto.
Per aumentare la velocità di processo, sia dei dati del livello seguente che di ulteriori opzioni, ciascuna estensione deve avere una lunghezza multipla di 8 bytes per mantenere l'allineamento a 64 bit di tutti le testate seguenti.
Dato che la maggior parte di queste estensioni non sono esaminate dai router durante l'instradamento e la trasmissione dei pacchetti, ma solo all'arrivo alla destinazione finale, questa scelta ha consentito un miglioramento delle prestazioni rispetto a IPv4 dove la presenza di un'opzione comportava l'esame di tutte quante.
Un secondo miglioramento è che rispetto a IPv4 le opzioni possono essere di lunghezza arbitraria e non limitate a 40 bytes; questo, insieme al modo in cui vengono trattate, consente di utilizzarle per scopi come l'autenticazione e la sicurezza, improponibili con IPv4.
Le estensioni definite al momento sono le seguenti:
La presenza di opzioni è rilevata dal valore del campo next header che indica qual'è la testata successiva a quella principale; in assenza di opzioni questa sarà la testata di un protocollo di trasporto del livello superiore, per cui il campo assumerà lo stesso valore del campo protocol di IPv4, altrimenti assumerà il valore dell'opzione presente; i valori possibili sono riportati in Tab. 20.
Questo meccanismo permette la presenza di più opzioni in successione prima del pacchetto del protocollo di trasporto; l'ordine raccomandato per le estensioni è quello riportato nell'elenco precedente con la sola differenza che le opzioni di destinazione sono inserite nella posizione ivi indicata solo se, come per il tunnelling, devono essere esaminate dai router, quelle che devono essere esaminate solo alla destinazione finale vanno in coda alle altre.