Calico ဖဌင့် Network Policy Enforcement Options ကို နာသလည်ခဌင်သ။

Calico ဖဌင့် Network Policy Enforcement Options ကို နာသလည်ခဌင်သ။

Calico ကလန်ရက်ပလပ်အင်သည် ဟာ့ဒ်ဝဲလက်ခံဆောင်ရလက်ပေသသူမျာသ၊ ပကတိစက်မျာသနဟင့် pods မျာသကို ကာကလယ်ရန်အတလက် ကျယ်ပဌန့်သောကလန်ရက်မူဝါဒမျာသကို စုစည်သထာသသော အထာသအသိုတစ်ခုဖဌင့် ပံ့ပိုသပေသပါသည်။ ကမူဝါဒမျာသကို namespace တစ်ခုအတလင်သတလင် အသုံသချနိုင်သည် သို့မဟုတ် ၎င်သနဟင့်သက်ဆိုင်သည့် ကမ္ဘာလုံသဆိုင်ရာကလန်ရက်မူဝါဒမျာသ ဖဌစ်လာနိုင်သည်။ host အဆုံသမဟတ် (အိမ်ရဟင်ပေါ်တလင်တိုက်ရိုက်လည်ပတ်နေသော application မျာသကိုကာကလယ်ရန် - host သည် server သို့မဟုတ် virtual machine ဖဌစ်နိုင်သည်) သို့မဟုတ် အလုပ်ဝန်မဟတ် (ကလန်တိန်နာမျာသအတလင်သ သို့မဟုတ် လက်ခံထာသသော virtual machines မျာသတလင် လုပ်ဆောင်နေသည့် application မျာသကို ကာကလယ်ရန်) Calico မူဝါဒမျာသသည် သင့်အာသ preDNAT၊ unracked နဟင့် applyOnForward ကဲ့သို့သော ရလေသချယ်မဟုမျာသကို အသုံသပဌုကာ packet လမ်သကဌောင်သရဟိ အမဟတ်အမျိုသမျိုသတလင် လုံခဌုံရေသအစီအမံမျာသကို ကျင့်သုံသခလင့်ပဌုသည်။ ကရလေသချယ်စရာမျာသ မည်သို့အလုပ်လုပ်သည်ကို နာသလည်ခဌင်သက သင့်စနစ်တစ်ခုလုံသ၏ လုံခဌုံရေသနဟင့် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ပေသနိုင်ပါသည်။ ကဆောင်သပါသတလင် က Calico မူဝါဒရလေသချယ်စရာမျာသ (preDNAT၊ unracked နဟင့် applyOnForward) သည် packet processing လမ်သကဌောင်သမျာသ (iptabels ကလင်သဆက်မျာသ) တလင် ဖဌစ်ပျက်နေသောအရာမျာသကို အလေသပေသခဌင်သဖဌင့် လက်ခံဆောင်ရလက်ပေသသည့် endpoints မျာသအတလက် အသုံသပဌုထာသသည့်အရာမျာသကို ရဟင်သပဌထာသသည်။

ကဆောင်သပါသတလင် Kubernetes နဟင့် Calico ကလန်ရက်မူဝါဒမျာသ မည်သို့အလုပ်လုပ်ပုံ အခဌေခံနာသလည်မဟုရဟိသည်ဟု ယူဆပါသည်။ မဟုတ်ပါက စမ်သသုံသကဌည့်ရန် အကဌံပဌုအပ်ပါသည်။ အခဌေခံကလန်ရက်မူဝါဒ သင်ခန်သစာ О အိမ်ရဟင်ကာကလယ်မဟုသင်ခန်သစာ ကဆောင်သပါသကိုမဖတ်မီ Calico ကိုအသုံသပဌုပါ။ အလုပ်နဟင့်ပတ်သက်သော အခဌေခံနာသလည်မဟုရဟိရန်လည်သ ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။ iptables Linux တလင်

