IPv6

Internet Protocol version 6 או IPv6 הוא הגרסה האחרונה של פרוטוקול ה-IP, הפרוטוקול המשמש למיתוג מנות באינטרנט וברשתות תקשורת. הפרוטוקול פותח על מנת להתמודד עם ההידלדלות של מספר כתובות ה-IPv4 הקיימות בעולם. 

פרוטוקול ה-IPv6 פותח במקור על ידי סטיב דירינג (Steve Deering) וקרייג מאדג' (Craig Mudge) במרכז המחקר זירוקס פארק, ואומץ כתקן על ידי ה-IETF בשנת 1994.

== הידלדלות מאגר כתובות IPv4 ==
כתובת IP ב-IPv4 בנויה מ-32 סיביות, וכך מאפשרת באופן תאורטי 4,294,967,296 כתובות שונות, אך באופן מעשי המספר קטן יותר. אומנם מנגנון שיפר את ניצול הכתובות ב-IPv4, אבל יש טווחים של כתובות שניתנו לארגונים גדולים ולאוניברסיטאות לפני המעבר ל-CIDR (בעיקר מ-Class B) ואינם מנוצלים (כמו כן חלק מהטווחים שמורים לכתובות NAT). יותר מכך, גם אילו מאגר הכתובות היה מנוצל במלואו, לא ניתן היה לתת כתובת ייחודית לכל אחד ממיליארדי האנשים החיים על כדור הארץ, ובוודאי שלא ניתן היה לספק לכל אדם כתובות ייחודיות לטלפון הסלולרי, למחשב בבית, למחשב הנייד (שלא לדבר על מכשירים נוספים כמו רמזורים). 

השימוש בכתובות פרטיות בטכנולוגיות NAT אומנם הקל על המצוקה בכתובות IP פנויות אל מול הדרישה ההולכת וגוברת לחבר יותר ויותר אנשים על המכשירים שברשותם לרשת האינטרנט, אך בשנת 2011 נראה כי גם אמצעי זה לא מספיק על מנת להתגבר על המחסור בכתובות IPv4 בעולם.

הדיון לגבי הצורך ב-IPv6 החל כבר בימיו הראשונים של הפרוטוקול, ונמצא במוקד תשומת הלב הציבורית אל הפרוטוקול. תרומה מכרעת להבנת הדחיפות במימוש הפרוטוקול נעשתה על ידי טוני היין (Tony Hain) מחברת סיסקו וג'ף יוסטון (Geoff Huston), לשעבר המדען הראשי של APNIC (רשם האינטרנט האזורי של אסיה). במשך השנים לא הייתה הסכמה בין שני המומחים לגבי טווח הזמן בו צפוי מאגר הכתובות להתרוקן. בתחילת 2011 עמד מאגר הכתובות הגלובלי של IPv4 אצל רשם האינטרנט הבינלאומי IANA על 2% מגודלו (7 בלוקים של 8/), וב-3 בפברואר באותה השנה הודיע IANA על חלוקת בלוקי הכתובות האחרונים בטקס רשמי במיאמי. הקצאת הבלוקים התבצעה בהתאם להחלטת ICANN שכאשר יישארו חמישה בלוקים, הם יחולקו מיד לרשמים האזוריים (RIR) והמאגר העולמי יתרוקן.

המשמעות של התרוקנות המאגר הגלובלי היא שמאותו הרגע נאלצו רשמי האינטרנט האזוריים להתנהל בכוחות עצמם עם מלאי הכתובות שנשאר ברשותם. כבר באמצע אפריל של אותה השנה הודיע APNIC כי נותר ברשותו בלוק אחד של כתובות בתת-רשת 8/. בספטמבר 2012 הוציא RIPE (הרשם האזורי של אירופה) הודעה דומה, ובאפריל 2014, הודיע רשם הכתובות בארצות הברית וקנדה ARIN כי גם הוא הגיע לבלוק האחרון בתת-רשת 8/. (את ההתמודדות המוצלחת יחסית של ARIN ניתן לייחס במידה רבה למדיניות הקצאת כתובות חסכנית ובמידה פחותה יותר למעבר של חלק מספקי האינטרנט ל-IPv6.).

קשה להעריך כמה כתובות נותרו בידי ספקי אינטרנט וחברות מסחריות, אולם ברור כי המחסור בכתובות נעשה מוחשי יותר ויותר ככל שהזמן חולף.
כל רשמי האינטרנט האזוריים ממליצים על מעבר ל-IPv6, ומסבירים באתריהם הרשמיים על התרוקנות המאגרים של IPv4. בישראל, שתלויה במאגר החירום של הרשם האירופי RIPE, קיים קושי לקבל כתובות חדשות, שכפי הנראה משפיע בעיקר על ספקי האינטרנט הקטנים.

