تاسو ټنل پورته کوئ، ټنل د سرچینې انټرفیس په توګه کاروئ او fe80::1 ته ping کوئ، خو هېڅ نه راګرځي۔ دا هغه firewall قاعده نه ده چې تاسو هېر کړې وي۔ Link-local پتې یوازې په هماغه یو لینک کې معنا لري چې جوړه شوې ده، او روټ شوی VPN هغه لینک نه دی۔ د لرې روټر fe80::1 په لرې LAN برخه کې دی; تاسو په بلې برخې کې یو هپ لرې ناست یاست، او IPv6 کې هېڅ داسې میکانیزم نشته چې روټر link-local پاکټونه مخته ولېږي۔

د fe80 مخپېښه یوه ساحه بیانوي، نه یوه لړ

Link-local unicast fe80::/10 دی، او تعریف کوونکې ځانګړنه شمېره نه ده، بلکې ساحه ده۔ پته یوازې په یو لینک کې معتبره ده، او هر انټرفیس له خپل پېژندونکي څخه یوه جوړوي، نو ځکه دوه بې اړیکې ماشینونه په دوو بې اړیکو شبکو کې دواړه کولای شي پرته له کوم ټکر fe80::1 ته ځواب ووايي۔ مخپېښه په اصل کې وایي «په یو څه لینک کې»; لینک خپله له شرایطو راځي۔

په یو هوسټ کې هغه شرایط زون، یا scope ID دی چې د سلنې نښې وروسته یې ورزیاتوئ: په Linux کې fe80::1%eth0، په Windows او د انټرفیس شاخصونو ښودونکو وسایلو کې fe80::1%3 یا fe80::1%12۔ کرنل پته د انټرفیس شاخص سره یوځای حل کوي او بیا لېږي۔ که زون لرې کړئ، منزل مبهم کیږي، نو سټیک د برخې غوراوي لپاره هېڅ لاره نه لري۔

ولې روټ شوی ټنل نشي یې رسولای

روټ شوی VPN یو له نقطې تر نقطې انټرفیس دی چې خپلې پتې لېږي، معمولاً د ټنل دننه د unique-local یا شخصي IPv6 فضا /64۔ لرې LAN جلا لینک دی چې د ټنل پای د تاسو په استازیتوب روټینګ او فوروارډینګ کولو سره ورته رسي۔ دا دوه جلا برخې دي، نو د یوې پته د بلې لپاره سمه منزل نه ده۔

د فوروارډینګ قاعده په معیار کې په څرګنده لیکل شوې ده، نه ستاسو د کلاینټ ځانګړتیا: روټران link-local سرچینه یا منزل لرونکي پاکټونه نه فوروارډ کوي۔ نو ځکه پاکټ حتی هغه وخت مري چې د روټ جدول سم ښکاري۔ د fe80::/64 لپاره ټنل ته د روټ زیاتولو سره، معیار ته درناوی کوونکی سټیک یا یې ردوي یا یې مني او هر سمون لرونکی پاکټ غورځوي: د منزل ساحه وایي «یوازې دا لینک»، او وتونکی انټرفیس هغه لینک نه دی۔

د ګاونډیانو موندنه هماغه پوله پیاوړې کوي۔ هوسټونه link-local راتلونکي هپونه د ګاونډي غوښتنې له لارې حل کوي چې د 255 هپ حد سره د لینک ساحې multicast ته لېږل کیږي، نو روټران کولای شي هر هغه څه رد کړي چې فوروارډ شي۔ دا د ټنل له لارې کارول به د لرې برخې لپاره د موندنې پروکسي کول وي، چې بله خولۍ اغوستې Layer 2 پل دی۔

دوهمه، ډېره ارامه ناکامي شته، او هغه هغو کسانو ته نیول کیږي چې سره له دې روټ جبراً لګوي: زون۔ هر زون چې په سیمه ییز ډول ولیکئ، د ټنل انټرفیس نوموي، په داسې حال کې چې هغه پته چې غواړئ د لرې LAN انټرفیس سره تړلې ده۔ دواړه هېڅکله نه سمون خوري، نو پاکټ نشي کولای په لرې پای کې سم انټرفیس ته واوړي۔

په عمل کې ناکامي څنګه ښکاري

د ساحې تېروتنې لپاره د وسیلې تولید د روټینګ یا firewall تېروتنې په څېر لوستل کیږي، او همدا لامل دی چې خلک نیمه ورځ په غلط پوړ کې تېروي۔

What you runWhat you seeWhat it means
ping fe80::1 with no zoneInvalid argument on Linux, or a transmit failure on WindowsThe stack cannot pick an interface for an ambiguous destination
ping -6 -I tun0 fe80::1Destination unreachable, or a silent timeoutThe address is not on the tunnel link, so there is nothing on-link to answer
ssh user@fe80::1 after the tunnel is upHangs, then no route to hostThe SYN never left the machine in a deliverable form; the server logs nothing
ip -6 neigh show dev tun0Empty tableNo neighbor entry can exist for a link-local host that is not on this link
fe80::/64 inside AllowedIPs or route-ipv6Config accepted, traffic still droppedThe tunnel carried the packet; the receiving stack refused to forward it