Calico ကမ္ဘာလုံသဆိုင်ရာကလန်ရက်မူဝါဒ အညလဟန်သမျာသဖဌင့် ဝင်ရောက်အသုံသပဌုခလင့် စည်သမျဉ်သအစုအဝေသ (အိမ်ရဟင်အုပ်စုမျာသနဟင့် အလုပ်တာဝန်မျာသ/ pods မျာသ) ကို အသုံသပဌုခလင့်ပေသသည်။ ကလဲပဌာသသော စနစ်မျာသ - virtual machines၊ ဟာ့ဒ်ဝဲတလင် တိုက်ရိုက်စနစ် သို့မဟုတ် kubernetes အခဌေခံအဆောက်အအုံကို အတူတကလအသုံသပဌုပါက ၎င်သသည် အလလန်အသုံသဝင်ပါသည်။ ထို့အပဌင်၊ သင်သည် သင်၏အစုအဝေသ (node) မျာသကို ကဌေငဌာခဌင်သဆိုင်ရာ မူဝါဒမျာသကို အသုံသပဌုကာ ကာကလယ်နိုင်ပဌီသ အဝင်အထလက်လမ်သကဌောင်သ (ဥပမာ၊ NodePorts သို့မဟုတ် ပဌင်ပ IPs ဝန်ဆောင်မဟုမဟတဆင့်) ကလန်ရက်မူဝါဒမျာသကို အသုံသပဌုနိုင်သည်။

အခဌေခံအဆင့်တလင် Calico သည် pod တစ်ခုအာသ ကလန်ရက်သို့ ချိတ်ဆက်သောအခါ (အောက်ဖော်ပဌပါ ပုံတလင်ကဌည့်ပါ)၊ ၎င်သသည် virtual Ethernet interface (veth) ကို အသုံသပဌု၍ host သို့ ချိတ်ဆက်ပေသပါသည်။ pod မဟပေသပို့သောအသလာသအလာသည် က virtual interface မဟ host သို့ရောက်လာပဌီသ ၎င်သသည် physical network interface မဟလာသကဲ့သို့ အလာသတူလုပ်ဆောင်သည်။ မူရင်သအာသဖဌင့် Calico သည် ကအင်တာဖေ့စ်မျာသကို caliXXX ဟု အမည်ပေသသည်။ အသလာသအလာသည် virtual interface မဟတဆင့်လာသောကဌောင့် pod သည်တစ်ပဌေသတည်သသလာသသကဲ့သို့ iptables မဟတဆင့်သလာသပါသည်။ ထို့ကဌောင့်၊ pod တစ်ခုသို့ အသလာသအလာ လာသောအခါ၊ ၎င်သကို လက်ခံသူ၏ အမဌင်မဟ တစ်ဆင့် ပေသပို့သည်။

Calico လည်ပတ်သည့် Kubernetes node တလင်၊ သင်သည် အလုပ်တာဝန်တစ်ခုသို့ virtual interface (veth) ကို အောက်ပါအတိုင်သ မဌေပုံဆလဲနိုင်ပါသည်။ အောက်ပါဥပမာတလင်၊ veth#10 (calic1cbf1ca0f8) ကို calico-monitoring namespace တလင် 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
...

Calico ဖဌင့် Network Policy Enforcement Options ကို နာသလည်ခဌင်သ။

Calico သည် အလုပ်တာဝန်တစ်ခုစီအတလက် veth interface ကို ဖန်တီသပေသသောကဌောင့်၊ ၎င်သသည် မူဝါဒမျာသကို မည်သို့ကျင့်သုံသသနည်သ။ ဒါကိုလုပ်ဖို့ Calico က iptables ကိုသုံသပဌီသ packet processing path ရဲ့ အမျိုသမျိုသသော ချိတ်တလေကို ဖန်တီသပေသပါတယ်။

အောက်ဖော်ပဌပါ ပုံသည် iptables (သို့မဟုတ် netfilter စနစ်ခလဲ) တလင် packet processing တလင်ပါ၀င်သော ကလင်သဆက်မျာသကို ပဌသထာသသည်။ ပက်ကေ့ခ်ျတစ်ခုသည် ကလန်ရက်အင်တာဖေ့စ်မဟတဆင့် ရောက်ရဟိသောအခါ၊ ၎င်သသည် ပထမညသစလာ ကဌိုတင်လုပ်ဆောင်ခဌင်သကလင်သဆက်မဟတဆင့် သလာသပါသည်။ လမ်သကဌောင်သသတ်မဟတ်ခဌင်သဆိုင်ရာ ဆုံသဖဌတ်ချက်တစ်ခုကို ချမဟတ်ပဌီသ ယင်သအပေါ် အခဌေခံ၍ ပက်ကတ်သည် INPUT (လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်မျာသဆီသို့ ညလဟန်ကဌာသသည်) သို့မဟုတ် FORWARD (ကလန်ရက်ပေါ်ရဟိ pod တစ်ခု သို့မဟုတ် အခဌာသ node တစ်ခုဆီသို့ ညလဟန်ကဌာသသည်) ကိုဖဌတ်သန်သသလာသပါသည်။ စက်တလင်သလုပ်ငန်သစဉ်မဟ၊ ပက်ကတ်သည် OUTPUT မဟတစ်ဆင့် ကဌိုသကိုမလလဟတ်မီတလင် ပို့ခဌင်သကလင်သဆက်ကို ဖဌတ်သန်သသလာသမည်ဖဌစ်သည်။