==מבנה כתובת IPv6==
דוגמה לייצוג הקסדצימלי (מלא ומקוצר) של כתובת IPv6 ותרגומה לייצוג בינארי
כתובת IPv6 מורכבת מ-128 סיביות: 64 הסיביות הראשונות משמשות לזיהוי תת-הרשת, ו- 64 הסיביות האחרונות משמשות כמזהה ממשק (interface ID). ערכו של מזהה הממשק נקבע על ידי כתובת ה־MAC של כרטיס הרשת. עם זאת, מכיוון שכיום כתובות ה־MAC של רוב ממשקי הרשת הן בפורמט של 48 סיביות, יש צורך להמיר אותן לפורמט EUI-64. הערך של תת-הרשת מורכב מקידומת גלובלית (global routing prefix) שיכולה לייצג למשל ספק שירותי אינטרנט ותת-רשת שיכולה לייצג רשת של לקוח שמחובר לספק.

הייצוג של כתובות IPv6 נעשה בדרך כלל באמצעות סדרה של 8 מספרים בני ארבע ספרות בבסיס הקסדצימלי שמופרדים בנקודתיים וכל אחד מהם מייצג 16 סיביות. לשם קיצור ניתן להשמיט את האפסים המובילים וכן רצף אחד של אפסים. לדוגמה, הכתובת היא קיצור של הכתובת .

==מבנה חבילה ב־IPv6==
:{| class="wikitable" style="text-align: center"
|+Fixed header format
|-
! style="border-bottom:none; border-right:none;"| Offsets
! style="border-left:none;"| Octet
! colspan="8" | 0
! colspan="8" | 1
! colspan="8" | 2
! colspan="8" | 3
|-
! style="border-top: none" | Octet
! Bit
! style="width:2.6%;"| 0
! style="width:2.6%;"| 1
! style="width:2.6%;"| 2
! style="width:2.6%;"| 3
! style="width:2.6%;"| 4
! style="width:2.6%;"| 5
! style="width:2.6%;"| 6
! style="width:2.6%;"| 7
! style="width:2.6%;"| 8
! style="width:2.6%;"| 9
! style="width:2.6%;"| 10
! style="width:2.6%;"| 11
! style="width:2.6%;"| 12
! style="width:2.6%;"| 13
! style="width:2.6%;"| 14
! style="width:2.6%;"| 15
! style="width:2.6%;"| 16
! style="width:2.6%;"| 17
! style="width:2.6%;"| 18
! style="width:2.6%;"| 19
! style="width:2.6%;"| 20
! style="width:2.6%;"| 21
! style="width:2.6%;"| 22
! style="width:2.6%;"| 23
! style="width:2.6%;"| 24
! style="width:2.6%;"| 25
! style="width:2.6%;"| 26
! style="width:2.6%;"| 27
! style="width:2.6%;"| 28
! style="width:2.6%;"| 29
! style="width:2.6%;"| 30
! style="width:2.6%;"| 31
|-
! 0
! 0
| colspan="4"|Version
| colspan="8"|Traffic Class
| colspan="20"|Flow Label
|-
! 4
! 32
| colspan="16"|Payload Length
| colspan="8"|Next Header
| colspan="8"|Hop Limit
|-
! 8
! 64
| colspan="32" rowspan="4"|Source Address
|-
! 12
! 96
|-
! 16
! 128
|-
! 20
! 160
|-
! 24
! 192
| colspan="32" rowspan="4"|Destination Address
|-
! 28
! 224
|-
! 32
! 256
|-
! 36
! 288
|}
בניגוד לפרוטוקול IPv4 שם השדות האופציונליים מקודדים בכותר עצמו, השדות האופציונליים ב־IPv6 מקודדים ב"הרחבות כותרים" (extension headers). הרחבות כותרים מאפשרות באופן תאורטי להוסיף אינסוף שדות אופציונליים לחבילה נתונה. לעומת זאת, ב־IPv4 מספר השדות האופציונליים מוגבל על ידי השדה IHL שאורכו 4 סיביות והוא מגדיר את אורך הפתיח ביחידות של 4 בתים (כלומר עד 64 בתים כולל החלק הקבוע של הפתיח או לשדות האופציונליים בלבד). המשמעות של ההבדל הזה היא שההשוואה בין הפתיחים של שני הפרוטוקולים היא מורכבת. כמו כן, המבנה השונה של הפתיחים דורש תרגום של הפתיחים בנוסף לכתובות הרשת במעבר של חבילות בין רשת IPv4 לרשת IPv6 ולהפך באמצעותNAT64 .

