د کالیکو سره د شبکې پالیسۍ اختیارونو پوهیدل

د کالیکو سره د شبکې پالیسۍ اختیارونو پوهیدل

د کالیکو شبکې پلگ ان د هارډویر کوربه ، مجازی ماشینونو او پوډونو ساتلو لپاره د متحد ترکیب سره د شبکې پالیسۍ پراخه لړۍ چمتو کوي. دا پالیسۍ په نوم ځای کې پلي کیدی شي یا د نړیوال شبکې پالیسۍ وي چې پلي کیږي کوربه پای ټکی (د هغه غوښتنلیکونو د ساتنې لپاره چې مستقیم په کوربه کې روان وي - کوربه کولی شي سرور یا مجازی ماشین وي) یا د کار بار پای ټکی (د کانټینرونو یا کوربه شوي مجازی ماشینونو کې د غوښتنلیکونو ساتلو لپاره). د کالیکو تګلارې تاسو ته اجازه درکوي چې د پیکټ په لاره کې په مختلفو نقطو کې امنیتي تدابیر پلي کړئ لکه preDNAT، unracked، او ApplyOnForward په کارولو سره. پدې پوهیدل چې دا اختیارونه څنګه کار کوي ستاسو د ټول سیسټم امنیت او فعالیت ښه کولو کې مرسته کولی شي. دا مقاله د دې کیلیکو پالیسي اختیارونو جوهر تشریح کوي (preDNAT، unracked او ApplyOnForward) د کوربه پای نقطو لپاره پلي شوي، په دې ټینګار سره چې د پیکټ پروسس کولو لارو (iptabels زنځیرونو) کې څه پیښیږي.

دا مقاله داسې انګیرل کیږي چې تاسو د Kubernetes او Calico شبکې پالیسۍ څنګه کار کوي په اړه اساسي پوهه لرئ. که نه، موږ سپارښتنه کوو چې دا هڅه وکړو د شبکې د پالیسۍ بنسټیز لارښود и د کوربه محافظت درس د دې مقالې لوستلو دمخه د کالیکو کارول. موږ هم تمه لرو چې تاسو د دندې په اړه لومړني پوهه ولرئ iptables په لینکس کې.

کلیکو د نړیوالې شبکې پالیسي تاسو ته اجازه درکوي د لیبلونو په واسطه د لاسرسي قواعدو سیټ پلي کړئ (د کوربه ډلو او کاري بارونو/پوډونو لپاره). دا خورا ګټور دی که تاسو د متفاوت سیسټمونو سره یوځای کاروئ - مجازی ماشینونه، سیسټم په مستقیم ډول په هارډویر کې، یا د کوبرنیټس زیربنا. برسېره پردې، تاسو کولی شئ د اعلاناتي پالیسیو سیټ په کارولو سره خپل کلستر (نوډونه) خوندي کړئ او راتلونکی ټرافیک ته د شبکې پالیسۍ پلي کړئ (د مثال په توګه، د نوډ پورټس یا بهرني IPs خدمت له لارې).

په بنسټیزه کچه، کله چې کیلیکو یو پوډ له شبکې سره وصل کوي (لاندې انځور وګورئ)، دا د مجازی ایترنیټ انٹرفیس (ویت) په کارولو سره کوربه سره نښلوي. د پوډ لخوا لیږل شوي ترافیک د دې مجازی انٹرفیس څخه کوربه ته راځي او په ورته ډول پروسس کیږي لکه څنګه چې دا د فزیکي شبکې انٹرفیس څخه راغلی. د ډیفالټ په واسطه، کیلیکو دا انٹرفیسونه caliXXX نوموي. څرنګه چې ترافیک د مجازی انٹرفیس له لارې راځي، دا د iptables له لارې تیریږي لکه څنګه چې پوډ یو هپ لرې وي. له همدې امله، کله چې ټرافيک د پوډ څخه راځي، دا د کوربه له نظره لیږدول کیږي.