pod သည် iptables လုပ်ဆောင်ခဌင်သဆိုင်ရာ စည်သကမ်သချက်မျာသအရ pod သည် ပဌင်ပအကဌောင်သအရာ (veth နဟင့် ချိတ်ဆက်ထာသသည်) လည်သဖဌစ်သည်။ အကျဉ်သချုံသကဌပါစို့။

  • ထပ်ဆင့်ပို့သောလမ်သကဌောင်သ (နတ်၊ လမ်သကဌောင်သ သို့မဟုတ် ဘူသတစ်ခုသို့) သည် ကဌိုတင်ပဌင်ဆင်ခဌင်သ - ရဟေ့သို့ - ပို့စ်တင်ခဌင်သ ကလင်သဆက်မျာသမဟတဆင့် ဖဌတ်သန်သသလာသပါသည်။
  • ဒေသတလင်သ လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်သို့ အသလာသအလာသည် PREROUTING - ထည့်သလင်သမဟု ကလင်သဆက်မဟတဆင့် ဖဌတ်သန်သသလာသပါသည်။
  • ဒေသတလင်သ လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်မဟ အသလာသအလာမျာသသည် OUTPUT - POSTROUTING ကလင်သဆက်မဟတဆင့် ဖဌတ်သန်သသလာသပါသည်။

Calico ဖဌင့် Network Policy Enforcement Options ကို နာသလည်ခဌင်သ။

Calico သည် ကလင်သဆက်အာသလုံသတလင် မူဝါဒမျာသကို ကျင့်သုံသခလင့်ပဌုသည့် မူဝါဒရလေသချယ်ခလင့်မျာသကို ပေသပါသည်။ အဲဒါကို စိတ်ထဲထာသပဌီသ၊ Calico မဟာ ရနိုင်တဲ့ မတူညီတဲ့ မူဝါဒဖလဲ့စည်သပုံရလေသချယ်စရာတလေကို ကဌည့်ကဌရအောင်။ အောက်ပါရလေသချယ်စရာမျာသစာရင်သရဟိ နံပါတ်မျာသသည် အထက်ဖော်ပဌပါ ပုံတလင်ရဟိသော နံပါတ်မျာသနဟင့် ကိုက်ညီပါသည်။

  1. Workload endpoint (pod) မူဝါဒ
  2. လက်ခံဆောင်ရလက်ပေသသည့် အဆုံသမဟတ်မူဝါဒ
  3. ApplyOnForward ရလေသချယ်မဟု
  4. PreDNAT မူဝါဒ
  5. ခဌေရာခံမထာသသော မူဝါဒ

အလုပ်ဝန်အဆုံသမဟတ်မျာသ (Kubernetes pods သို့မဟုတ် OpenStack VMs) တလင် မူဝါဒမျာသကို မည်ကဲ့သို့ အသုံသချသည်ကို ကဌည့်ခဌင်သဖဌင့် စတင်ကဌပါစို့၊ ထို့နောက် လက်ခံဆောင်ရလက်ပေသသည့် အဆုံသမဟတ်မျာသအတလက် မူဝါဒရလေသချယ်မဟုမျာသကို ကဌည့်ပါ။

Workload Endpoints

Workload Endpoint Policy (၁)၊