دریمه کرښه تر ټولو ډېر وخت ضایع کوي، ځکه د تولید پرته ssh کلاینټ د اورېدونکې خدمت ستونزه ښکاري۔ که د ننوتلو کومه لاره لرئ، لرې خوا وګورئ او تایید کړئ چې sshd ټولو پتو ته تړل شوی که یوازې یو ته۔

داسې پته وکاروئ چې د روټینګ لپاره جوړه شوې وه

هر هغه څه لپاره چې د ټنل له لارې ورته رسېدل غواړئ، هغه پته وکاروئ چې خدمت ته همدې موخې لپاره ورکړل شوې وه: نړیواله unicast پته، یا له fc00::/7 څخه unique-local پته، هغه لړ چې په دقیق ډول دې داخلي حالت لپاره ساتل شوې ده۔ تایید کړئ چې اورېدونکی یې رښتیا تړي، او د بېرته راتلو لار او د هوسټ هر firewall قاعده وګورئ۔

د اټکل کولو پرځای لرې هوسټ ته وګورئ۔ ip -6 addr show موجودې پتې لیستوي، او ss -6 -ltn ښیي چې ډیمون پر څه اورېدل کوي۔ یوازې fe80:: ته تړل شوی خدمت یوازې له خپلې برخې څخه رسېدلای شي، چې معمولاً هغه ډیفالټ دی چې چا په قصد نه دی ټاکلی او د مدیر په موافقې سره بدلېدای شي۔

کله چې خدمت واقعاً بیا نه تړل کېدای شي، پل د شبکې پوړ پرځای د اپلیکیشن پوړ ته پورته کړئ۔ د لرې هوسټ پر روټ وړ پته اورېدونکی او link-local ته نښلېدونکی ریلې د کومې برخې پراخولو پرته ستونزه حل کوي:

socat TCP6-LISTEN:8080,bind=[fd00:1:2::10] TCP6:[fe80::1%eth0]:80

دلته زون په سمه خوا کې دی، په هغه هوسټ چې واقعاً په دې لینک eth0 لري۔ ستاسو کلاینټ له fd00:1:2::10 سره خبرې کوي، چې عادي روټ کیږي، او ریلې link-local هپ په سیمه ییز ډول ترسره کوي۔ هماغه چل د یو وسیلې وېب UI یا زاړه BMC لپاره هم کار کوي چې یوازې link-local پته اعلانوي۔

کله چې پل کول واقعاً ځواب وي، او څه باید وګورئ

ځینې ځای پرځای کول واقعاً یو ګډه برخه غواړي: وسیله چې یوازې link-local موندنه خبرې کوي، اله چې multicast ته تکیه لري، لابراتوار چې هواره LAN بیا تولیدوي۔ دا Layer 2 ستونزه ده او Layer 2 ځواب ته اړتیا لري، لکه تړل شوې tap وسیله چې لرې انټرفیس ته پل شوې وي یا کلاینټ محصول چې څرګند پل شوی حالت ولري۔ دا تاسو ته د ټنل اوښتونکی broadcast او multicast ټرافیک او همدارنګه ګاونډي موندنه چې له سره تر سره پورې باید کار وکړي، لګښت راوړي۔

دا مه نږدې کوئ د دې په واسطه چې fe80::/64 روټ شوي پروفایل ته ورزیات کړئ۔ دا تر ټولو بد حالت جوړوي: کنفیګ بشپړ ښکاري، د روټ جدول یوه ننوتنه ښیي، او هر پاکټ لا هم د دوو سټیکونو ترمنځ چې دواړه سم چلند کوي، یو ځای غورځول کیږي۔

د ping پرځای د انټرفیس سره تایید کړئ۔ ip -6 addr show tun0 وایي چې د ټنل لینک خپله link-local پته جوړه کړه که نه، او ip -6 route get fe80::1%tun0 وایي چې کرنل به د ساحې لرونکې منزل سره واقعاً څه وکړي۔ کله چې کرنل ووایي چې منزل په هغه انټرفیس کې نه رسېدونکی دی، هېڅ ټنل تنظیم به یې بدل نه کړي، او وخت دی چې د پروفایل سمون بند کړئ۔

یوه لنډه لړ چې پوښتنه حل کوي:

  • د لرې هوسټ پته ولولئ او وګورئ چې fe80:: ده که د روټ وړ مخپېښه۔
  • که fe80:: وي، خدمت بیا وتړئ، په هغه هوسټ کې ریلې وکړئ، یا برخه پل کړئ; که د روټ وړ وي، روټ، firewall یا د تړلو پته سم کړئ۔
  • هر ځل چې بیا ازموینه کوئ زون بیا وګورئ، ځکه کاپي شوې امر معمولاً غلط انټرفیس ساتي۔

سرچینې: RFC 4291، د IPv6 پتو معماری۔

اړوندې مقالې