חשבתי להעלות פוסט בנושא גישה למחשב מרוחק דרך IPV6 עקב אילוץ שנוצר לי, חסר חומר כתוב בעברית ברשת ואולי דרך הפתרון שלי, גם אחרים יוכלו להפיק תועלת,
כמו שהתחברתי ל- RDP , באותו אופן ניתן להתחבר לכל שירות אחר, או לכל התקן אחר כמובן דרך הפורטים שלו.
במשך שנים הייתי מחובר בקו ADSL דרך בזק והספק בזק בין-לאומי והתחברתי מהמשרד למחשב שלי בבית דרך Remote Desktop.
כיוון שלא הייתה לי כתובת ציבורית קבועה, השתמשתי בשירותי Dynamic DNS שסיפקו לי רשומה קבועה שתמיד קיבלה את ערך כתובת ה- IP שלי בבית, פשוט וקל.
עם פריסת הסיבים בשכונת מגורי, בחרתי להצטרף לסיבים של בזק ואכן קיבלתי את המהירות המובטחת, בזק הפכו להיות התשתית וגם הספק לפי הרפורמה החדשה במשרד התקשורת.
לאחר המעבר גיליתי כי החיבור מרחוק הפסיק לעבוד.
כשבדקתי את העניין, גיליתי כי הפורט הפתוח (TCP 3389) בנתב בזק הפסיק לעבוד.
בדקתי את ההגדרות מספר פעמים ואף הגדרתי שוב את הפורט, אך ללא הצלחה - בסופו של דבר התקשרתי לבזק, ודרך השיחה עם הנציג שם הבנתי את פשר העניין.
מתברר כי בזק עובדים בשיטת NAT כפול או בשמה הידוע CGNAT/CGN (Carrier Gateway NAT)
בקצרה אספר, כי ספקים חדשים רבים וגם קיימים החלו לעבוד בשיטה זו , עקב מצוקת הכתובות הציבוריות מסוג IPV4.
בשיטה זו הלקוחות אינם מקבלים כתובות ציבוריות כבעבר, אלא כתובות מתוך טווח פרטי של הספק, ואילו כלפי האינטרנט הם מיוצגים ע"י כתובת ציבורית ששייכת לספק.
כך כתובת אחת משרתת מספר רב של לקוחות, וכולם יוצאים דרך הכתובת הזאת לאינטרנט.
לשיטה זו יש השלכות רבות על תחום הקישוריות לאינטרנט ועל עיקרון end-to-end.
כיצד לבדוק באופן פשוט כי אנו מוגדרים עם CGNAT?
דרך ממשק הנתב ( 10.0.0.138 בנתבי בזק) ניתן לראות כתובת חיצונית מהטווח הפרטי, אך בבדיקה דרך אתר כמו whatismyip.com נראה כתובת שונה (מצ"ב צילום מסך)
לענייננו, לא ניתן לפתוח פורטים מבחוץ כבעבר, לא עבור גישה למחשב מבחוץ, לא עבור מצלמות אבטחה, ולא עבור כל דבר שדורש פתיחת פורטים בעצם.
כיוון שהכתובת הציבורית דרכה הלקוח מיוצג באינטרנט איננה משויכת אליו ביחס אחד-לאחד, לא ניתן להפנות פורטים דרך הנתב כבעבר.
הפתרון היחיד שבזק הציעו לי - תשלום קבוע של כ- 15 ₪ בחודש על כתובת ציבורית קבועה כפי שהייתה לי בעבר.
כיוון שכך היה המצב, החלטתי לפעול באופן אחר, שמתי לב כי כעת אני מקבל דבר נוסף שלא היה לי קודם לכן, כתובת מסוג IPV6.
ניתן לבדוק האם אנו מקבלים כתובת IPV6 באתר כמו https://test-ipv6.com/
החלטתי לנסות לעבוד דרך הכתובת IPV6 כשהמטרה בעצם היא להתחבר מרחוק למחשב שלי בבית כבעבר, וכמובן בחינם.
חלק 1 - אפשור גישה מבחוץ פנימה דרך הנתב.
--------------------------------------------------------
כשעובדים עם IPV6 אין צורך בהפניית פורטים כבעבר, כיוון שכאן אין הפניה מכתובת חיצונית לכתובת פנימית.
הכתובת הפנימית והחיצונית הן זהות – אותה כתובת חיצונית שתראו באתר https://test-ipv6.com/ תופיע גם ככתובת בכרטיס הרשת ותוכלו לראותה עם פקודת ipconfig.
למרות שאין צורך בהפניה, כן יש צורך בפתיחת הפורט בחומת האש של הנתב על מנת להגיע לתחנה.
אך למחשב אין כתובת פנימית קבועה, זוהי אותה כתובת חיצונית שהינה דינאמית ומתקבלת מהספק, אורך חייה מוגבל והיא משתנה בכל חיבור מחדש לאינטרנט.
הפתרון שמצאתי – פתיחת הגישה לטווחים הציבוריים של IPV6, כך הפורט יוכל לעבור דרך חומת האש בכל כתובת ציבורית שאקבל, וכיוון שהיא מוגדרת גם בתחנה, הגישה תהיה פתוחה (מצ"ב צילום מסך)
נושא נוסף שמצאתי בדרך – בזק חוסמים את הגישה בפורט ברירת המחדל של RDP 3389 מטעמי אבטחה, לכן שיניתי את הפורט במחשב היעד לפורט אחר (דרך ה- Registry)
ניתן לבדוק אם הפורט פתוח בעזרת האתר הבא - https://websistent.com/tools/open-port-check-tool/ (לא לשכוח להזין את כתובת ה- IPV6).
חלק 2 – גישה בקישוריות IPV6 מהמשרד:
--------------------------------------------------
אצלי במשרד לא עובדים עם IPV6, אלא עדיין עובדים עם כתובות מסוג IPV4 שאינן מסוגלות לתקשר עם כתובות IPV6 ללא תיווך כלשהו.
הפתרון שמצאתי – שירות הברוקר החינמי https://app.route48.org
השירות הזה מספק קישוריות IPV6 למחשבים שאין להם ע"י Tunnels, הבשורה המפרידה אותו מהשאר – תמיכה בקליינטים של wireguard ו- zerotier היודעים לעבוד מאחורי NAT ארגוני.
הגדרתי tunnel מסוג zerotier עבור כל מחשב שממנו ארצה להתחבר, מכיוון שכל tunnel מאפשר גישה למזהה בודד (מצ"ב צילום מסך).
לא אידיאלי, אבל עובד באופן סטאטי מסוג זה ונתן לי פתרון למחשב בעבודה, את ה- tunnels בחרתי להעביר דרך איחוד האמירויות, השרת היחיד באיזור המזרח התיכון.
חלק 3 – Dynamic DNS:
-------------------------------
גילתי כי שירות ה- Dynamic DNS שאיתו כבר עבדתי Dynu.net תומך ב- IPV6.
אך אליה וקוץ בה, כשעובדים דרך ברוקר מהסוג שהוזכר לעיל ( wireguard ו- zerotier), התשובה המתקבלת היא ב- IPV4 כברירת מחדל ולא ב- IPV6.
פניתי אליהם עם הנושא והם הציעו לי פתרון ע"י יצירת רשומה נוספת כתת-דומיין לרשומה הקיימת שעונה ב- IPV6 בלבד.
גם ללא תשובתם מצאתי דרך להתחבר לכתובת ה- IPV6 שלי ע"י בניית סקריפט powershell קטן שפונה ישירות לכתובת IPV6 של הרשומה הדינאמית.
מצ"ב הסקריפט, תוכלו לשים בו את הערכים שלכם (רשומה דינמאית, שם משתמש וסיסמה ופורט לחיבור rdp), הסקריפט יוצר רשומה ב- credential manager ע"מ להתחבר ללא בקשה לסיסמה,
ומוחק אותה לאחר 30 שניות כדי לא להוסיף רשומה בכל חיבור למערכת.
קוד: בחירת הכל
ipconfig /flushdns
$data = Resolve-DnsName -Type AAAA my-hostname.dynu.net
$Server = $data.IpAddress
$User="rdp_user_name"
$Password="rdp_password"
cmdkey /generic:TERMSRV/$Server /user:$User /pass:$Password
mstsc /f /v:[$Server]:3390
timeout /t 30
cmdkey /del:TERMSRV/$Server