د کوبرنیټس نوډ کې چې کالیکو چلوي ، تاسو کولی شئ په لاندې ډول د کار بار ته یو مجازی انٹرفیس (ویت) نقشه کړئ. په لاندې مثال کې تاسو لیدلی شئ چې veth#10 (calic1cbf1ca0f8) د cnx-manager-* سره د کالیکو څارنې نوم ځای کې وصل دی.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

د کالیکو سره د شبکې پالیسۍ اختیارونو پوهیدل

دې ته په پام سره چې کیلیکو د هر کاري بار لپاره د ویت انٹرفیس رامینځته کوي ، دا څنګه پالیسۍ پلي کوي؟ د دې کولو لپاره ، کالیکو د iptables په کارولو سره د پاکټ پروسس کولو لارې په مختلف زنځیرونو کې هکونه رامینځته کوي.

لاندې ډیاګرام هغه زنځیرونه ښیې چې په iptables کې د پیکټ پروسس کولو کې ښکیل دي (یا د netfilter سب سیسټم). کله چې یو پاکټ د شبکې انٹرفیس له لارې راشي، دا لومړی د PREROUTING سلسلې څخه تیریږي. بیا د روټینګ پریکړه کیږي ، او د دې پراساس ، کڅوړه د INPUT (د کوربه پروسو لپاره لارښود) یا FORWARD (په شبکه کې پوډ یا بل نوډ ته لارښود شوی) له لارې تیریږي. د محلي پروسې څخه، کڅوړه د کیبل لیږلو دمخه د OUTPUT او بیا د پوسټروټینګ سلسلې څخه تیریږي.

په یاد ولرئ چې پوډ د iptables پروسس کولو شرایطو کې یو بهرنۍ اداره هم ده (ویت سره تړلې). راځئ چې لنډیز وکړو:

  • فارورډ شوی ترافیک (نیټ، روټ شوی یا له پوډ څخه) د پریروټینګ - فارورډ - پوسټروټینګ زنځیرونو څخه تیریږي.
  • د محلي کوربه پروسې ته ترافیک د PREROUTING - INPUT سلسله څخه تیریږي.
  • د محلي کوربه پروسې څخه ترافیک د OUTPUT - POSTROUTING سلسلې څخه تیریږي.

د کالیکو سره د شبکې پالیسۍ اختیارونو پوهیدل

کالیکو د پالیسۍ اختیارونه وړاندې کوي چې تاسو ته اجازه درکوي په ټولو زنځیرونو کې پالیسۍ پلي کړئ. د دې په پام کې نیولو سره، راځئ چې په کالیکو کې د مختلف پالیسۍ ترتیب کولو اختیارونه وګورو. د لاندې اختیارونو لیست کې شمیرې د پورته ډیاګرام شمیرو سره مطابقت لري.

  1. د کار بار پای ټکی (پوډ) پالیسي
  2. د کوربه پای ټکی پالیسي
  3. د پلي کولو او فارورډ اختیار
  4. د PreDNAT پالیسي
  5. نه تعقیب شوی پالیسي

راځئ چې په دې کتلو سره پیل وکړو چې څنګه د کاري بار پای پوائنټونو باندې پالیسۍ پلي کیږي (Kubernetes پوډ یا OpenStack VMs)، او بیا د کوربه پای پوائنټونو لپاره د پالیسۍ اختیارونو ته ګورو.

د کار بار پای ټکي

د کار بار د پای ټکی پالیسي (1)

دا ستاسو د کبرنیټ پوډونو ساتلو لپاره یو اختیار دی. Calico د Kubernetes NetworkPolicy سره کار کولو ملاتړ کوي، مګر دا اضافي پالیسي هم چمتو کوي - Calico NetworkPolicy او GlobalNetworkPolicy. کیلیکو د هر پوډ (د کار بار) لپاره زنځیر جوړوي او د FORWARD سلسلې فلټر میز ته د کاري بار لپاره د INPUT او OUTPUT زنځیرونو کې هک کوي.

کوربه پای ټکي

د کوربه پای ټکي پالیسي (2)