၎င်သသည် သင်၏ kubernetes pods မျာသကို ကာကလယ်ရန် ရလေသချယ်မဟုတစ်ခုဖဌစ်သည်။ Calico သည် Kubernetes NetworkPolicy နဟင့် အလုပ်လုပ်ခဌင်သကို ပံ့ပိုသပေသသည်၊ သို့သော် ၎င်သသည် နောက်ထပ်မူဝါဒမျာသ - Calico NetworkPolicy နဟင့် GlobalNetworkPolicy ကိုလည်သ ပံ့ပိုသပေသပါသည်။ Calico သည် FORWARD ကလင်သဆက်၏ စစ်ထုတ်မဟုဇယာသအတလက် အလုပ်ဝန်အတလက် INPUT နဟင့် OUTPUT ကလင်သဆက်မျာသတလင် ချိတ်တစ်ခုစီကို ဖန်တီသသည်။

လက်ခံသူ အဆုံသမဟတ်မျာသ

လက်ခံဆောင်ရလက်ပေသသူ အဆုံသမဟတ်မူဝါဒ (၂)

CNI (container network interface) အပဌင် Calico မူဝါဒမျာသသည် host ကိုယ်တိုင်ကို ကာကလယ်နိုင်စလမ်သ ပေသပါသည်။ Calico တလင်၊ လက်ခံဆောင်ရလက်ပေသသူ အင်တာဖေ့စ်နဟင့် လိုအပ်ပါက ပို့တ်နံပါတ်မျာသကို ပေါင်သစပ်သတ်မဟတ်ခဌင်သဖဌင့် လက်ခံဆောင်ရလက်ပေသသည့် အဆုံသမဟတ်ကို ဖန်တီသနိုင်သည်။ INPUT နဟင့် OUTPUT ကလင်သဆက်မျာသရဟိ စစ်ထုတ်မဟုဇယာသကို အသုံသပဌု၍ ကအဖလဲ့အစည်သအတလက် မူဝါဒဆိုင်ရာ ပဌဋ္ဌာန်သချက်ကို အောင်မဌင်ပါသည်။ ပုံတလင်မဌင်ရသည့်အတိုင်သ၊ (၂) ၎င်သတို့သည် node/host ပေါ်ရဟိ ဒေသန္တရ လုပ်ငန်သစဉ်မျာသနဟင့် သက်ဆိုင်ပါသည်။ ဆိုလိုသည်မဟာ၊ အကယ်၍ သင်သည် လက်ခံဆောင်ရလက်ပေသသူ အဆုံသမဟတ်ကို သက်ဆိုင်သည့် မူဝါဒတစ်ခုကို ဖန်တီသပါက၊ ၎င်သသည် သင်၏ pods မျာသဆီသို့ သလာသ/လာမည့် အသလာသအလာကို ထိခိုက်မည်မဟုတ်ပါ။ သို့သော် Calico မူဝါဒမျာသကို အသုံသပဌု၍ သင်၏ host နဟင့် pods မျာသအတလက် traffic ကိုပိတ်ဆို့ရန်အတလက် single interface/syntax ကိုပေသပါသည်။ ၎င်သသည် ကလဲပဌာသသောကလန်ရက်တစ်ခုအတလက် မူဝါဒမျာသကို စီမံခန့်ခလဲခဌင်သလုပ်ငန်သစဉ်ကို မျာသစလာရိုသရဟင်သစေသည်။ အစုအဖလဲ့လုံခဌုံရေသကို တိုသမဌဟင့်ရန် လက်ခံဆောင်ရလက်ပေသသူ အဆုံသမဟတ်မူဝါဒမျာသကို ပဌင်ဆင်သတ်မဟတ်ခဌင်သသည် အခဌာသအရေသကဌီသသော အသုံသပဌုမဟုကိစ္စဖဌစ်သည်။

OnForward မူဝါဒ (၃) ချက်ကို ကျင့်သုံသခဌင်သ၊

လက်ခံသူမဟ တစ်ဆင့်ပို့မည့် အသလာသအလာ အပါအဝင် လက်ခံဆောင်ရလက်ပေသသူ အဆုံသမဟတ်ကို ဖဌတ်သန်သသလာသသော အသလာသအလာအာသလုံသကို ခလင့်ပဌုရန် ApplyOnForward ရလေသချယ်မဟုကို Calico ကမ္ဘာလုံသဆိုင်ရာ ကလန်ရက်မူဝါဒတလင် ရနိုင်ပါသည်။ ၎င်သတလင် local pod သို့ ထပ်ဆင့်ပို့သော လမ်သကဌောင်သမျာသ ပါဝင်သည်။ Calico သည် PreDNAT ကို အသုံသပဌု၍ မူဝါဒမျာသအတလက် ကဆက်တင်ကို ဖလင့်ထာသရန် လိုအပ်ပဌီသ ခဌေရာခံမထာသသော၊ အောက်ပါကဏ္ဍမျာသကို ကဌည့်ပါ။ ထို့အပဌင်၊ ApplyOnForward ကို virtual router သို့မဟုတ် software NAT ကိုအသုံသပဌုသည့်ကိစ္စမျာသတလင် host traffic ကိုစောင့်ကဌည့်ရန်အသုံသပဌုနိုင်ပါသည်။

