معرفی چند ابزار کمک کننده برای کار در ترمینال
https://torhamdev.hashnode.dev/terminal-tools-for-programming-monsters
https://torhamdev.hashnode.dev/terminal-tools-for-programming-monsters
TorhamDev 👨💻
Terminal tools for programming monsters
Well, well, today I am going to introduce some tools. Some tools for programming monsters like you! Today's tools are for terminal lovers and programmers who like the terminal like me 🥸.
Maybe you know and use the tools I'm about to introduce, but w...
Maybe you know and use the tools I'm about to introduce, but w...
یه ویدیو در مورد ویدیو
از codecهای مختلف تا چطور برای خودمون Youtube بسازیم.
https://www.youtube.com/watch?v=ztYNir9BDoY
از codecهای مختلف تا چطور برای خودمون Youtube بسازیم.
https://www.youtube.com/watch?v=ztYNir9BDoY
YouTube
This is a video about video
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What's in an MP4 file? How is video encoded? Who would build their own video streaming platform? And why?? Oh gosh why.
00:00 I'd…
Support me on Patreon or GitHub: https://fasterthanli.me/donate
What's in an MP4 file? How is video encoded? Who would build their own video streaming platform? And why?? Oh gosh why.
00:00 I'd…
👍1
#توصیهها
سعی کنید علمتون رو ترویج کنید. با فقط برای خودتون نگه داشتن یه مزایایی به دست میاد ولی ترویجش هم مزایایی داره.
+ برای بقیه مفید باشید: خودتون چقدر از Stackoverflow استفاده کردید؟ چقدر فیلم های جادی رو دیدید؟ (به طول مثال) همین چنل رو چرا دنبال میکنید؟
+ برای آینده شغلیتون مفید باشید: اگر به دیگران چیزی یاد بدید، برای خودتون برند شخصی ساختید. یه جور نمونه کار میشه. براتون موقعیتهای شغلی (نه فقط معلمی) هم میاره به زودی.
+ برای مشکلات بعدیتون مفید باشید: شاید به نظر بیاد احتمالش کمه ولی برای من که کم پیش نیومده که به یکی از مطالب قبلیم سر بزنم و مرور کنم. ما فراموشکاریم و اتفاقا چیزایی که یه زمانی خودتون نوشتیم بهترین چیز برای یادآوری اون موضوعه. چون به زبون خودمونه. به چشم جزوه نوشتن بهش نگاه کنید.
اما چه کارهایی میتونی بکنیم؟ اینا نظرات منه، قطعا میشه بهتر و کامل ترش کرد. استقبال میکنم.
+ وبلاگ فارسی بنویسید. مخاطب وبلاگ فارسی معمولا کسیه که دوست داره شروع کنه ولی زبان انگلیسی بلد نیست که مطالب انگلیسی رو بخونه یا کلا با موضوع آشنا نیست که خودش سرچ کرده باشه.
+ وبلاگ انگلیسی بنویسید. اگر زبانتون خوبه یا حتی معمولیه چرا که نه، اینطوری به آدمای بیشتری کمک کردید. اگر هرکس به زبان مادری خودش درس میداد چقدر علم ما کمتر بود؟
+ فیلم ضبط کنید.
+ منتور/معلم میتونید بشید.
+ تو فرومهای پرسش و پاسخ فعال باشید: اینجا خیلی باید دقت کرد. فروم منظورم جاییه که توش سوالات به درد بخور پرسیده میشه و جوابهای به درد بخوری داده میشه و برای عموم قابل دسترسی و سرچه.
نمونه چیزایی که مناسب نیست:
− گروههای تلگرام/هر پیامرسانی. چون چیزی که توش نوشته میشه برای همیشه دفن میشه و کسی که اون مشکل رو داره نمیتونه از اون وقتی که گذاشتید استفاده کنه.
− فروم/گروههای خیلی مبتدیها. معمولا اینجور جاها سوالات از «چطوری درایور گرافیک نصب کنم» یا «ویندوزم بالا نمیاد چیکار کنم» فراتر نمیره. جدا از اینکه مشکل قبلیو داره، عملا وقتتون رو دارید تلف میکنید چون اون شخص میتونه سرچ کنه یا اگه خیلی از موضوع پرته بره پیش تعمیرکاری که شغلش همینه.
− جایی که برای دیدن جواب سوال یا خلاصه خوندن موضوعات نیاز به اکانت داره. اینطوری هم احتمالا توی موتور جست و جو قابل دیدن نیست هم وقت آدما تلف میشه.
در کل به نظرم بهترین جا همون خانواده stack exchange ئه، هرچند که یه مقدار شروعش ترسناکه چون وقتشون و کیفیت کار براشون مهمه پس مهربون نیستن.
به عنوان نکته آخر هم سعی کنید تو کمک به دیگران، همچنان برای وقت خودتون ارزش قائل باشید و کار تکراری نکنید. اگر جواب سوالی جایی هست، شما دوباره جواب ندید. اگر با سرچ میتونه به مطالب قابل قبولی برسه شما دوباره وقت نگذارید.
شاید بگید تو همین چنل میذاری هم که مشخصات بالا رو نداره. کاملا درسته. احتمالا به یه تعداد توصیه که برسیم جمع و جور کنم و تبدیل به وبلاگ کنم که برای همه قابل دیدن باشه.
سعی کنید علمتون رو ترویج کنید. با فقط برای خودتون نگه داشتن یه مزایایی به دست میاد ولی ترویجش هم مزایایی داره.
+ برای بقیه مفید باشید: خودتون چقدر از Stackoverflow استفاده کردید؟ چقدر فیلم های جادی رو دیدید؟ (به طول مثال) همین چنل رو چرا دنبال میکنید؟
+ برای آینده شغلیتون مفید باشید: اگر به دیگران چیزی یاد بدید، برای خودتون برند شخصی ساختید. یه جور نمونه کار میشه. براتون موقعیتهای شغلی (نه فقط معلمی) هم میاره به زودی.
+ برای مشکلات بعدیتون مفید باشید: شاید به نظر بیاد احتمالش کمه ولی برای من که کم پیش نیومده که به یکی از مطالب قبلیم سر بزنم و مرور کنم. ما فراموشکاریم و اتفاقا چیزایی که یه زمانی خودتون نوشتیم بهترین چیز برای یادآوری اون موضوعه. چون به زبون خودمونه. به چشم جزوه نوشتن بهش نگاه کنید.
اما چه کارهایی میتونی بکنیم؟ اینا نظرات منه، قطعا میشه بهتر و کامل ترش کرد. استقبال میکنم.
+ وبلاگ فارسی بنویسید. مخاطب وبلاگ فارسی معمولا کسیه که دوست داره شروع کنه ولی زبان انگلیسی بلد نیست که مطالب انگلیسی رو بخونه یا کلا با موضوع آشنا نیست که خودش سرچ کرده باشه.
+ وبلاگ انگلیسی بنویسید. اگر زبانتون خوبه یا حتی معمولیه چرا که نه، اینطوری به آدمای بیشتری کمک کردید. اگر هرکس به زبان مادری خودش درس میداد چقدر علم ما کمتر بود؟
+ فیلم ضبط کنید.
+ منتور/معلم میتونید بشید.
+ تو فرومهای پرسش و پاسخ فعال باشید: اینجا خیلی باید دقت کرد. فروم منظورم جاییه که توش سوالات به درد بخور پرسیده میشه و جوابهای به درد بخوری داده میشه و برای عموم قابل دسترسی و سرچه.
نمونه چیزایی که مناسب نیست:
− گروههای تلگرام/هر پیامرسانی. چون چیزی که توش نوشته میشه برای همیشه دفن میشه و کسی که اون مشکل رو داره نمیتونه از اون وقتی که گذاشتید استفاده کنه.
− فروم/گروههای خیلی مبتدیها. معمولا اینجور جاها سوالات از «چطوری درایور گرافیک نصب کنم» یا «ویندوزم بالا نمیاد چیکار کنم» فراتر نمیره. جدا از اینکه مشکل قبلیو داره، عملا وقتتون رو دارید تلف میکنید چون اون شخص میتونه سرچ کنه یا اگه خیلی از موضوع پرته بره پیش تعمیرکاری که شغلش همینه.
− جایی که برای دیدن جواب سوال یا خلاصه خوندن موضوعات نیاز به اکانت داره. اینطوری هم احتمالا توی موتور جست و جو قابل دیدن نیست هم وقت آدما تلف میشه.
در کل به نظرم بهترین جا همون خانواده stack exchange ئه، هرچند که یه مقدار شروعش ترسناکه چون وقتشون و کیفیت کار براشون مهمه پس مهربون نیستن.
به عنوان نکته آخر هم سعی کنید تو کمک به دیگران، همچنان برای وقت خودتون ارزش قائل باشید و کار تکراری نکنید. اگر جواب سوالی جایی هست، شما دوباره جواب ندید. اگر با سرچ میتونه به مطالب قابل قبولی برسه شما دوباره وقت نگذارید.
شاید بگید تو همین چنل میذاری هم که مشخصات بالا رو نداره. کاملا درسته. احتمالا به یه تعداد توصیه که برسیم جمع و جور کنم و تبدیل به وبلاگ کنم که برای همه قابل دیدن باشه.
👍22
#توصیهها
مدام ایده بزنید
یه عبارتی به کار میبرن به اسم «ماهیچهی خلاقیت»، تعبیرش هم اینه که هرچی بیشتر از خلاقیتتون استفاده کنید مثل یه ماهیچه قویتر میشه. برای برنامهنویسی هم به این ماهیچه نیاز داریم که بتونیم مسائل رو حل کنیم. البته منظورم این نیست که باید خودمون ایده بزنیم که یه درخت باینری رو برعکس کنیم، برای همین کارهای روتین هم نیاز به ایده داریم.
حالا چطوری ایده بزنیم و تمرین خلاقیت کنیم؟
+ برای مسائل زندگی که حل نشده راه حل بدید، بعدا اگر حل شدن با راه حل خودتون مقایسه کنید و ایده بگیرید.
مثلا دارن دوربین زیر نمایشگر میسازن، فکر کنید که چطوری چنین چیزی ممکنه؟ یا چرا ممکن نیست؟
+ برای مسائلی که حل شدن ایده بزنید و خودتون سعی کنید اصلاحش کنید. بعد برید راه حل فعلی رو هم ببینید و اگه با مال شما تفاوت داشت به دلیل تفاوتش فکر کنید.
مثلا صفجه نمایش لمسی میسازن، بهش فکر کنید چطوری ساخته شده؟ بعد برید سرچ کنید که واقعا چطوری ساخته شده.
یا مثلا یه برنامه هست که مصرف جوهر پرینتر رو کم میکنه، اول فکر کنید چطوری کار میکنه بعد برید سرچ کنید.
+ مسائل زندگی خودتون رو به شکل متفاوتی حل کنید. مثلا اگه همیشه از یه مسیر میرید خونه، به مسیرهای جایگزین و نقاط ضعف و قوت هر کدوم فکر کنید. حتی چند تا مسیر رو امتحان کنید.
+ ایدهها رو ترکیب کنید. یه ایده که جای دیگه جواب داده یا نداده رو سعی کنید جای دیگه به کار بگیرید.
مثلا موتور هواپیما ایده کارکردش چطوریه؟ آیا میشه تو ماشین لباسشویی هم استفاده بشه؟ تو ابمیوه گیری چی؟ اگه بخواد بشه چطوری میشه؟ اگه قطعا نمیشه چرا قطعا نمیشه؟
+ ایدههاتون رو هرچند احمقانه با دیگران به اشتراک بگذارید. خیلی اوقات ایدههای خوب از پردازش یه ایده بد توسط یه آدم دیگه به وجود میاد. اینطوری خودتون هم یاد میگیرید ایده هاتون رو بهتر کنید.
+ اگه اعتماد به نفس ندارید، به این فکر کنید که قرار نیست این ایدهها به کسی آسیب بزنه. نهایتا تو ذهن خودتون یا برای کارهای خودتونه. همچنین به این فکر کنید که ایدههای خوبی که الان استفاده میشه هم یه زمانی تست نشده و آزمایشی بوده.
این دو تا مطلب هم جالب بودن. مثلا ایدهی ۶ کلاه رو مطرح کرده بود یکیش.
https://www.verywellmind.com/how-to-boost-your-creativity-2795046
https://www.gcu.edu/blog/performing-arts-digital-arts/7-tips-developing-creativity
مدام ایده بزنید
یه عبارتی به کار میبرن به اسم «ماهیچهی خلاقیت»، تعبیرش هم اینه که هرچی بیشتر از خلاقیتتون استفاده کنید مثل یه ماهیچه قویتر میشه. برای برنامهنویسی هم به این ماهیچه نیاز داریم که بتونیم مسائل رو حل کنیم. البته منظورم این نیست که باید خودمون ایده بزنیم که یه درخت باینری رو برعکس کنیم، برای همین کارهای روتین هم نیاز به ایده داریم.
حالا چطوری ایده بزنیم و تمرین خلاقیت کنیم؟
+ برای مسائل زندگی که حل نشده راه حل بدید، بعدا اگر حل شدن با راه حل خودتون مقایسه کنید و ایده بگیرید.
مثلا دارن دوربین زیر نمایشگر میسازن، فکر کنید که چطوری چنین چیزی ممکنه؟ یا چرا ممکن نیست؟
+ برای مسائلی که حل شدن ایده بزنید و خودتون سعی کنید اصلاحش کنید. بعد برید راه حل فعلی رو هم ببینید و اگه با مال شما تفاوت داشت به دلیل تفاوتش فکر کنید.
مثلا صفجه نمایش لمسی میسازن، بهش فکر کنید چطوری ساخته شده؟ بعد برید سرچ کنید که واقعا چطوری ساخته شده.
یا مثلا یه برنامه هست که مصرف جوهر پرینتر رو کم میکنه، اول فکر کنید چطوری کار میکنه بعد برید سرچ کنید.
+ مسائل زندگی خودتون رو به شکل متفاوتی حل کنید. مثلا اگه همیشه از یه مسیر میرید خونه، به مسیرهای جایگزین و نقاط ضعف و قوت هر کدوم فکر کنید. حتی چند تا مسیر رو امتحان کنید.
+ ایدهها رو ترکیب کنید. یه ایده که جای دیگه جواب داده یا نداده رو سعی کنید جای دیگه به کار بگیرید.
مثلا موتور هواپیما ایده کارکردش چطوریه؟ آیا میشه تو ماشین لباسشویی هم استفاده بشه؟ تو ابمیوه گیری چی؟ اگه بخواد بشه چطوری میشه؟ اگه قطعا نمیشه چرا قطعا نمیشه؟
+ ایدههاتون رو هرچند احمقانه با دیگران به اشتراک بگذارید. خیلی اوقات ایدههای خوب از پردازش یه ایده بد توسط یه آدم دیگه به وجود میاد. اینطوری خودتون هم یاد میگیرید ایده هاتون رو بهتر کنید.
+ اگه اعتماد به نفس ندارید، به این فکر کنید که قرار نیست این ایدهها به کسی آسیب بزنه. نهایتا تو ذهن خودتون یا برای کارهای خودتونه. همچنین به این فکر کنید که ایدههای خوبی که الان استفاده میشه هم یه زمانی تست نشده و آزمایشی بوده.
این دو تا مطلب هم جالب بودن. مثلا ایدهی ۶ کلاه رو مطرح کرده بود یکیش.
https://www.verywellmind.com/how-to-boost-your-creativity-2795046
https://www.gcu.edu/blog/performing-arts-digital-arts/7-tips-developing-creativity
Verywell Mind
17 Fun Ways to Boost Your Creativity
Creativity is a skill you can improve with practice. If you want to boost creativity, try these 17 fun and useful strategies to improve your creative skills.
👍10
نوشتههای ترمینالی
یک کتابخانهی گو که کمک میکنه structured concurrency داشته باشیم و کدهای موازی خواناتری بزنیم: https://github.com/sourcegraph/conc ایده کلی هم اینه که برای خودمون go routine پرتاب نکنیم، چون مشخص نیست این روتینه که تموم میشه کارش و اگه ارور بده چی؟ بلکه…
اصلا structured concurrency چی هست؟
اول بگم structured programming چیه:
دایجسترا یه مقاله معروف داره که میگه go-to خوب نیست. و اشاره میکنه که این امکان اگرچه نهایتا لازمه، اما استفاده مستقیم و کنترل نشده ازش باعث خطا و ناخوانایی کد میشه. پس بیایم استفاده نکنیم. که موفق هم شد و الان گوتو خیلی کمرنگه. اما چیکار کنیم؟ برنامه نویسی ساختارمند تعریف شد که یکسری کارها که قبلاً میکردیم رو دیگه اجازه نداریم بکنیم، مثلا به وسط یک تابع jump نمیکنیم. به جاش امکانات دیگری مثل for/if داریم که اگرچه در نهایت از go-to استفاده میکنن ولی به شکل کنترل شده.
حالا همین ماجرا برای threadها هم هست. تو مطلب پایین میگه عبارت go توی کولنگ که یه go routine رو به شما همروند اجرا میکنه ولی کلا منظور اجرای یک threadئه.
داستان هم اینه که میگه اینم تا حدی مشکلات go-to رو داره مثلا دیباگ سخت، ناخوانایی کد و ...
پیشنهادش هم اینه بیایم در استفاده از همروندی خودمون رو محدود کنیم، چطوری؟ با تعریف ساختارهای جدید.
اینم تعبیر جالبی بود:
Structured concurrency” refers to a way to structure async computations so that child operations are guaranteed to complete before their parents, just the way a function is guaranteed to complete before its caller.
مطلب طولانی و جذاب که بیشتر روی گو متمرکزه
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
با تمرکز روی کاتلین:
https://www.thedevtavern.com/blog/posts/structured-concurrency-explained/
با تمرکز روی C++:
https://ericniebler.com/2020/11/08/structured-concurrency/
با دید async/await
https://oleb.net/2021/structured-concurrency/
اول بگم structured programming چیه:
دایجسترا یه مقاله معروف داره که میگه go-to خوب نیست. و اشاره میکنه که این امکان اگرچه نهایتا لازمه، اما استفاده مستقیم و کنترل نشده ازش باعث خطا و ناخوانایی کد میشه. پس بیایم استفاده نکنیم. که موفق هم شد و الان گوتو خیلی کمرنگه. اما چیکار کنیم؟ برنامه نویسی ساختارمند تعریف شد که یکسری کارها که قبلاً میکردیم رو دیگه اجازه نداریم بکنیم، مثلا به وسط یک تابع jump نمیکنیم. به جاش امکانات دیگری مثل for/if داریم که اگرچه در نهایت از go-to استفاده میکنن ولی به شکل کنترل شده.
حالا همین ماجرا برای threadها هم هست. تو مطلب پایین میگه عبارت go توی کولنگ که یه go routine رو به شما همروند اجرا میکنه ولی کلا منظور اجرای یک threadئه.
داستان هم اینه که میگه اینم تا حدی مشکلات go-to رو داره مثلا دیباگ سخت، ناخوانایی کد و ...
پیشنهادش هم اینه بیایم در استفاده از همروندی خودمون رو محدود کنیم، چطوری؟ با تعریف ساختارهای جدید.
اینم تعبیر جالبی بود:
Structured concurrency” refers to a way to structure async computations so that child operations are guaranteed to complete before their parents, just the way a function is guaranteed to complete before its caller.
مطلب طولانی و جذاب که بیشتر روی گو متمرکزه
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
با تمرکز روی کاتلین:
https://www.thedevtavern.com/blog/posts/structured-concurrency-explained/
با تمرکز روی C++:
https://ericniebler.com/2020/11/08/structured-concurrency/
با دید async/await
https://oleb.net/2021/structured-concurrency/
vorpus.org
Notes on structured concurrency, or: Go statement considered harmful — njs blog
👍4
Forwarded from La3tKnight (Amir.)
👍3
دریافتی:
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود یا بالاتر.)
این ابزار قرار نیست به شما بگه که چند درصد صعود یا نزول خواهیم داشت، فقط قراره بگه که الآن زمان خریده یا فروش.
با استفاده از این ابزار میتونید توی هر هفته زمانهایی که قیمت بیتکوین صعود میکنه، از صعودش سود بگیرید و از نزول ارزش سرمایهتون جلوگیری کنید. درواقع برای نوسانگیری هفتگی قیمت قراره بشه ازش استفاده کرد.
افرادی که دوس دارن از نزول قیمت در بازار فیوچرز هم سود بگیرن میتونن از این ابزار استفاده کنن و از نزول قیمت هم استفاده کنن.
لطفاً به ما کمک کنید که چطوری این ابزار رو ارزشگذاری کنیم.
لطف کنید گوگل فرم زیر رو پر کنید، خیلی کوتاهه و زمانی ازتون نمیگیره:
https://forms.gle/74bXkNmW9CEYQi8G6
خیلی ممنونم بابت وقتی که میذارید. اگر بتونید این متن رو بهاشتراک بذارید خیلی ممنونتون میشم که اطلاعات بیشتری به دستمون برسه.
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود یا بالاتر.)
این ابزار قرار نیست به شما بگه که چند درصد صعود یا نزول خواهیم داشت، فقط قراره بگه که الآن زمان خریده یا فروش.
با استفاده از این ابزار میتونید توی هر هفته زمانهایی که قیمت بیتکوین صعود میکنه، از صعودش سود بگیرید و از نزول ارزش سرمایهتون جلوگیری کنید. درواقع برای نوسانگیری هفتگی قیمت قراره بشه ازش استفاده کرد.
افرادی که دوس دارن از نزول قیمت در بازار فیوچرز هم سود بگیرن میتونن از این ابزار استفاده کنن و از نزول قیمت هم استفاده کنن.
لطفاً به ما کمک کنید که چطوری این ابزار رو ارزشگذاری کنیم.
لطف کنید گوگل فرم زیر رو پر کنید، خیلی کوتاهه و زمانی ازتون نمیگیره:
https://forms.gle/74bXkNmW9CEYQi8G6
خیلی ممنونم بابت وقتی که میذارید. اگر بتونید این متن رو بهاشتراک بذارید خیلی ممنونتون میشم که اطلاعات بیشتری به دستمون برسه.
Google Docs
پیشنهاد قیمت برای محصول
فرض کنید که یه ابزاری وجود داره که با دقت ۸۰ درصد میتونه این رو پیشبینی کنه که قیمت بیتکوین در هفتهی آتی صعودیه یا نزولی. (به صورت دقیقتر اینو پیشبینی میکنه که میانگین وزندار قیمت روزانهی بیتکوین از آخرین قیمت روزانهی بیتکوین پایینتر خواهد بود…
⚡4🔥1
اموزش استفاده از xfce terminal به عنوان drop down terminal
https://averagelinuxuser.com/xfce-drop-down-terminal/
https://averagelinuxuser.com/xfce-drop-down-terminal/
Average Linux User
XFCE drop-down terminal
Did you know that XFCE terminal supports the drop-down mode? In this post, you will learn to enable the XFCE drop-down terminal. A drop-down terminal is very useful to have quick and easy access to a terminal.
🔥1
Forwarded from @yegor256 news (yegor256)
It took me 13 years and 3 months to grow my StackOverflow account from zero to 100k reputation points, which I reached today! This blog post, which I wrote five years ago, explains why I believe StackOverflow is a mandatory tool for any programmer. I still think so and I still use it, asking a few questions every month. Big thanks to SO!
ارسالی:
برای ساخت cron tab میتونید از این سایت استفاده کنید:
https://crontab.guru/
همچنین یکسری مثال هم اینجا داره:
https://crontab.guru/examples.html
برای ساخت cron tab میتونید از این سایت استفاده کنید:
https://crontab.guru/
همچنین یکسری مثال هم اینجا داره:
https://crontab.guru/examples.html
❤1
سوال که میخوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟
اگر وقت ندارید:
+ ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل
+ ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه
+ اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه
۱- اگر فرض کنیم زیرساخت اینترنت سرجاشه و پکتها به مقصد خودشون میرسن، ممکنه که یک نهاد سرویس های مهم دنیای اینترنت رو مجبور کنه که خدمت ندن. مثلا دولت آمریکا میتونه گوگل و cloudflare و aws رو مجبور کنه که کلا خدمت ندن. اگر در مورد اهمیت cloudflare و aws نمیدونید، به طور خلاصه اولی باعث میشه سروری که میخواید رو پیدا کنید و دومی جاییه که سروره توش قرار داره. پس اینطوری «تجربه ما از اینترنت» دچار مشکل میشه. در واقع اینطوری یکسری سایتها بالا میان مثلا soft98.ir احتمالا باز میشه بدون مشکل ولی گوگل و اسپاتیفای و ... احتمالا باز نمیشن.
البته من نمیدونم شرکتها زیر بار این سرویس ندادن زوری برن یا نه، داستانهای قانونی داره، ولی مثل قضیهی تحریمهای ایران بهش فکر کنید.
۲- اگر فرض کنیم که زیرساخت بخواد دچار مشکل بشه، در بدترین حالت یه کشور میتونه کل مرزهای اینترنتیش رو ببنده، در نتیجه سرورهاییش که داخل کشوره از بیرون قابل دیدن نیستند. مثلا سرور گوگل اگر داخل کشور ایالات متحده باشه، برای ما قابل دیدن و دسترسی نیست. اما سرویسهای بزرگ از قبل سرورهاشون رو در سراسر جهان پخش کردن برای افزایش کیفیت دسترسی کاربران جهان.
حالا اینکه یک برنامه که سرورهای اجرا کننده ش سراسر جهان هستن، با نبودن یکسری از سرورها چطوری کنار میاد رو ما نمیدونیم ولی قاعدتا انتظار میره چون بخش بزرگیش هنوز در دسترس هست به شکل مناسب کار کنه.
ضمنا اینکه زیرساخت اینترنت طوری چیده شده باشه که قابلیت بستن مرزها رو داشته باشه هم نیاز به ماهها تلاش داره و در واقع باید از قبل آماده این شده باشن. عبارتی که تو ایران براش استفاده میشد «شبکه ملی اطلاعات» بود که مرزهای اینترنتی رو دقیق میکرد. البته این مزیتی که داره اینه که ارتباطات داخل به داخل سریعتر و با کیفیت بهتر انجام میشه پس همه جای دنیا توجیه داره انجام دادنش.
۳- یکسری خدمات وجود داره که توسط سازمان های غیرانتفاعی داده میشه که برای کارکرد اینترنت بهش احتیاج داریم، مثلا تخصیص ip و تخصیص domain name ها (توسط ICANN). این سازمان توی آمریکا بوده از بدو تاسیس ولی از سال ۲۰۱۶ آمریکا گفته کنترلی روش ندارم و حتی مجمعشون توی سال ۲۰۱۴ هم توی برزیل برگزار شده.
اگرچه احتمالش کمه ولی حالا در صورتی که اینا از کار بیفتن، برای کوتاه مدت دچار مشکل میشیم ولی جایگزینهایی هم دارن که اگرچه الان «به رسمیت شناخته نمیشن» ولی با از کار افتادن اینا، به زودی اونا جایگزین میشن. (Alternative DNS root)
اگه خواستید بیشتر بخونید کلمهای که باید دنبالش بگردید internet shutdown و internet governance هست.
منابع:
https://en.wikipedia.org/wiki/Internet_governance
https://arstechnica.com/tech-policy/2014/03/in-sudden-announcement-us-to-give-up-control-of-dns-root-zone/
https://en.wikipedia.org/wiki/Alternative_DNS_root
تو این مطلب برادرم البرز هم بهم همفکری داد.
اگر وقت ندارید:
+ ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل
+ ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه
+ اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه
۱- اگر فرض کنیم زیرساخت اینترنت سرجاشه و پکتها به مقصد خودشون میرسن، ممکنه که یک نهاد سرویس های مهم دنیای اینترنت رو مجبور کنه که خدمت ندن. مثلا دولت آمریکا میتونه گوگل و cloudflare و aws رو مجبور کنه که کلا خدمت ندن. اگر در مورد اهمیت cloudflare و aws نمیدونید، به طور خلاصه اولی باعث میشه سروری که میخواید رو پیدا کنید و دومی جاییه که سروره توش قرار داره. پس اینطوری «تجربه ما از اینترنت» دچار مشکل میشه. در واقع اینطوری یکسری سایتها بالا میان مثلا soft98.ir احتمالا باز میشه بدون مشکل ولی گوگل و اسپاتیفای و ... احتمالا باز نمیشن.
البته من نمیدونم شرکتها زیر بار این سرویس ندادن زوری برن یا نه، داستانهای قانونی داره، ولی مثل قضیهی تحریمهای ایران بهش فکر کنید.
۲- اگر فرض کنیم که زیرساخت بخواد دچار مشکل بشه، در بدترین حالت یه کشور میتونه کل مرزهای اینترنتیش رو ببنده، در نتیجه سرورهاییش که داخل کشوره از بیرون قابل دیدن نیستند. مثلا سرور گوگل اگر داخل کشور ایالات متحده باشه، برای ما قابل دیدن و دسترسی نیست. اما سرویسهای بزرگ از قبل سرورهاشون رو در سراسر جهان پخش کردن برای افزایش کیفیت دسترسی کاربران جهان.
حالا اینکه یک برنامه که سرورهای اجرا کننده ش سراسر جهان هستن، با نبودن یکسری از سرورها چطوری کنار میاد رو ما نمیدونیم ولی قاعدتا انتظار میره چون بخش بزرگیش هنوز در دسترس هست به شکل مناسب کار کنه.
ضمنا اینکه زیرساخت اینترنت طوری چیده شده باشه که قابلیت بستن مرزها رو داشته باشه هم نیاز به ماهها تلاش داره و در واقع باید از قبل آماده این شده باشن. عبارتی که تو ایران براش استفاده میشد «شبکه ملی اطلاعات» بود که مرزهای اینترنتی رو دقیق میکرد. البته این مزیتی که داره اینه که ارتباطات داخل به داخل سریعتر و با کیفیت بهتر انجام میشه پس همه جای دنیا توجیه داره انجام دادنش.
۳- یکسری خدمات وجود داره که توسط سازمان های غیرانتفاعی داده میشه که برای کارکرد اینترنت بهش احتیاج داریم، مثلا تخصیص ip و تخصیص domain name ها (توسط ICANN). این سازمان توی آمریکا بوده از بدو تاسیس ولی از سال ۲۰۱۶ آمریکا گفته کنترلی روش ندارم و حتی مجمعشون توی سال ۲۰۱۴ هم توی برزیل برگزار شده.
اگرچه احتمالش کمه ولی حالا در صورتی که اینا از کار بیفتن، برای کوتاه مدت دچار مشکل میشیم ولی جایگزینهایی هم دارن که اگرچه الان «به رسمیت شناخته نمیشن» ولی با از کار افتادن اینا، به زودی اونا جایگزین میشن. (Alternative DNS root)
اگه خواستید بیشتر بخونید کلمهای که باید دنبالش بگردید internet shutdown و internet governance هست.
منابع:
https://en.wikipedia.org/wiki/Internet_governance
https://arstechnica.com/tech-policy/2014/03/in-sudden-announcement-us-to-give-up-control-of-dns-root-zone/
https://en.wikipedia.org/wiki/Alternative_DNS_root
تو این مطلب برادرم البرز هم بهم همفکری داد.
Wikipedia
Internet governance
development and application of shared principles, norms, rules, decision-making procedures, and programs that shape the evolution and use of the Internet
👍9❤1
نوشتههای ترمینالی
سوال که میخوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟ اگر وقت ندارید: + ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل + ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه + اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه…
اگه بخوام یه مقدار فنی تر در مورد ICANN توضیح بدم، طبق چیزی که خوندم این موارد رو میتونم بگم:
در مورد ICANN: سازمانی جهانی به اسم ICANN وجود داره. کارش اینه که top level domain ها رو تخصیص بده به کسایی که میخوان. حالا این تخصیص دادن چطوریه؟ میشه اینطوری گفت که یه دفتری هست که داخلش یادداشت میشه top level domain دست کیه و این دست ICANN هست. اما خب این دفتر تو زندگی ما چه تاثیری داره؟ جواب تو DNS record هاست.
در مورد DNS: زمانی که «آدرس» یک سایت رو وارد مرورگر میکنیم، این آدرس (یا در واقع URL) به تنهایی برای رسیدن به سروری که سایت روی اون قرار داره کافی نیست، بلکه ما لازم داریم ip اون سرور رو داشته باشیم. حالا یکسری Domain Name Server هستن که به ما امکان تبدیل URL به IP رو میدن. (به این خدمت هم میگن Domain Name Service یا DNS). در واقع یکسری سرور هستن که توشون یه Map از اسم سایت به ادرس ip اون سایت هست.
البته قضیه به این سادگی نیست. آدرس یک سایت یک سلسلهمراتبی داره که بالاترین قسمت سلسلهمراتب، تیکه آخر آدرسه. یعنی چی؟ مثلا www.soft98.ir رو در نظر بگیرید. آدرس از چند تا کلمه تشکیل شده که با نقطه به هم وصل شدن. آخرین اسم میشه top level domain (یا TLD). اینها یکسریشون مال کشورها هستن به اسم country code TLD و یکسری هم عمومی هستند (generic TLD). لیستشون رو اینجا و اینجا میتونید ببینید.
قسمت بعدی سلسله مراتب domain name میشه مثلا soft98. برای خرید soft98 هم رفتن پیش یکی که کنترل دامنههای ir رو داره (به اسم irnic تو ایران) و ازش این دامنه رو برای مدتی *اجاره* کردن. قسمت آخر هم میشه sub-domain مثل www که خیلی اهمیتی نداره اینجا برامون.
حالا خدمت DNS هم متناسب با این سلسله مراتب صورت میگیره. یعنی شما وقتی دنبال آدرس www.soft98.ir میگردی، باید اول بری دنبال کسی که «همه چیو میدونه» بعد اون میگه من همه چیو نمیدونم، برو پیش کسی که همه چی در مورد ir ها رو میدونه و به همین ترتیب میرسی به کسی که «ip اون url رو میدونه».
کسی که همه چی رو میدونه اسمش هست root dns server. پس اگه میزنیم soft98.ir، اول درخواستمون میره به یکی از root dns server ها، و اون خودش ادرس soft98.ir رو نداره ولی میگه .ir ها رو فلانی می دونه. بعد میریم پیش .ir dns server که اون باز خودش نمیدونه، بلکه میگه میدونم همیشه آدرس soft98.ir رو این dns server داره. پس ما میریم سراغ اون dns server و پیدا میشه.
البته برای اینکه این روال اینقدر کند نباشه یه سری cache هم وجود داره که اون بحث دیگریست.
در مورد root DNS server: اصطلاحا گفته میشه که ۱۳ تا ip وجود داره که مربوط به ۱۳ تا کامپیوتر تو سراسر جهان. اما در واقع این ۱۳ تا ایپی بین تعداد زیادی سرور (حدود ۶۰۰ تا) share شده. اینکه چطوری یه ip بین سیستمها share میشه هم با anycast ممکنه و جزئیات فنی داره. جالبه بدونید ۳ تا از اینا هم توی تهران هستند.
حالا ICANN یکی از این ۱۳ تا ip رو مدیریت میکنه. اما ۱۲ تای دیگهش رو داده به سازمان های مختلف مثل ناسا و versign و ... مدیریت میکنن اما نهایتا اطلاعات یکسانی دارن.
اگر یکی از این ۶۰۰ تا سرور داون بشه چی میشه؟ اگرچه که بعیده ولی هیچ اتفاق بدی نمیافته. یه سرور دیگه که با همون ip خدمات میده کار اونی که داون شده رو هم انجام میده.
اگر یکی از ip ها نابود بشه چی میشه؟ اینم خیلی بعیده. اصولا ip نابود نمیشه ولی فرض کنیم یکی از سازمانها کلا خاموش کنه همه سرورها رو. باز مشکلی ایجاد نمیشه. نکته اینه که توی نرمافزارهای dns resolver (یعنی کسایی که از dns خدمت میگیرن) ادرس این ۱۳ تا (یا حداقل دو تاش) وجود داره پس از یه ای پی دیگه سرویس میگیریم.
در مورد cache: واقعیت اینه که سیستم ما به ندرت ممکنه این روالی که گفتم رو پیمایش کنه و در واقع ما از یک خدمت گیرنده میانی استفاده میکنیم. قضیه به این شکله که یک سری dns cache وجود دارن که آدمها و سازمانها و کشورها میتونن درست کنن و کاربرا به اینا وصل بشن و هر درخواستی که دارن رو به cache بگن و اون بره خودش ادرس درست رو پیدا کنه و سیو کنه و به کاربرا هم جواب بده. مثلا گوگل و cloudflare از این کش ها دارن. تامین کننده های اینترنت هم معمولا دارن چون وقتی کسی به اینترنت وصل میشه، ادرس dnsی رو نداره و اونا بهش توصیه میکنن که از dns خودشون استفاده کنه. (ISP default DNS server)
در مورد ICANN: سازمانی جهانی به اسم ICANN وجود داره. کارش اینه که top level domain ها رو تخصیص بده به کسایی که میخوان. حالا این تخصیص دادن چطوریه؟ میشه اینطوری گفت که یه دفتری هست که داخلش یادداشت میشه top level domain دست کیه و این دست ICANN هست. اما خب این دفتر تو زندگی ما چه تاثیری داره؟ جواب تو DNS record هاست.
در مورد DNS: زمانی که «آدرس» یک سایت رو وارد مرورگر میکنیم، این آدرس (یا در واقع URL) به تنهایی برای رسیدن به سروری که سایت روی اون قرار داره کافی نیست، بلکه ما لازم داریم ip اون سرور رو داشته باشیم. حالا یکسری Domain Name Server هستن که به ما امکان تبدیل URL به IP رو میدن. (به این خدمت هم میگن Domain Name Service یا DNS). در واقع یکسری سرور هستن که توشون یه Map از اسم سایت به ادرس ip اون سایت هست.
البته قضیه به این سادگی نیست. آدرس یک سایت یک سلسلهمراتبی داره که بالاترین قسمت سلسلهمراتب، تیکه آخر آدرسه. یعنی چی؟ مثلا www.soft98.ir رو در نظر بگیرید. آدرس از چند تا کلمه تشکیل شده که با نقطه به هم وصل شدن. آخرین اسم میشه top level domain (یا TLD). اینها یکسریشون مال کشورها هستن به اسم country code TLD و یکسری هم عمومی هستند (generic TLD). لیستشون رو اینجا و اینجا میتونید ببینید.
قسمت بعدی سلسله مراتب domain name میشه مثلا soft98. برای خرید soft98 هم رفتن پیش یکی که کنترل دامنههای ir رو داره (به اسم irnic تو ایران) و ازش این دامنه رو برای مدتی *اجاره* کردن. قسمت آخر هم میشه sub-domain مثل www که خیلی اهمیتی نداره اینجا برامون.
حالا خدمت DNS هم متناسب با این سلسله مراتب صورت میگیره. یعنی شما وقتی دنبال آدرس www.soft98.ir میگردی، باید اول بری دنبال کسی که «همه چیو میدونه» بعد اون میگه من همه چیو نمیدونم، برو پیش کسی که همه چی در مورد ir ها رو میدونه و به همین ترتیب میرسی به کسی که «ip اون url رو میدونه».
کسی که همه چی رو میدونه اسمش هست root dns server. پس اگه میزنیم soft98.ir، اول درخواستمون میره به یکی از root dns server ها، و اون خودش ادرس soft98.ir رو نداره ولی میگه .ir ها رو فلانی می دونه. بعد میریم پیش .ir dns server که اون باز خودش نمیدونه، بلکه میگه میدونم همیشه آدرس soft98.ir رو این dns server داره. پس ما میریم سراغ اون dns server و پیدا میشه.
البته برای اینکه این روال اینقدر کند نباشه یه سری cache هم وجود داره که اون بحث دیگریست.
در مورد root DNS server: اصطلاحا گفته میشه که ۱۳ تا ip وجود داره که مربوط به ۱۳ تا کامپیوتر تو سراسر جهان. اما در واقع این ۱۳ تا ایپی بین تعداد زیادی سرور (حدود ۶۰۰ تا) share شده. اینکه چطوری یه ip بین سیستمها share میشه هم با anycast ممکنه و جزئیات فنی داره. جالبه بدونید ۳ تا از اینا هم توی تهران هستند.
حالا ICANN یکی از این ۱۳ تا ip رو مدیریت میکنه. اما ۱۲ تای دیگهش رو داده به سازمان های مختلف مثل ناسا و versign و ... مدیریت میکنن اما نهایتا اطلاعات یکسانی دارن.
اگر یکی از این ۶۰۰ تا سرور داون بشه چی میشه؟ اگرچه که بعیده ولی هیچ اتفاق بدی نمیافته. یه سرور دیگه که با همون ip خدمات میده کار اونی که داون شده رو هم انجام میده.
اگر یکی از ip ها نابود بشه چی میشه؟ اینم خیلی بعیده. اصولا ip نابود نمیشه ولی فرض کنیم یکی از سازمانها کلا خاموش کنه همه سرورها رو. باز مشکلی ایجاد نمیشه. نکته اینه که توی نرمافزارهای dns resolver (یعنی کسایی که از dns خدمت میگیرن) ادرس این ۱۳ تا (یا حداقل دو تاش) وجود داره پس از یه ای پی دیگه سرویس میگیریم.
در مورد cache: واقعیت اینه که سیستم ما به ندرت ممکنه این روالی که گفتم رو پیمایش کنه و در واقع ما از یک خدمت گیرنده میانی استفاده میکنیم. قضیه به این شکله که یک سری dns cache وجود دارن که آدمها و سازمانها و کشورها میتونن درست کنن و کاربرا به اینا وصل بشن و هر درخواستی که دارن رو به cache بگن و اون بره خودش ادرس درست رو پیدا کنه و سیو کنه و به کاربرا هم جواب بده. مثلا گوگل و cloudflare از این کش ها دارن. تامین کننده های اینترنت هم معمولا دارن چون وقتی کسی به اینترنت وصل میشه، ادرس dnsی رو نداره و اونا بهش توصیه میکنن که از dns خودشون استفاده کنه. (ISP default DNS server)
Wikipedia
Country code top-level domain
A country code top-level domain (ccTLD) is an Internet top-level domain generally used or reserved for a country, sovereign state, or dependent territory identified with a country code. All ASCII ccTLD identifiers are two letters long, and all two-letter…
👍7
نوشتههای ترمینالی
سوال که میخوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟ اگر وقت ندارید: + ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل + ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه + اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه…
کار ICANN: (اینطوری که من متوجه شدم) اینه که قرارداد میبنده با مسئول top level domain ها مثلا مسئول دامنهی ir تو ایران. اینطوریه که: ما که ICANN باشیم، تو رو به عنوان DNS این ناحیه معرفی میکنیم، در عوض تو هم اطلاعات درستی به بقیه بده (طبق پروتوکلها). همچنین اینکه سینک شدن بین اطلاعات 13 تا DNS Root server به شکل مناسب انجام بشه.
(اینکه یه دامنه که فروخته میشه رو هم ICANN زیر نظر داره یا نه رو متوجه نشدم.)
اگر ICANN نباشه: اگر در یک لحظه ICANN و اون ۱۲ تا سازمان دیگه همه تصمیم بگیرن اطلاعات ندن یا اطلاعات غلط بدن، در لحظات اول که مشکلی پیش نمیاد چون ما از کشهای دیگه استفاده میکنیم. اما به مرور کشها اطلاعات غلط رو از TLD های فیک که به جای TLD های اصلی بهشون وصل میشیم میگیرن و به مشکل میخوریم.
اما چند تا راه حل هست: برنامههایی که به IPشون وصل میشن برای اتصال همچنان (احتمالا) کار خواهند کرد. مثلا تلگرام احتمالا به مشکلی نخوره. یکسری alternative root dns هم وجود دارن که الان هم فعال هستند و خارج از سلسله مراتب اصلی dns خدمت میدن، اونها اگرچه الان توصیه شده نیستند و خطرناک شناسایی میشن ولی به هر حال پتانسیل جایگزینی رو دارن. alternative بودن و فرقشون با dns server های مرسوم (که به عنوان cache بهشون اشاره کردم) اینه که اطلاعات خودشون رو عینا با اطلاعات سلسله مراتب بروز نگه نمیدارن. مثلا یک سری TLD دیگه (که رسمی نیستن) رو هم اینا دارن. الان هم میتونید dns serverتون رو به یکی از اینا تغییر بدید یا حتی بدتر، شاید ISPتون خودش به شکل پیشفرض به یه alternate راهنماییتون کنه.
نظر شخصی من: بیاید به گذشته نگاه کنیم. اتفاقای که افتاده و جنگها و ماجراها هیچوقت تهدیدی برای اینترنت نبودن و همیشه تلاش شده اینترنت هیچ نقطهی single point of failure نداشته باشه. بلکه نامتمرکز باشه و حتی در مواقع بحرانی که لینکهای زیادی قطع شدن یا تعدادی هکر توی سامانه وجود داره یا یه قسمت بزرگی از شبکه قطع میشه هم فعالیت کنه.
با فرض اینکه کاملا قطع بشه اینترنت: باقی جهان (جدا از ایالت متحده) هم منابع زیادی دارن هم برای شهروندانشون ارزش قائلن و درک میکنن چه ضرر هنگفتی داره قطع بودن اینترنت پس طولی نمیکشه که مشکلاتی که هست رو حل میکنن، مثل کانفیگ کردن دوباره روترها و عوض کردن مسیرها یا بازگردوندن دیتای name serverها.
در نهایت بزرگترین چیزی که باید نگرانش باشیم همینه که سرویسها به ما سرویس ندن (که الانم اکثرا نمیدن) مثلا گوگل دیگه سرویس نده و اطلاعاتمون رو هم از دسترس خارج بشه، تا اینکه زیرساخت اینترنت به هم بریزه.
مطالب تکمیلی:
در مورد ICANN و IANA بیشتر بخونید:
https://www.itblock.sg/post/it-support-101-what-is-icann-and-iana
تعریف ICANN از زبان خودشون:
ICANN's mission is to help ensure a stable, secure, and unified global Internet. To reach another person on the Internet, you need to type an address – a name or a number – into your computer or other device. That address must be unique so computers know where to find each other. ICANN helps coordinate and support these unique identifiers across the world. ICANN was formed in 1998 as a nonprofit public benefit corporation with a community of participants from all over the world.
و مطلب کاملش: https://www.icann.org/resources/pages/what-2012-02-25-en
در مورد root DNS serverها: https://www.cloudflare.com/learning/dns/glossary/dns-root-server/
در مورد TLDها: https://www.cloudflare.com/learning/dns/top-level-domain/
نحوه عوض کردن DNS server پیشفرض و دلایل این کار: https://www.howtogeek.com/664608/why-you-shouldnt-be-using-your-isps-default-dns-server/
چند انتخاب DNS server: https://www.lifewire.com/free-and-public-dns-servers-2626062
امکان مشاهدهی موقعیت مکانی و اطلاعات این ۶۰۰ تا root dns server و ایپی هر کدوم: https://root-servers.org/
(اینکه یه دامنه که فروخته میشه رو هم ICANN زیر نظر داره یا نه رو متوجه نشدم.)
اگر ICANN نباشه: اگر در یک لحظه ICANN و اون ۱۲ تا سازمان دیگه همه تصمیم بگیرن اطلاعات ندن یا اطلاعات غلط بدن، در لحظات اول که مشکلی پیش نمیاد چون ما از کشهای دیگه استفاده میکنیم. اما به مرور کشها اطلاعات غلط رو از TLD های فیک که به جای TLD های اصلی بهشون وصل میشیم میگیرن و به مشکل میخوریم.
اما چند تا راه حل هست: برنامههایی که به IPشون وصل میشن برای اتصال همچنان (احتمالا) کار خواهند کرد. مثلا تلگرام احتمالا به مشکلی نخوره. یکسری alternative root dns هم وجود دارن که الان هم فعال هستند و خارج از سلسله مراتب اصلی dns خدمت میدن، اونها اگرچه الان توصیه شده نیستند و خطرناک شناسایی میشن ولی به هر حال پتانسیل جایگزینی رو دارن. alternative بودن و فرقشون با dns server های مرسوم (که به عنوان cache بهشون اشاره کردم) اینه که اطلاعات خودشون رو عینا با اطلاعات سلسله مراتب بروز نگه نمیدارن. مثلا یک سری TLD دیگه (که رسمی نیستن) رو هم اینا دارن. الان هم میتونید dns serverتون رو به یکی از اینا تغییر بدید یا حتی بدتر، شاید ISPتون خودش به شکل پیشفرض به یه alternate راهنماییتون کنه.
نظر شخصی من: بیاید به گذشته نگاه کنیم. اتفاقای که افتاده و جنگها و ماجراها هیچوقت تهدیدی برای اینترنت نبودن و همیشه تلاش شده اینترنت هیچ نقطهی single point of failure نداشته باشه. بلکه نامتمرکز باشه و حتی در مواقع بحرانی که لینکهای زیادی قطع شدن یا تعدادی هکر توی سامانه وجود داره یا یه قسمت بزرگی از شبکه قطع میشه هم فعالیت کنه.
با فرض اینکه کاملا قطع بشه اینترنت: باقی جهان (جدا از ایالت متحده) هم منابع زیادی دارن هم برای شهروندانشون ارزش قائلن و درک میکنن چه ضرر هنگفتی داره قطع بودن اینترنت پس طولی نمیکشه که مشکلاتی که هست رو حل میکنن، مثل کانفیگ کردن دوباره روترها و عوض کردن مسیرها یا بازگردوندن دیتای name serverها.
در نهایت بزرگترین چیزی که باید نگرانش باشیم همینه که سرویسها به ما سرویس ندن (که الانم اکثرا نمیدن) مثلا گوگل دیگه سرویس نده و اطلاعاتمون رو هم از دسترس خارج بشه، تا اینکه زیرساخت اینترنت به هم بریزه.
مطالب تکمیلی:
در مورد ICANN و IANA بیشتر بخونید:
https://www.itblock.sg/post/it-support-101-what-is-icann-and-iana
تعریف ICANN از زبان خودشون:
ICANN's mission is to help ensure a stable, secure, and unified global Internet. To reach another person on the Internet, you need to type an address – a name or a number – into your computer or other device. That address must be unique so computers know where to find each other. ICANN helps coordinate and support these unique identifiers across the world. ICANN was formed in 1998 as a nonprofit public benefit corporation with a community of participants from all over the world.
و مطلب کاملش: https://www.icann.org/resources/pages/what-2012-02-25-en
در مورد root DNS serverها: https://www.cloudflare.com/learning/dns/glossary/dns-root-server/
در مورد TLDها: https://www.cloudflare.com/learning/dns/top-level-domain/
نحوه عوض کردن DNS server پیشفرض و دلایل این کار: https://www.howtogeek.com/664608/why-you-shouldnt-be-using-your-isps-default-dns-server/
چند انتخاب DNS server: https://www.lifewire.com/free-and-public-dns-servers-2626062
امکان مشاهدهی موقعیت مکانی و اطلاعات این ۶۰۰ تا root dns server و ایپی هر کدوم: https://root-servers.org/
IT Block Pte. Ltd.
IT Support 101: What is ICANN and IANA?
Ever wonder who controls the naming of websites and IP addresses on the world? Google.com or Amazon.com or Facebook.com, websites with which we are familiar. If you have ever tried to log in to your router, the IP address 192.168.1.1 or 192.168.1.254 might…
👍8
نوشتههای ترمینالی
کار ICANN: (اینطوری که من متوجه شدم) اینه که قرارداد میبنده با مسئول top level domain ها مثلا مسئول دامنهی ir تو ایران. اینطوریه که: ما که ICANN باشیم، تو رو به عنوان DNS این ناحیه معرفی میکنیم، در عوض تو هم اطلاعات درستی به بقیه بده (طبق پروتوکلها). همچنین…
افزون بر موارد بالا، یه داستان «۷ کلید» هم وجود داره که شبیه فیلم و قصهها تعریفش میکنن ولی در واقع چنین چیزی نیست.
چیزی که گفته میشه اینه که: ۷ تا کلید دست ۷ نفر از سراسر جهانه که اگه همگی جمع بشن و این کلیدها رو کنار هم بذارن، میتونن اینترنت رو خاموش کنن! از اونجایی که واقعا ۷ تا کلید وجود داره و جزوی از ICANN هم هستن ممکنه فکر کنیم که داستان درستیه. ولی در واقع نیست.
چیزی که درستشه: یه جامعهای داره این ICANN که بینشون رای گیری میشه و یه ۷ نفر معتمد انتخاب میشن. اینا هم یه کارتی دارن که در یه مراسمی بهشون اهدا میشه. با این کارتها هم میتونن یه کار مهمی رو انجام بدن ولی اون قطع و وصل اینترنت نیست.
بلکه این کلید reboot کردن DNSSEC های root dns server هاست.
حالا چرا لازمه این اتفاق بیفته و آیا تا حالا اتفاق افتاده؟ اگه یه رخنه امنیتی تو سیستمها به وجود بیاد و private key ها لو بره یا حمله تروریستی اتفاق بیفته اینا کلیدها رو به کمک این ریست میکنن.
حالا اگر لازم شد، ۵ تا از این ۷ نفر باید تو یه محل خاص (که توی آمریکاس) برن و و گذاشتن کلیدهاشون عملیات رو اجرا کنن.
عبارتهای انگلیسی از متن مطلب خود ICANN میارم:
there are no keys that cause the Internet to function (or not to function).
the keys being talked about belong to just one single part of the Internet – the mechanism for authenticating the data in the domain name system (DNS), called DNSSEC. It is based on a hierarchy of cryptographic keys starting at the root of the DNS. The cryptographic keys for the root of the DNS are managed by ICANN.
The Internet consists of many different systems, and the DNS is just one of them. Controlling one aspect of the Internet, such as DNSSEC, does not lead to full control of other aspects.
حالا چرا اینقدر امنیت این سیستم مهمه؟
با کمک DNSSEC اون جواب dns ای که میگیرید اعتبارسنجی میشه که درست و معتبره. حالا هر dns server به کمک dns server بالا مرتبهاش اعتبار سنجی میشه اما root dns server ها که تحت کنترل ICANN هستن چطوری اعتبارسنجی میشن؟ یه private key وجود داره که این امنیتش خیلی مهمه برامون. اگه کسی داشته باشتش میتونه dns record نامعتبر خودشو با این رمز کنه و ما هم نمیفهمیم و یه هک از نوع dns hijacking خیلی زیبا اتفاق میافته.
اینا هم حساب کردن اگه هر کدوم از آدما ۵ درصد خطاکار باشه، یه جوری سامانه رو چیدن که نیاز به چند آدم معتمد باشه، احتمال اینکه چیزی مورد خرابکاری قرار بگیره یک در ملیونه.
منابع:
https://www.icann.org/en/blogs/details/the-problem-with-the-seven-keys-13-2-2017-en
و این خلاصه مصاحبه از Paul Kane
https://www.theguardian.com/technology/2010/jul/27/internet-key
اینم مطلب خیلی خوب بود:
https://www.cloudflare.com/dns/dnssec/root-signing-ceremony/
چیزی که گفته میشه اینه که: ۷ تا کلید دست ۷ نفر از سراسر جهانه که اگه همگی جمع بشن و این کلیدها رو کنار هم بذارن، میتونن اینترنت رو خاموش کنن! از اونجایی که واقعا ۷ تا کلید وجود داره و جزوی از ICANN هم هستن ممکنه فکر کنیم که داستان درستیه. ولی در واقع نیست.
چیزی که درستشه: یه جامعهای داره این ICANN که بینشون رای گیری میشه و یه ۷ نفر معتمد انتخاب میشن. اینا هم یه کارتی دارن که در یه مراسمی بهشون اهدا میشه. با این کارتها هم میتونن یه کار مهمی رو انجام بدن ولی اون قطع و وصل اینترنت نیست.
بلکه این کلید reboot کردن DNSSEC های root dns server هاست.
حالا چرا لازمه این اتفاق بیفته و آیا تا حالا اتفاق افتاده؟ اگه یه رخنه امنیتی تو سیستمها به وجود بیاد و private key ها لو بره یا حمله تروریستی اتفاق بیفته اینا کلیدها رو به کمک این ریست میکنن.
حالا اگر لازم شد، ۵ تا از این ۷ نفر باید تو یه محل خاص (که توی آمریکاس) برن و و گذاشتن کلیدهاشون عملیات رو اجرا کنن.
عبارتهای انگلیسی از متن مطلب خود ICANN میارم:
there are no keys that cause the Internet to function (or not to function).
the keys being talked about belong to just one single part of the Internet – the mechanism for authenticating the data in the domain name system (DNS), called DNSSEC. It is based on a hierarchy of cryptographic keys starting at the root of the DNS. The cryptographic keys for the root of the DNS are managed by ICANN.
The Internet consists of many different systems, and the DNS is just one of them. Controlling one aspect of the Internet, such as DNSSEC, does not lead to full control of other aspects.
حالا چرا اینقدر امنیت این سیستم مهمه؟
با کمک DNSSEC اون جواب dns ای که میگیرید اعتبارسنجی میشه که درست و معتبره. حالا هر dns server به کمک dns server بالا مرتبهاش اعتبار سنجی میشه اما root dns server ها که تحت کنترل ICANN هستن چطوری اعتبارسنجی میشن؟ یه private key وجود داره که این امنیتش خیلی مهمه برامون. اگه کسی داشته باشتش میتونه dns record نامعتبر خودشو با این رمز کنه و ما هم نمیفهمیم و یه هک از نوع dns hijacking خیلی زیبا اتفاق میافته.
اینا هم حساب کردن اگه هر کدوم از آدما ۵ درصد خطاکار باشه، یه جوری سامانه رو چیدن که نیاز به چند آدم معتمد باشه، احتمال اینکه چیزی مورد خرابکاری قرار بگیره یک در ملیونه.
منابع:
https://www.icann.org/en/blogs/details/the-problem-with-the-seven-keys-13-2-2017-en
و این خلاصه مصاحبه از Paul Kane
https://www.theguardian.com/technology/2010/jul/27/internet-key
اینم مطلب خیلی خوب بود:
https://www.cloudflare.com/dns/dnssec/root-signing-ceremony/
ICANN
The Problem with "The Seven Keys"
There are no keys that cause the Internet to function (or not to function) [2017].
👍2👏2
ارسالی:
برای مصاحبه فنی، این سایته خوبه و دید خیلی خوبی میدی چیا رو احتمالا بپرسن
https://www.fullstack.cafe/
برای مصاحبه فنی، این سایته خوبه و دید خیلی خوبی میدی چیا رو احتمالا بپرسن
https://www.fullstack.cafe/
👍1