د CNI (د کانټینر شبکې انٹرفیس) سربیره، د کالیکو پالیسۍ د کوربه ځان ساتلو وړتیا چمتو کوي. په کالیکو کې ، تاسو کولی شئ د کوربه انٹرفیس ترکیب مشخص کولو سره د کوربه پای ټکی رامینځته کړئ او که اړتیا وي ، د پورټ شمیرې. د دې ادارې لپاره د پالیسۍ پلي کول د INPUT او OUTPUT زنځیرونو کې د فلټر میز په کارولو سره ترلاسه کیږي. لکه څنګه چې تاسو د ډیاګرام څخه لیدلی شئ، (2) دوی په نوډ / کوربه کې محلي پروسو ته پلي کیږي. دا دی، که تاسو داسې پالیسي رامینځته کړئ چې د کوربه پای ټکي باندې پلي کیږي، دا به ستاسو پوډونو ته / تګ راتګ اغیزه ونکړي. مګر دا د کالیکو پالیسیو په کارولو سره ستاسو د کوربه او پوډونو لپاره د ټرافیک بندولو لپاره یو واحد انٹرفیس / ترکیب چمتو کوي. دا د متفاوت شبکې لپاره د پالیسیو اداره کولو پروسه خورا ساده کوي. د کلستر امنیت ته وده ورکولو لپاره د کوربه پای ټکي پالیسۍ ترتیب کول د کارونې بله مهمه قضیه ده.

د مخ پر وړاندې تګلارې پلي کول (3)

د ApplyOnForward اختیار د کالیکو نړیوال شبکې پالیسي کې شتون لري ترڅو پالیسۍ ته اجازه ورکړي چې د کوربه پای نقطې څخه تیریږي ټول ټرافیک پلي کړي ، پشمول هغه ترافیک چې د کوربه لخوا لیږل کیږي. پدې کې هغه ټرافیک شامل دی چې ځایی پوډ ته لیږل کیږي یا په شبکه کې بل چیرې. کالیکو د PreDNAT په کارولو سره د پالیسیو لپاره دا ترتیب فعالولو ته اړتیا لري او نه تعقیب شوي، لاندې برخې وګورئ. سربیره پردې ، ApplyOnForward د کوربه ترافیک نظارت کولو لپاره په هغه قضیو کې کارول کیدی شي چیرې چې مجازی روټر یا سافټویر NAT کارول کیږي.

په یاد ولرئ چې که تاسو اړتیا لرئ د ورته شبکې پالیسي دواړه کوربه پروسو او پوډونو ته پلي کړئ ، نو تاسو اړتیا نلرئ د ApplyOnForward اختیار وکاروئ. ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ د اړین کوربه توب او د کار بار پای ټکي (پوډ) لپاره لیبل رامینځته کول دي. کیلیکو دومره هوښیار دی چې د لیبلونو پراساس پالیسي پلي کړي ، پرته لدې چې د پای ټکي ډول (د کوربه توب یا کاري بار) په پام کې نیولو سره.

د PreDNAT پالیسي (4)

په Kubernetes کې، د خدماتو ادارې بندرونه د نوډ پورټس اختیار په کارولو سره په بهر کې ښکاره کیدی شي یا په اختیاري توګه (کله چې کیلیکو کارول کیږي)، د کلستر IPs یا بهرني IPs اختیارونو په کارولو سره د اعلاناتو له لارې. Kube-proxy د DNAT په کارولو سره د اړونده خدماتو پوډونو ته د خدماتو پورې تړلی راتلونکی ترافیک توازن کوي. دې ته په پام سره، تاسو څنګه د نوډ پورټس له لارې د ټرافیک لپاره پالیسۍ پلي کوئ؟ د دې لپاره چې ډاډ ترلاسه شي چې دا پالیسي د DNAT لخوا د ټرافیک پروسس کولو دمخه پلي کیږي (کوم چې د کوربه: پورټ او اړونده خدماتو تر مینځ نقشه ده)، کیلیکو د "preDNAT: ریښتیا" په نوم د GlobalNetworkPolicy لپاره پیرامیټر چمتو کوي.