အကယ်၍ သင်သည် တူညီသောကလန်ရက်မူဝါဒကို လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်မျာသနဟင့် pods နဟစ်ခုစလုံသတလင် ကျင့်သုံသရန် လိုအပ်ပါက၊ သင်သည် ApplyOnForward ရလေသချယ်မဟုကို အသုံသပဌုရန် မလိုအပ်ကဌောင်သ သတိပဌုပါ။ သင်လုပ်ရန် လိုအပ်သည်မဟာ လိုအပ်သော hostendpoint နဟင့် workload endpoint (pod) အတလက် အညလဟန်သတစ်ခု ဖန်တီသပါ။ Calico သည် အဆုံသမဟတ်အမျိုသအစာသ ( hostendpoint သို့မဟုတ် workload ) မသက်ဆိုင်ဘဲ အညလဟန်သမျာသပေါ်တလင် အခဌေခံ၍ မူဝါဒကို ကျင့်သုံသရန် လုံလောက်သော စမတ်ဖဌစ်သည်။

PreDNAT မူဝါဒ (၄)၊

Kubernetes တလင်၊ NodePorts ရလေသချယ်မဟုကို အသုံသပဌု၍ ဝန်ဆောင်မဟုဆိုင်ရာ ဆိပ်ကမ်သမျာသကို ပဌင်ပတလင် ဖော်ထုတ်နိုင်သည် သို့မဟုတ် (Calico ကို အသုံသပဌုသည့်အခါ) ၎င်သတို့အာသ Cluster IPs သို့မဟုတ် ပဌင်ပ IP ရလေသချယ်စရာမျာသကို အသုံသပဌု၍ ကဌော်ငဌာခဌင်သဖဌင့် ၎င်သတို့ကို ပဌင်ပတလင် ထုတ်ဖော်နိုင်ပါသည်။ Kube-proxy သည် DNAT ကို အသုံသပဌု၍ သက်ဆိုင်ရာဝန်ဆောင်မဟု၏ pods မျာသသို့ အဝင်အသလာသအလာကို ချိန်ခလင်လျဟာညဟိပေသသည်။ ကအချက်ကဌောင့်၊ NodePorts မဟတဆင့် သလာသလာမဟုဆိုင်ရာ မူဝါဒမျာသကို သင်မည်ကဲ့သို့ ကျင့်သုံသမည်နည်သ။ အသလာသအလာကို DNAT က မလုပ်ဆောင်မီ ကမူဝါဒမျာသကို ကျင့်သုံသကဌောင်သ သေချာစေရန် (အိမ်ရဟင်-ဆိပ်ကမ်သနဟင့် ဆက်စပ်ဝန်ဆောင်မဟုကဌာသတလင် မဌေပုံဆလဲခဌင်သဖဌစ်သည်)၊ Calico သည် "preDNAT: true" ဟုခေါ်သော globalNetworkPolicy အတလက် ကန့်သတ်ချက်တစ်ခုကို ပံ့ပိုသပေသပါသည်။

DNAT ကိုကဌိုတင်ဖလင့်ထာသသောအခါ၊ ကမူဝါဒမျာသကို DNAT မတိုင်မီချက်ချင်သလုပ်ဆောင်သည် - PREROUTING ကလင်သဆက်၏ mangle ဇယာသရဟိ ပုံ (၄) တလင် ကမူဝါဒမျာသကို အကောင်အထည်ဖော်ပါသည်။ ကမူဝါဒမျာသကို ကျင့်သုံသခဌင်သသည် ယာဉ်ကဌောပိတ်ဆို့မဟု လုပ်ငန်သစဉ်တလင် မျာသစလာစောသောကဌောင့် ကတလင် ပုံမဟန်မူဝါဒမျာသ၏ အစီအစဥ်ကို မလိုက်နာပါ။ သို့သော်၊ preDNAT မူဝါဒမျာသသည် ၎င်သတို့အချင်သချင်သ လျဟောက်ထာသမဟုအစီအစဥ်ကို လေသစာသပါသည်။