;גרסת הפרוטוקול (version): בדומה לפרוטוקול IPv4 ארבע הסיביות הראשונות של הפתיח משמשות לזיהוי גרסת הפרוטוקול. במקרה של פתיח IPv6 יופיע הרצף 0110 שהוא ייצוג בינארי של הספרי 6.
;עדיפות (Traffic Class): שמונה סיביות שמשמשות לניהול של איכות השירות (QoS) (). מקביל לשדה ב־IPv4.
;תווית הזרם (Flow Label): תווית זו נועדה במקור לסימון חבילות ששייכות לאותו רצף (flow) אבל נכון לעכשיו לא ברור מה הייעוד שלה.
;אורך המטען (Payload Length): אורך החבילה ללא הפתיח. (ב־IPv6 אורך הפתיח קבוע ולכן אין צורך לציין את אורכו כמו ב־IPv4.)
;הפתיח הבא (Next Header): מציין את סוג האופציה בפתיח ההרחבה של הפתיח הנוכחי (בהתאם לטבלת מספרי פרוטוקולי IP )
;חסם הקפיצות (Hop Limit): שדה זה מקביל לשדה ה-TTL ב- IPV4 ומציין את המספר המקסימלי של נתבים שחבילה יכולה לעבור לפי שהיא מושלכת (discard).
;כתובת מקור (Source address): הכתובת ממנה נשלחה החבילה (מקביל לתפקיד השדה ב־IPv4)
;כתובת יעד (Destination address): הכתובת אליה מיועדת החבילה (מקביל לתפקיד השדה ב־IPv4)

== פרוטוקול IPv6 לעומת IPv4 ==
החידוש העיקרי בגרסה 6 הוא הגדלה משמעותית בכמות כתובות ה-IP האפשריות. ב-IPv6, נעשה שימוש ב-128 סיביות, המאפשרות עד 10<sup>38</sup>×3.4 כתובות שונות, כלומר, עבור כל אחד מ-7 מיליארד בני אדם החיים כיום ניתן לחלק 10<sup>28</sup>×5 כתובות ייחודיות, מספר עצום כשלעצמו. דוגמה נוספת הממחישה את כמות הכתובות ב-IPv6: אם רובוטים זעירים יכסו את פני כדור הארץ מגובה פני הים ועד לגובה 10 קילומטר (מעל לגובה ההר הגבוה ביותר – האוורסט), נוכל להקצות כתובת ייחודית לכל רובוט, כל עוד הצפיפות שלהם לא תעלה על 278 מיליארד רובוטים למילימטר מעוקב.

למרות שהמוטיבציה המרכזית לניסוח פרוטוקול IPv6 הייתה לפתור את מצוקת הכתובות ב-IPv4, הפרוטוקול כולל מספר חידושים שנועדו להתגבר על חולשות שזוהו לאורך השנים ב-IPv4 ולהתאים אותו לטכנולוגיות הרשת האחרונות.
===פישוט פעולות העיבוד בנתבים===
אחד מהחידושים הנ"ל הוא העברת האחריות לחלוקה (fragmentation) של מנות ה-IP מהנתבים למחשבי הקצה (endhosts). בהתאם לפרוטוקול, אם נתב מקבל חבילה שגודלה עולה על ה־MTU של הממשק הפיזי דרכו הוא צריך לנתב את החבילה הוא נדרש ל"השליך" (discard) אותה ולשלוח חבילת ICMPv6 בחזרה לכתובת המקור על מנת ליידע את המחשב השולח שהחבילה גדולה מדי לניתוב המבוקש. במקרה שמחשב מקבל הודעה כזו מנתב, האופציות שעומדות לרשותו הן: לחלק את החבילה למספר חבילות קטנות יותר, או לברר מה גודל החבילה המקסימלי שיכול להעביר בניתוב הספציפי באמצעות אלגוריתם Path MTU Discovery , או לחלק את המידע לחבילות של (ה־MTU המינימלי הנדרש לקישור פיזי ברשת IPv6). מעבר לכך, השדות שמשמשים לניהול של פרגמנטים ב-IPv4 הפכו ממנדטורים לאופציונליים. כך, למרות הרחבת גודלו של שדה הכתובת (32 בתים לשתי הכתובות במקום 8 בתים ב-IPv4) ותוספת שדה חדש (flow label) גדל החלק הקבוע (fixed portion) של כותרת חבילת ה־IP רק במעט (40 בתים ב-IPv6 למול 20 בתים ב-IPv4).
שינוי נוסף שנועד לפשט את פעולת הנתבים הוא ויתור על בדיקת checksum. מכיוון שכיום כל הפרוטוקולים בשכבת הקשר כוללים בדיקת יתירות מחזורית או checksum, ניתן היה לוותר על שדה זה. למעשה, היתרון היחידי של הבדיקה הזו כיום הוא בזיהוי חבילות שהתוכן שלהן במהלך עיבודן בנתב שובש עקב תקלות בזיכרון. וגם יתרון זה הוכח כזניח לאור האמינות הגבוהה של רכיבים אלו בימינו.