کله چې مخکې DNAT فعال شي، دا پالیسي په (4) کې په ډیاګرام کې پلي کیږي - د PREROUTING سلسلې د منګل جدول کې - د DNAT څخه سمدلاسه مخکې. دلته د پالیسیو معمول ترتیب نه تعقیب کیږي، ځکه چې د دې پالیسیو پلي کول د ټرافيکي پروسس کولو په لاره کې ډیر مخکې واقع کیږي. په هرصورت، د PreDNAT پالیسۍ په خپل منځ کې د غوښتنلیک ترتیب ته درناوی کوي.

کله چې د DNAT دمخه پالیسي رامینځته کړئ ، نو دا مهمه ده چې د هغه ټرافیک په اړه محتاط اوسئ چې تاسو یې پروسس کول غواړئ او اکثریت ته اجازه ورکړئ چې رد شي. ټرافیک چې د DNAT څخه دمخه پالیسي کې د 'اجازه' په توګه نښه شوی نور به د کوربه توب پالیسۍ لخوا نه وڅیړل شي، پداسې حال کې چې ټرافیک چې د DNAT دمخه پالیسي ناکامه کوي د پاتې زنځیرونو له لارې به دوام ومومي.
کالیکو دا اړینه کړې چې د PreDNAT کارولو پر مهال د AppOnForward اختیار فعال کړي، ځکه چې د تعریف له مخې د ټرافیک منزل لا تر اوسه نه دی ټاکل شوی. ټرافیک د کوربه پروسې ته لیږدول کیدی شي، یا دا یو پوډ یا بل نوډ ته لیږدول کیدی شي.

نه تعقیب شوی پالیسي (5)

شبکې او غوښتنلیکونه کولی شي په چلند کې لوی توپیرونه ولري. په ځینو سختو قضیو کې، غوښتنلیکونه ممکن ډیری لنډ مهاله اړیکې رامینځته کړي. دا کولی شي کانټریک (د لینکس شبکې سټیک یوه اصلي برخه) د حافظې له لاسه ورکولو لامل شي. په دودیز ډول ، په لینکس کې د دې ډول غوښتنلیکونو چلولو لپاره ، تاسو باید په لاسي ډول کانټریک تنظیم یا غیر فعال کړئ ، یا د کانټریک څخه د تیریدو لپاره د iptables قواعد ولیکئ. په کالیکو کې نه تعقیب شوي پالیسي یو ساده او ډیر موثر انتخاب دی که تاسو غواړئ ژر تر ژره اړیکې پروسس کړئ. د مثال په توګه، که تاسو لوی کاروئ یادداشت یا په وړاندې د محافظت اضافي اندازې په توګه DDOS.

دا ولولئ بلاګ وروسته (يا زموږ ژباړه) د نورو معلوماتو لپاره، پشمول د غیر تعقیب شوي پالیسۍ په کارولو سره د فعالیت ازموینې.