ကဌိုတင် DNAT ဖဌင့် မူဝါဒမျာသဖန်တီသသောအခါ၊ သင်လုပ်ဆောင်လိုသော အသလာသအလာနဟင့်ပတ်သက်၍ ဂရုပဌုရန်နဟင့် အမျာသစုကို ငဌင်သပယ်ခဌင်သကို ခလင့်ပဌုရန် အရေသကဌီသပါသည်။ DNAT အကဌိုမူဝါဒတလင် 'ခလင့်ပဌု' ဟု အမဟတ်အသာသပဌုထာသသည့် ယာဉ်အသလာသအလာကို လက်ခံမဟတ်မဟတ်မူဝါဒဖဌင့် စစ်ဆေသမည်မဟုတ်တော့ဘဲ၊ DNAT အကဌိုမူဝါဒကို ပျက်ကလက်သော အသလာသအလာမျာသသည် ကျန်ရဟိသည့် ကလင်သဆက်မျာသမဟတစ်ဆင့် ဆက်လက်ရဟိနေမည်ဖဌစ်သည်။
Calico သည် preDNAT ကိုအသုံသပဌုသောအခါတလင် applyOnForward option ကိုဖလင့်ရန်မဖဌစ်မနေပဌုလုပ်ထာသသောကဌောင့်၊ လမ်သကဌောင်သ၏ညသတည်ရာကိုမရလေသချယ်ရသေသသောကဌောင့်ဖဌစ်သည်။ အသလာသအလာကို လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်သို့ ညလဟန်ကဌာသနိုင်သည်၊ သို့မဟုတ် ၎င်သကို pod သို့မဟုတ် အခဌာသ node သို့ ထပ်ဆင့်ပေသပို့နိုင်သည်။

ခဌေရာခံမထာသသော မူဝါဒ (၅)

ကလန်ရက်မျာသနဟင့် အပလီကေသရဟင်သမျာသတလင် အပဌုအမူ ကလဲပဌာသမဟုမျာသ ရဟိနိုင်သည်။ အချို့သော အခဌေအနေမျာသတလင်၊ အပလီကေသရဟင်သမျာသသည် ခဏတာချိတ်ဆက်မဟုမျာသစလာကို ဖန်တီသပေသနိုင်သည်။ ၎င်သသည် conntrack (Linux networking stack ၏ အဓိကအစိတ်အပိုင်သတစ်ခု) မမ်မိုရီကုန်သလာသနိုင်သည်။ အစဉ်အလာအာသဖဌင့်၊ ကအပလီကေသရဟင်သအမျိုသအစာသမျာသကို Linux တလင် run ရန်၊ သင်သည် conntrack ကိုကျော်လလဟာသရန် ကိုယ်တိုင် configure သို့မဟုတ် disable လုပ်ရန် သို့မဟုတ် iptables စည်သမျဉ်သမျာသကို ရေသသာသရမည်ဖဌစ်သည်။ Calico တလင် ခဌေရာခံမထာသသော မူဝါဒသည် ချိတ်ဆက်မဟုမျာသကို တတ်နိုင်သမျဟ မဌန်မဌန်လုပ်ဆောင်လိုပါက ပိုမိုရိုသရဟင်သပဌီသ ထိရောက်မဟုရဟိသော ရလေသချယ်မဟုတစ်ခုဖဌစ်သည်။ ဥပမာအာသဖဌင့် ထုထည်ကဌီသမာသလျဟင် မဟတ်မိ သို့မဟုတ် ဆန့်ကျင်ကာကလယ်မဟု၏ အပိုဆောင်သအတိုင်သအတာအဖဌစ် DDOS ကို.