===טווחי כתובות===
הבדל נוסף בין IPv6 ל-IPv4 הוא השימוש בכתובות מקומיות (Link-local address או APIPA כמו שהם נקראים ביישום של מיקרוסופט לפרוטוקול TCP/IP) במקביל לכתובות גלובליות. בעוד שכתובות מקומיות ב-IPv4 מוקצות באופן עצמאי כאשר לא הוקצו כתובות IP באופן ידני או באופן אוטומטי על ידי שרת DHCP, כתובות אלה הן מנדטוריות ב-IPv6, ויש להן תפקיד בהעברת מידע בין מחשבים באותו מתחם שידור. המנגנון של השמה אוטומטית של כתובות מקומיות נקרא stateless address autoconfiguration והוא משתמש בשילוב של הקידומת של תת-הרשת FE80::/10 עם כתובת ה־MAC של ממשק הרשת כדי ליצור כתובת ייחודית (unique address). למרות שכתובת ה־MAC אמורה להבטיח את הייחודיות של הכתובת, הפרוטוקול משתמש ב־Neighbor Discovery Protocol לוודא שאין מחשב נוסף עם אותה הכתובת.

אגב, יש להבדיל בין Link-local address ל־Site-local addresses. האחרונות מקבילות לכתובות פרטיות ב־NAT, ולמרות שהן קיבלו את הטווח FEC0::/10 ב־IPv6 הן נאסרו לשימוש ב־. עם זאת, יש מימושים של הפרוטוקול שעדיין כוללים את טווח הכתובות הנ"ל.

כמו כן, פרוטוקול IPv6 מגדיר טווחי כתובות לכל־נתיב () ולרב־נתיב (multicast) שאותן ניתן להקצות בנוסף לכתובת המקומית ולכתובת הגלובלית. מנגנונים אלה קיימים גם ב-IPv4 אך הם אופציונליים (עם זאת הם קיימים בהרבה יישומים של הפרוטוקול). בנוסף לכך, ב-IPv6 לא קיים שידור broadcast. ב-IPv4 הכתובת 255.255.255.255 משמשת ככתובת broadcast. כשחבילה נשלחת עם כתובת היעד הנ"ל היא מועברת לשכבת הקישוריות עם FF:FF:FF:FF:FF:FF, שהיא כתובת ה-broadcast של כל המחשבים במתחם השידור של המחשב השולח. שידור כזה מגדיל את העומס על כל המחשבים ברשת המקומית, ויוצר עומסים גם במקטעי גשרים (bridges או switches) בהם אין צורך אמיתי במידע. עם זאת, כל מחשב ברשת IPv6 מקבל באופן אוטומטי את ff02::1 כך שחבילה שנשלחת לכתובת זו תגיע לכל המחשבים ברשת המקומית.

===אבטחה===
כחלק מפיתוח פרוטוקול IPv6 הוגדרו מספר מנגנונים שנועדו לתת מענה לאיומי אבטחה שלא היו קיימים בעת הגדרת פרוטוקול IPv4 (כלומר, לפני שרשת האינטרנט נפתחה לציבור הרחב). פרוטוקול IPSec היה מנדטורי עד ל־, אך הוא הפך לאופציונלי בעקבות פיתוח של פרוטוקולים מתחרים כמו Secure Shell ו־TLS. התמיכה ב-IPSec מובנית אל תוך מנגנון ה-Extension Header, ולכן היא מותאמת היטב לפרוטוקול. IPSec הוגדר כפרוטוקול אופציונלי גם עבור IPv4, אך השימוש בו לא רב ביחס לפרוטוקולים המתחרים. פרוטוקול אבטחה נוסף שפותח עבור IPv6 הוא Secure Neighbor Discovery Protocol . גם הפרוטוקול הזה הוא אופציונלי ונועד לענות על איומי אבטחה בפרוטוקול Neighbor Discovery Protocol , אשר דומים לאלה שקיימים בפרוטוקול ARP ב-IPv4.