کله چې تاسو په Calico GlobalNetworkPolicy کې د "doNotTrack: ریښتیا" اختیار تنظیم کړئ، دا د ** نه تعقیب شوي** پالیسي کیږي او د لینکس پیکټ پروسس کولو پایپ لاین کې ډیر ژر پلي کیږي. پورته ډیاګرام ته په کتلو سره، د پیوستون تعقیب (conntrack) پیل کیدو دمخه په خام جدول کې د نه تعقیب شوي پالیسۍ پلي کیږي. کله چې یو پاکټ د نه تعقیب شوي پالیسۍ لخوا اجازه ورکړل شي، دا د دې پیکټ لپاره د ارتباط تعقیب غیر فعالولو لپاره نښه کیږي. یعني:

  • نه تعقیب شوي پالیسي د هر پیکټ په اساس پلي کیږي. د ارتباط (یا جریان) هیڅ مفهوم شتون نلري. د اړیکو نشتوالی ډیری مهمې پایلې لري:
  • که تاسو غواړئ د غوښتنې او ځواب ټرافیک دواړو ته اجازه ورکړئ، تاسو د داخلي او بهر دواړو لپاره یو قاعده ته اړتیا لرئ (ځکه چې کیلیکو په عمومي ډول د ځواب ټرافيک په نښه کولو لپاره کانټریک کاروي لکه څنګه چې اجازه ورکړل شوې).
  • نه تعقیب شوې پالیسي د کوبرنیټس کاري بارونو (پوډونو) لپاره کار نه کوي ، ځکه چې پدې حالت کې د پوډ څخه د وتلو پیوستون تعقیبولو لپاره هیڅ لاره شتون نلري.
  • NAT د نه تعقیب شوي پاکټونو سره سم کار نه کوي (ځکه چې کرنل د NAT نقشه په کانټریک کې ذخیره کوي).
  • کله چې په نه تعقیب شوي پالیسي کې د "ټولو ته اجازه ورکړئ" قاعدې څخه تیریږي، ټول پاکټونه به د نه تعقیب شوي په توګه په نښه شي. دا تقریبا تل هغه څه ندي چې تاسو یې غواړئ، نو دا مهمه ده چې د غیر تعقیب شوي پالیسیو لخوا اجازه ورکړل شوي پاکټونو په اړه خورا غوره وي (او ډیری ټرافیک ته اجازه ورکړئ چې د عادي تعقیب شوي پالیسیو له لارې لاړ شي).
  • نه تعقیب شوي پالیسي د پاکټ پروسس پایپ لاین په پیل کې پلي کیږي. دا د پوهیدو لپاره خورا مهم دی کله چې د کالیکو پالیسۍ رامینځته کړئ. تاسو کولی شئ د آرډر سره د پوډ پالیسي ولرئ: 1 او د امر سره: 1000 غیر تعقیب شوي پالیسي. دا به مهمه نده. د نه تعقیب شوي پالیسي به د پوډ لپاره د پالیسۍ دمخه پلي شي. نه تعقیب شوي پالیسۍ یوازې په خپل منځ کې د اعدام حکم ته درناوی کوي.

ځکه چې د doNotTrack پالیسي یو هدف د لینکس پاکټ پروسس کولو پایپ لاین کې خورا دمخه پالیسي پلي کول دي ، کالیکو دا لازمي کوي چې د doNotTrack کارولو پر مهال د ApplyOnForward اختیار مشخص کړي. د بسته بندۍ پروسس کولو ډیاګرام ته په اشارې سره، په یاد ولرئ چې نه تعقیب شوی (5) پالیسي د هرې لارې پریکړې دمخه پلي کیږي. ټرافیک د کوربه پروسې ته لیږدول کیدی شي، یا دا یو پوډ یا بل نوډ ته لیږدول کیدی شي.

پایلې

موږ په کالیکو کې د پالیسۍ مختلف انتخابونه (د کوربه پای نقطه، اپلیټ آن فارورډ، پری ډی این اے ٹی، او غیر تعقیب شوي) ته کتنه وکړه او دا چې څنګه د پاکټ پروسس کولو لارې کې پلي کیږي. پوهیدل چې دوی څنګه کار کوي د اغیزمنو او خوندي پالیسیو په جوړولو کې مرسته کوي. د کالیکو سره تاسو کولی شئ د نړیوالې شبکې پالیسي وکاروئ چې په لیبل باندې پلي کیږي (د نوډونو او پوډونو ګروپ) او د مختلف پیرامیټونو سره پالیسي پلي کړئ. دا د امنیت او شبکې ډیزاین متخصصینو ته اجازه ورکوي چې د کالیکو پالیسیو سره د یوې پالیسۍ ژبې په کارولو سره په اسانۍ سره "هر څه" (د پای ټکي ډولونه) خوندي کړي.

اعتراف: زه غواړم مننه وکړم شان کرمپټون и الیکسا پولیټا د دوی د بیاکتنې او ارزښتناکو معلوماتو لپاره.

سرچینه: www.habr.com

Add a comment