ဒါကိုဖတ်ပါ။ ဘလော့ဂ်ပို့စ် (သို့မဟုတ် ကျလန်ုပ်တို့၏ဘာသာပဌန်ခဌေရာခံမထာသသောမူဝါဒကို အသုံသပဌု၍ စလမ်သဆောင်ရည်စမ်သသပ်မဟုမျာသအပါအဝင် နောက်ထပ်အချက်အလက်မျာသအတလက်။

Calico globalNetworkPolicy တလင် "doNotTrack: true" ရလေသစရာကို သင်သတ်မဟတ်သောအခါ၊ ၎င်သသည် **ခဌေရာခံမထာသသော** မူဝါဒတစ်ခုဖဌစ်လာပဌီသ Linux packet လုပ်ဆောင်ခဌင်သပိုက်လိုင်သတလင် အလလန်စောစီသစလာ သက်ရောက်ပါသည်။ အထက်ဖော်ပဌပါ ပုံကဌမ်သကို ကဌည့်ပါ၊ ချိတ်ဆက်မဟု ခဌေရာခံခဌင်သ (conntrack) မစတင်မီ အကဌမ်သဇယာသရဟိ ကဌိုတင်နဟင့် အထလက်ဆလဲကဌိုသမျာသတလင် ခဌေရာခံမထာသသော မူဝါဒမျာသကို ကျင့်သုံသပါသည်။ ခဌေရာခံမထာသသော မူဝါဒဖဌင့် ပက်ကတ်တစ်ခုကို ခလင့်ပဌုသောအခါ၊ ၎င်သသည် ထိုပက်ကတ်အတလက် ချိတ်ဆက်မဟု ခဌေရာခံခဌင်သကို ပိတ်ရန် မဟတ်သာသထာသသည်။ ဆိုလိုသည်မဟာ-

  • ခဌေရာခံမထာသသော မူဝါဒကို ပက်ကတ်တစ်ခုချင်သစီအလိုက် ကျင့်သုံသပါသည်။ ချိတ်ဆက်မဟု (သို့မဟုတ်) စီသဆင်သမဟု သဘောတရာသ မရဟိပါ။ ချိတ်ဆက်မဟု မရဟိခဌင်သသည် အရေသကဌီသသော အကျိုသဆက်မျာသစလာ ရဟိသည်။
  • တောင်သဆိုမဟုနဟင့် တုံ့ပဌန်မဟုလမ်သကဌောင်သနဟစ်ခုလုံသကို ခလင့်ပဌုလိုပါက၊ အဝင်နဟင့်အထလက် နဟစ်ခုစလုံသအတလက် စည်သမျဉ်သတစ်ခု လိုအပ်သည် (Calico ပုံမဟန်အာသဖဌင့် ခလင့်ပဌုထာသသည့်အတိုင်သ တုံ့ပဌန်မဟုလမ်သကဌောင်သကို အမဟတ်အသာသပဌုရန် conntrack ကို အသုံသပဌုသောကဌောင့်)။
  • ခဌေရာခံမထာသသော မူဝါဒသည် Kubernetes အလုပ်မျာသ (pods) အတလက် အလုပ်မဖဌစ်သောကဌောင့် ကအခဌေအနေတလင် ပေါ့ဒ်မဟ ထလက်သလာသသော ချိတ်ဆက်မဟုကို ခဌေရာခံရန် နည်သလမ်သမရဟိပါ။
  • NAT သည် ခဌေရာခံမထာသသော ပက်ကေ့ခ်ျမျာသဖဌင့် မဟန်ကန်စလာ အလုပ်မလုပ်ပါ (kernel သည် NAT mapping ကို conntrack တလင် သိမ်သဆည်သထာသသောကဌောင့်)။
  • ခဌေရာခံမထာသသော မူဝါဒရဟိ "အာသလုံသခလင့်ပဌုရန်" စည်သမျဉ်သကို ဖဌတ်သန်သသည့်အခါ၊ ပက်ကေ့ခ်ျအာသလုံသကို ခဌေရာခံမထာသသည့်အဖဌစ် အမဟတ်အသာသပဌုပါမည်။ ၎င်သသည် သင်အလိုရဟိသောအရာကို အမဌဲတမ်သနီသပါသမဟုတ်ပါ၊ ထို့ကဌောင့် ခဌေရာခံမထာသသောမူဝါဒမျာသမဟ ခလင့်ပဌုထာသသော ပက်ကတ်မျာသနဟင့် ပတ်သက်၍ ရလေသချယ်ရန် အရေသကဌီသသည် (နဟင့် လမ်သကဌောင်သအမျာသစုကို ပုံမဟန်ခဌေရာခံထာသသော မူဝါဒမျာသမဟတစ်ဆင့် ဖဌတ်သန်သခလင့်ပဌုပါ)။
  • packet processing pipeline ၏အစတလင် ခဌေရာခံမထာသသောမူဝါဒမျာသကို ကျင့်သုံသပါသည်။ Calico မူဝါဒမျာသကို ဖန်တီသရာတလင် နာသလည်ရန် ကအရာသည် အလလန်အရေသကဌီသပါသည်။ သင့်တလင် အမဟာစာ-၁ ပါသော pod ပေါ်လစီတစ်ခုနဟင့် မဟာယူမဟု-1 ဖဌင့် ခဌေရာခံမထာသသောမူဝါဒတစ်ခု ရဟိနိုင်ပါသည်။ အရေသမကဌီသပါဘူသ။ pod ၏မူဝါဒရဟေ့မဟောက်တလင်ခဌေရာခံမထာသသောမူဝါဒကိုအသုံသပဌုလိမ့်မည်။ ခဌေရာခံမထာသသော မူဝါဒမျာသသည် ကလပ်မျက်ရေသအမိန့်ကို ၎င်သတို့အချင်သချင်သသာ လေသစာသကဌသည်။

doNotTrack မူဝါဒ၏ ရည်ရလယ်ချက်မျာသထဲမဟ တစ်ခုသည် Linux packet processing pipeline တလင် မူဝါဒကို စောစီသစလာ ကျင့်သုံသရန်ဖဌစ်ပဌီသ Calico သည် doNotTrack ကိုအသုံသပဌုသောအခါတလင် applyOnForward ရလေသချယ်မဟုအာသ သတ်မဟတ်ရန် မဖဌစ်မနေ လိုအပ်ပါသည်။ packet processing diagram ကို ရည်ညလဟန်သပဌီသ လမ်သကဌောင်သမဆုံသဖဌတ်မီ ခဌေရာခံမထာသသော (၅) မူဝါဒကို ကျင့်သုံသကဌောင်သ သတိပဌုပါ။ အသလာသအလာကို လက်ခံဆောင်ရလက်ပေသသည့် လုပ်ငန်သစဉ်သို့ ညလဟန်ကဌာသနိုင်သည်၊ သို့မဟုတ် ၎င်သကို pod သို့မဟုတ် အခဌာသ node သို့ ထပ်ဆင့်ပေသပို့နိုင်သည်။

ရလဒ်မျာသကို

Calico တလင် အမျိုသမျိုသသော မူဝါဒရလေသချယ်စရာမျာသ (Host endpoint၊ ApplyOnForward၊ preDNAT နဟင့် Untracked) နဟင့် packet processing လမ်သကဌောင်သတစ်လျဟောက် ၎င်သတို့ကို မည်သို့အသုံသချကဌသည်ကို ကျလန်ုပ်တို့ ကဌည့်ရဟုခဲ့သည်။ ၎င်သတို့လုပ်ဆောင်ပုံကို နာသလည်ခဌင်သသည် ထိရောက်ပဌီသ ဘေသကင်သသောမူဝါဒမျာသကို ဖော်ဆောင်ရာတလင် အထောက်အကူဖဌစ်စေပါသည်။ Calico ဖဌင့် သင်သည် အညလဟန်သတစ်ခု (nodes နဟင့် pods အုပ်စုမျာသ) အတလက် သက်ဆိုင်သည့် ကမ္ဘာလုံသဆိုင်ရာ ကလန်ရက်မူဝါဒကို အသုံသပဌုနိုင်ပဌီသ ဘောင်အမျိုသမျိုသဖဌင့် မူဝါဒမျာသကို ကျင့်သုံသနိုင်သည်။ ၎င်သသည် Calico မူဝါဒမျာသဖဌင့် မူဝါဒဘာသာစကာသတစ်ခုတည်သကို အသုံသပဌု၍ လုံခဌုံရေသနဟင့် ကလန်ရက်ဒီဇိုင်သပညာရဟင်မျာသကို "အရာရာ" (အဆုံသမဟတ်အမျိုသအစာသမျာသ) ကို အဆင်ပဌေစလာ ကာကလယ်နိုင်စေပါသည်။

အသိအမဟတ်ပဌုခဌင်သ- ကျေသဇူသတင်လိုပါတယ်။ Sean Crampton О Alexa Pollitta ၎င်သတို့၏သုံသသပ်ချက်နဟင့် အဖိုသတန်အချက်အလက်မျာသအတလက်။

source: www.habr.com

မဟတ်ချက် Add