== מערכות התומכות ב-IPv6 ==
IPv6 נתמך בצורה מקיפה במספר רב של מערכות.

מערכות הפעלה שונות תומכות בIPv6 , וביניהן:
* לינוקס - IPv6 נתמך באופן מלא מזה מספר גרסאות לאחור, ומותקן ופועל כברירת מחדל כחלק מהליבה. מומלץ להשתמש בגרסה מאוחרת או שווה ל-2.6.
* Windows XP - תומכת ב-IPv6 מחבילת שירות 2 (service pack 2), אך יש צורך להתקינו באופן ידני.
* Windows Vista, וכל הגרסאות המאוחרות יותר כגון Windows 11 תומכות ב-IPv6 באופן מובנה, והוא מותקן ופעיל בהן כברירת מחדל.

נתבים:
* סיסקו - IPv6 נתמך מגרסת IOS <span lang="he" dir="ltr">12.0(22)</span><ref></ref>.

== פעילות בישראל ==
פורום IPv6 הישראלי פועל כסניף הישראלי של פורום IPv6 העולמי. מטרת הסניף היא לקדם את השימוש ב-IPv6 בישראל, בכל המגזרים, וכן להפיץ מידע ולסייע לגופים המעוניינים להשתמש ב-IPv6. חברי הסניף הם מתנדבים המגיעים מהתעשייה, האקדמיה, מערכת הביטחון ועוד. הסניף מקיים מדי שנה יום עיון, במסגרת הכנס השנתי של איגוד האינטרנט הישראלי. הנואמים בכנס הם בדרך כלל חברי הסניף עצמם, וכן נציגים של הפורום העולמי.

בשנת 2013, ספק אינטרנט ישראלי אחד, 018, אפשר ללקוחותיו שימוש ב-IPv6.

שינוי מגמה חיובי ניכר בסיומה של שנת 2018 חל לאחר שאיגוד האינטרנט הישראלי הוביל פרסום של מסמך מדיניות אשר הציג את חשיבות המעבר ל-IPv6, ניתח את הסוגיה הן ביחס לתהליכים מקבילים בעולם והן ביחס לאתגרים הייחודיים במדינת ישראל, והציג שורה של המלצות לקידום הפריסה בישראל. המסמך גם היווה תשתית לכנס (17 יולי 2018) שבו השתתפו נציגי ICANN ו-RIPE והשתתפו בו גם מרבית הנוגעים לדבר במדינת ישראל – כולל מנכ"ל משרד התקשורת, שבעקבות המסמך והכנס, אימץ את מרבית ההמלצות והודיע כי משרד התקשורת רואה בפריסת IPv6 בישראל מנוע צמיחה ויעד לאומי.

בשנת 2019 אחוז התפוצה של IPv6 בישראל עמד על כ-4.23%, בעוד בלגיה הייתה המובילה העולמית עם יותר מ-46%, ולאחריה ארצות הברית עם יותר מ-40%, הודו עם יותר מ-36%, ויוון עם יותר מ-32%.

ב-2023 עמדה התפוצה של IPv6 בישראל על כ-52%.

== ראו גם ==
* מונחים ברשת מחשבים
* TCP/IP
* כתובת IP
* IP
* IPv4
* Localhost
== קישורים חיצוניים ==

* [https://www.ip6.org.il/ אתר העוקב אחר מעבר ארגונים ישראלים לפרוטוקול ipv6]
*[http://www.ipv6.org פורום IPv6 העולמי]
*
* [http://www.potaroo.net האתר של ג'ף יוסטון]
* Tony Hain, [http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_8-3/ipv4.html A Pragmatic Report on IPv4 Address Space Consumption], The Internet Protocol Journal by Cisco Systems, Volume 8, Number 3, September 2005
* [https://web.archive.org/web/20101123201740/http://isoc.org.il/conf2009/sessions.php?session_id=20 מושב IPv6 במסגרת כנס איגוד האינטרנט – 2009]
*מסמך מדיניות שנכתב על ידי איגוד האינטרנט הישראלי (ע"ר) - [https://www.isoc.org.il/research/policy-papers/ipv6-policy סטטוס מימוש פרוטוקול IPv6 בישראל אל מול העולם, והמלצות על מדיניות ותהליכים אשר נדרשים להטמעתו במרחב האינטרנט הישראלי.]

== הערות שוליים ==

קטגוריה:תקנים בתקשורת מחשבים