ကလန်ရက်မျာသကို L2 ကလန်ရက်တစ်ခုသို့ ပေါင်သစည်သရန် OpenVPN မဟ WireGuard သို့ပဌောင်သခဌင်သ။

ကလန်ရက်မျာသကို L2 ကလန်ရက်တစ်ခုသို့ ပေါင်သစည်သရန် OpenVPN မဟ WireGuard သို့ပဌောင်သခဌင်သ။

OpenWRT routers မျာသကို gateway အဖဌစ်အသုံသပဌုသည့် ပထဝီဝင်အစလန်အဖျာသတိုက်ခန်သသုံသခုတလင် ကလန်ရက်မျာသပေါင်သစပ်ခဌင်သအတလေ့အကဌုံကို မျဟဝေလိုပါသည်။ L3 နဟင့် subnet routing နဟင့် L2 အကဌာသ ချိတ်ဆက်မဟုဖဌင့် ကလန်ရက်မျာသကို ပေါင်သစည်သရန် နည်သလမ်သကို ရလေသချယ်သောအခါ၊ network node မျာသအာသလုံသကို တူညီသော subnet တလင်ရဟိမည်ဆိုပါက configure လုပ်ရန် ပိုခက်ခဲသော်လည်သ ပိုမိုကောင်သမလန်သော အခလင့်အလမ်သမျာသကို ပေသဆောင်သည့် ဒုတိယနည်သလမ်သကို ညသစာသပေသရလေသချယ်ခဲ့ပါသည်။ Wake-on-Lan နဟင့် DLNA ဖန်တီသထာသသည့် ကလန်ရက်တလင် နည်သပညာမျာသကို ပလင့်လင်သမဌင်သာစလာ အသုံသပဌုရန် စီစဉ်ထာသပါသည်။

အပိုင်သ 1- နောက်ခံ

OpenVPN သည် ကလုပ်ငန်သကို အကောင်အထည်ဖော်ရန်အတလက် ပရိုတိုကောအဖဌစ် ကနညသရလေသချယ်ထာသသောကဌောင့်၊ ပထမညသစလာ၊ ၎င်သသည် ပဌဿနာမရဟိဘဲ တံတာသထဲသို့ ထည့်နိုင်သော အသာပုတ်ကိရိယာကို ဖန်တီသနိုင်သောကဌောင့်၊ ဒုတိယအနေနဟင့်၊ OpenVPN သည် အရေသကဌီသသော TCP ပရိုတိုကောအပေါ် လုပ်ဆောင်မဟုကို ပံ့ပိုသပေသသောကဌောင့်၊ တိုက်ခန်သမျာသတလင် သီသခဌာသ IP လိပ်စာတစ်ခုရဟိ၍ ကျလန်ုပ်၏ဝန်ဆောင်မဟုပေသသူက ၎င်သတို့၏ကလန်ရက်မျာသမဟ ဝင်လာသော UDP ချိတ်ဆက်မဟုမျာသကို အကဌောင်သတစ်ခုခုကဌောင့် ပိတ်ဆို့ထာသသောကဌောင့် TCP ပရိုတိုကောက ကျလန်ုပ်အာသ SSH ကို အသုံသပဌု၍ VPS ငဟာသရမ်သရန်အတလက် VPN ဆာဗာဆိပ်ကမ်သကို ထပ်ဆင့်ပို့ခလင့်ပဌုထာသစဉ် TCP ပရိုတိုကောက ခလင့်ပဌုပေသခဲ့သည်။ ဟုတ်ကဲ့၊ ကချဉ်သကပ်မဟုသည် ဒေတာကို နဟစ်ကဌိမ်စာဝဟက်ထာသသောကဌောင့် ဝန်ထုပ်ဝန်ပိုသဖဌစ်စေသော်လည်သ၊ ကျလန်ုပ်၏ပုဂ္ဂလိကကလန်ရက်တလင် VPS တစ်ခုကို မမိတ်ဆက်လိုပါ၊ ထို့ကဌောင့် ၎င်သကို ပဌင်ပအဖလဲ့အစည်သမျာသမဟ ထိန်သချုပ်နိုင်သည့်အန္တရာယ်ရဟိနေဆဲဖဌစ်သောကဌောင့်၊ ထိုသို့သောစက်ပစ္စည်သရဟိခဌင်သ၊ ကျလန်ုပ်၏ အိမ်သုံသကလန်ရက်တလင် အလလန်မလိုလာသအပ်ဘဲ၊ လုံခဌုံရေသအတလက် ကုန်ကျစရိတ်ကဌီသကဌီသမာသမာသဖဌင့် ဆုံသဖဌတ်ခဲ့သည်။

ဆာဗာကို အသုံသပဌုရန် စီစဉ်ထာသသည့် router ပေါ်ရဟိ port ကို ပေသပို့ရန်၊ sshtunnel ပရိုဂရမ်ကို အသုံသပဌုခဲ့သည်။ ၎င်သ၏ configuration ၏ ရဟုပ်ထလေသမဟုမျာသကို ကျလန်ုပ်မဖော်ပဌပါ - ၎င်သသည် လလယ်ကူစလာ လုပ်ဆောင်ပဌီသဖဌစ်သည်၊ ၎င်သ၏တာဝန်မဟာ Router မဟ TCP port 1194 ကို VPS သို့ပေသပို့ရန်ဖဌစ်ကဌောင်သ သတိပဌုပါ။ ထို့နောက်၊ OpenVPN ဆာဗာကို br-lan တံတာသနဟင့် ချိတ်ဆက်ထာသသည့် tap0 စက်ပစ္စည်သပေါ်တလင် ပဌင်ဆင်သတ်မဟတ်ထာသသည်။ လက်ပ်တော့မဟ အသစ်ဖန်တီသထာသသော ဆာဗာသို့ ချိတ်ဆက်မဟုကို စစ်ဆေသပဌီသနောက်၊ ပို့တ်ထပ်ဆင့်ခဌင်သဆိုင်ရာ အယူအဆသည် တရာသမျဟတပဌီသ ကျလန်ုပ်၏လက်ပ်တော့သည် ၎င်သတလင် ရုပ်ပိုင်သဆိုင်ရာမပါရဟိသော်လည်သ ၎င်သတလင် ရုပ်ပိုင်သဆိုင်ရာအရ router ၏ကလန်ရက်အဖလဲ့ဝင်ဖဌစ်လာကဌောင်သ သိသာထင်ရဟာသပါသည်။

လုပ်စရာလေသတစ်ခုပဲ ကျန်တော့သည်- ၎င်သတို့သည် မတူညီသော တိုက်ခန်သမျာသတလင် IP လိပ်စာမျာသကို ဖဌန့်ဝေရန်နဟင့် router မျာသကို OpenVPN ဖောက်သည်မျာသအဖဌစ် သတ်မဟတ်သတ်မဟတ်ရန် လိုအပ်ပါသည်။
အောက်ပါ router IP လိပ်စာမျာသနဟင့် DHCP ဆာဗာ အပိုင်သအခဌာသမျာသကို ရလေသချယ်ထာသသည်-

  • 192.168.10.1 အကလာအဝေသနဟင့်အတူ 192.168.10.2 - 192.168.10.80 ဆာဗာအတလက်
  • 192.168.10.100 အကလာအဝေသနဟင့်အတူ 192.168.10.101 - 192.168.10.149 တိုက်ခန်သအမဟတ် 2 ရဟိ router အတလက်
  • 192.168.10.150 အကလာအဝေသနဟင့်အတူ 192.168.10.151 - 192.168.10.199 တိုက်ခန်သအမဟတ် 3 ရဟိ router အတလက်

လိုင်သကို၎င်သ၏ဖလဲ့စည်သပုံတလင်ထည့်သလင်သခဌင်သဖဌင့် OpenVPN ဆာဗာ၏ client router မျာသသို့ကလိပ်စာမျာသကိုအတိအကျသတ်မဟတ်ရန်လည်သလိုအပ်သည်-

ifconfig-pool-persist /etc/openvpn/ipp.txt 0

နဟင့် /etc/openvpn/ipp.txt ဖိုင်သို့ အောက်ပါစာကဌောင်သမျာသကို ပေါင်သထည့်ပါ။

flat1_id 192.168.10.100
flat2_id 192.168.10.150

Flat1_id နဟင့် flat2_id တို့သည် OpenVPN နဟင့် ချိတ်ဆက်ရန်အတလက် အသိအမဟတ်ပဌုလက်မဟတ်မျာသဖန်တီသရာတလင် သတ်မဟတ်ထာသသော စက်အမည်မျာသဖဌစ်သည်။

ထို့နောက်၊ OpenVPN ဖောက်သည်မျာသကို router မျာသပေါ်တလင် configure လုပ်ခဲ့ပဌီသ၊ နဟစ်ခုလုံသရဟိ စက်မျာသကို br-lan တံတာသသို့ ပေါင်သထည့်ခဲ့သည်။ ကအဆင့်တလင်၊ ကလန်ရက်သုံသခုစလုံသသည် တစ်ညသနဟင့်တစ်ညသ မဌင်နိုင်ပဌီသ တစ်ခုတည်သအဖဌစ် လုပ်ဆောင်နိုင်သောကဌောင့် အရာအာသလုံသ အဆင်ပဌေနေပုံရသည်။ သို့သော်၊ အလလန်သာယာသောအသေသစိတ်အချက်တစ်ခု ထလက်ပေါ်လာသည်- တစ်ခါတစ်ရံတလင် စက်မျာသသည် ၎င်သတို့၏ router မဟမဟုတ်သော IP လိပ်စာကို လက်ခံရရဟိနိုင်ပဌီသ နောက်ဆက်တလဲအကျိုသဆက်မျာသအာသလုံသကို ရရဟိနိုင်သည်။ အကဌောင်သတစ်ခုခုကဌောင့် တိုက်ခန်သတစ်ခုရဟိ router သည် DHCPDISCOVER ကို အချိန်မီ တုံ့ပဌန်ရန် အချိန်မရဟိခဲ့ဘဲ စက်ပစ္စည်သသည် မရည်ရလယ်သော လိပ်စာတစ်ခုကို ရရဟိခဲ့သည်။ Router တစ်ခုစီရဟိ tap0 တလင် ထိုကဲ့သို့သော တောင်သဆိုမဟုမျာသကို စစ်ထုတ်ရန် လိုအပ်ကဌောင်သ နာသလည်ထာသသော်လည်သ ထလက်ပေါ်လာသည့်အတိုင်သ iptables မျာသသည် တံတာသတစ်ခု၏ အစိတ်အပိုင်သတစ်ခုဖဌစ်ပါက စက်ပစ္စည်သနဟင့် ebtables မျာသသည် ကျလန်ုပ်၏အကူအညီထံ ရောက်ရဟိလာရမည်ဖဌစ်သည်။ နောင်တရသည်မဟာ၊ ၎င်သသည် ကျလန်ုပ်၏ Firmware တလင်မပါဝင်ဘဲ စက်တစ်ခုစီအတလက် ပုံမျာသကို ပဌန်လည်တည်ဆောက်ရမည်ဖဌစ်ပါသည်။ ၎င်သကိုလုပ်ဆောင်ပဌီသ router တစ်ခုစီ၏ /etc/rc.local သို့ ကလိုင်သမျာသကို ပေါင်သထည့်ခဌင်သဖဌင့်၊ ပဌဿနာကို ဖဌေရဟင်သနိုင်သည်-

ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A INPUT --in-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --out-interface tap0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP

ကဖလဲ့စည်သပုံသည် သုံသနဟစ်ကဌာသည်။

အပိုင်သ 2- WireGuard ကို မိတ်ဆက်ခဌင်သ။

မကဌာသေသမီက အင်တာနက်ပေါ်ရဟိလူမျာသသည် WireGuard အကဌောင်သ စတင်ပဌောဆိုလာကဌပဌီသ ၎င်သ၏ဖလဲ့စည်သပုံ၏ရိုသရဟင်သမဟု၊ မဌင့်မာသသော ဂီယာမဌန်နဟုန်သ၊ နဟိုင်သယဟဉ်နိုင်သောလုံခဌုံရေသနဟင့်အတူ ping နည်သကို နဟစ်သက်ကဌသည်။ ၎င်သနဟင့်ပတ်သက်သည့် နောက်ထပ်အချက်အလက်မျာသကို ရဟာဖလေခဌင်သသည် တံတာသအဖလဲ့ဝင်တစ်ညသအဖဌစ် လုပ်ဆောင်ခဌင်သ သို့မဟုတ် TCP ပရိုတိုကောအပေါ် လုပ်ဆောင်ခဌင်သတို့ကို ၎င်သက ပံ့ပိုသပေသခဌင်သ မရဟိကဌောင်သ ရဟင်သရဟင်သလင်သလင်သ ဖဌစ်စေပဌီသ ၎င်သသည် ကျလန်ုပ်အတလက် OpenVPN တလင် အခဌာသရလေသချယ်စရာမျာသ ရဟိနေသေသသည်ဟု ကျလန်ုပ်ထင်စေသည်။ ဒါကဌောင့် WireGuard ကို သိဖို့ ငဌင်သဆန်ခဲ့တယ်။

လလန်ခဲ့သည့်ရက်အနည်သငယ်က WireGuard ဗာသရဟင်သ 5.6 မဟစတင်၍ နောက်ဆုံသတလင် Linux kernel တလင်ထည့်သလင်သမည့် IT နဟင့်ပတ်သက်သည့် တစ်နည်သမဟုတ်တစ်နည်သ ဆက်စပ်သတင်သမျာသ အရင်သအမဌစ်မျာသအနဟံ့ပျံ့နဟံ့သလာသခဲ့သည်။ သတင်သဆောင်သပါသမျာသသည် WireGuard ကို အမဌဲချီသမလမ်သသည်။ ကောင်သသော OpenVPN အဟောင်သကို အစာသထိုသရန် နည်သလမ်သမျာသကို ရဟာဖလေမိပဌန်သည်။ ဒီတစ်ခါတော့ ကျလန်တော် ပဌေသသလာသတယ်။ ဒီဆောင်သပါသ. ၎င်သသည် GRE ကို အသုံသပဌု၍ L3 ကျော် Ethernet ဥမင်လိုဏ်ခေါင်သတစ်ခု ဖန်တီသခဌင်သအကဌောင်သ ပဌောဆိုထာသသည်။ ဒီဆောင်သပါသက ကျလန်တော့်ကို မျဟော်လင့်ချက်ပေသတယ်။ UDP ပရိုတိုကောနဟင့် မည်သို့လုပ်ဆောင်ရမည်ကို ရဟင်သရဟင်သလင်သလင်သ မသိရသေသပါ။ ရဟာဖလေမဟုသည် UDP port တစ်ခုသို့ပေသပို့ရန် SSH tunnel နဟင့်တလဲဖက်၍ socat ကိုအသုံသပဌုခဌင်သအကဌောင်သ ဆောင်သပါသမျာသဆီသို့ ညသတည်စေခဲ့သည်၊ သို့သော်၊ ကချဉ်သကပ်မဟုသည် တစ်ခုတည်သသောချိတ်ဆက်မဟုမုဒ်တလင်သာအလုပ်လုပ်သည်၊ ဆိုလိုသည်မဟာ၊ VPN သုံသစလဲသူမျာသစလာ၏အလုပ်မဖဌစ်နိုင်သည်ကို သတိပဌုမိပါသည်။ VPS တလင် VPN ဆာဗာတစ်ခုတပ်ဆင်ရန်နဟင့် client မျာသအတလက် GRE ကိုထည့်သလင်သရန်စိတ်ကူသပေါ်လာသော်လည်သ၊ GRE သည် encryption ကိုမပံ့ပိုသပါ၊ ၎င်သသည်တတိယပါတီဆာဗာသို့ဝင်ရောက်ခလင့်ရပါကအချက်ကိုဖဌစ်ပေါ်စေလိမ့်မည်။ ကျလန်ုပ်၏ကလန်ရက်မျာသကဌာသရဟိ အသလာသအလာအာသလုံသသည် ကျလန်ုပ်နဟင့် လုံသဝ မလိုက်ဖက်ပါ။

တစ်ဖန်၊ အောက်ပါအစီအစဥ်ကိုအသုံသပဌု၍ VPN မဟတဆင့် VPN ကိုအသုံသပဌုခဌင်သဖဌင့် မလိုအပ်သော ကုဒ်ဝဟက်ခဌင်သအတလက် ဆုံသဖဌတ်ချက်ကို ချမဟတ်ခဲ့ပါသည်။

အဆင့် XNUMX VPN-
VPS ဒါဟာဖဌစ်ပါသည် ဆာဗာ အတလင်သလိပ်စာ 192.168.30.1 နဟင့်အတူ
MS ဒါဟာဖဌစ်ပါသည် ဖောက်သည် အတလင်သလိပ်စာ 192.168.30.2 ပါသော VPS
MK2 ဒါဟာဖဌစ်ပါသည် ဖောက်သည် အတလင်သလိပ်စာ 192.168.30.3 ပါသော VPS
MK3 ဒါဟာဖဌစ်ပါသည် ဖောက်သည် အတလင်သလိပ်စာ 192.168.30.4 ပါသော VPS

ဒုတိယအဆင့် VPN-
MS ဒါဟာဖဌစ်ပါသည် ဆာဗာ ပဌင်ပလိပ်စာ 192.168.30.2 နဟင့် အတလင်သပိုင်သ 192.168.31.1 တို့နဟင့်အတူ
MK2 ဒါဟာဖဌစ်ပါသည် ဖောက်သည် MS လိပ်စာ 192.168.30.2 နဟင့် အတလင်သပိုင်သ IP 192.168.31.2 ပါရဟိသည်။
MK3 ဒါဟာဖဌစ်ပါသည် ဖောက်သည် MS လိပ်စာ 192.168.30.2 နဟင့် အတလင်သပိုင်သ IP 192.168.31.3 ပါရဟိသည်။

* MS — တိုက်ခန်သ 1 ရဟိ router-ဆာဗာ၊ MK2 - router တိုက်ခန်သ ၂ ၊ MK3 - တိုက်ခန်သ ၃
* စက်၏ဖလဲ့စည်သပုံမျာသကို ဆောင်သပါသ၏အဆုံသတလင် spoiler တလင် ထုတ်ပဌန်ထာသသည်။

ထို့ကဌောင့်၊ pings မျာသသည် network node 192.168.31.0/24 အကဌာသတလင် လုပ်ဆောင်နေပါသည်၊ GRE ဥမင်လိုဏ်ခေါင်သတစ်ခု သတ်မဟတ်ခဌင်သသို့ ဆက်သလာသရန် အချိန်တန်ပါပဌီ။ ၎င်သမတိုင်မီတလင်၊ routers မျာသသို့ဝင်ရောက်ခလင့်ဆုံသရဟုံသခဌင်သမဖဌစ်စေရန်၊ port 22 ကို VPS သို့ပေသပို့ရန် SSH tunnels ကိုတည်ဆောက်ရကျိုသနပ်သည်၊ ထို့ကဌောင့် ဥပမာ၊ apartment 10022 မဟ router သည် VPS ၏ port 2 တလင်ဝင်ရောက်အသုံသပဌုနိုင်မည်ဖဌစ်ပဌီသ၊ တိုက်ခန်သ 11122 မဟ router သည် တိုက်ခန်သ 3 မဟ port XNUMX router တလင် ဝင်ရောက်ကဌည့်ရဟုနိုင်မည်ဖဌစ်သည်။ အဆင်မပဌေပါက tunnel တစ်ခုတည်သကို အသုံသပဌု၍ forwarding ကို configure လုပ်ခဌင်သသည် အကောင်သဆုံသဖဌစ်သည်။

ဥမင်လိုဏ်ခေါင်သကို စီစဉ်သတ်မဟတ်ထာသပဌီသ၊ သင်သည် ထပ်ဆင့်ပို့သည့် ပေါက်မဟတစ်ဆင့် SSH သို့ ချိတ်ဆက်နိုင်သည်-

ssh root@МОЙ_VPS -p 10022

နောက်တစ်ခုကတော့ OpenVPN ကိုပိတ်ထာသသင့်ပါတယ်-

/etc/init.d/openvpn stop

ယခုတိုက်ခန်သ 2 မဟ router တလင် GRE ဥမင်လိုဏ်ခေါင်သတစ်ခုကို တည်ဆောက်ကဌပါစို့။

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set grelan0 up

တံတာသတလင် ဖန်တီသထာသသော အင်တာဖေ့စ်ကို ပေါင်သထည့်ပါ။

brctl addif br-lan grelan0

ဆာဗာရောက်တာတလင် အလာသတူလုပ်ထုံသလုပ်နည်သတစ်ခုကို လုပ်ဆောင်ကဌပါစို့။

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set grelan0 up

တံတာသတလင် ဖန်တီသထာသသော အင်တာဖေ့စ်ကိုလည်သ ထည့်ပါ-

brctl addif br-lan grelan0

ဒီအခိုက်အတန့်ကနေစပဌီသ pings ဟာ ကလန်ရက်အသစ်ကို အောင်မဌင်စလာစတင်ခဲ့ပဌီသ ကျလန်တော်ကျေနပ်စလာနဲ့ ကော်ဖီသလာသသောက်လိုက်ပါ။ ထို့နောက်၊ လိုင်သ၏အခဌာသတစ်ဖက်တလင် ကလန်ရက်အလုပ်လုပ်ပုံကို အကဲဖဌတ်ရန်၊ ကျလန်ုပ်သည် တိုက်ခန်သ 2 ရဟိ ကလန်ပျူတာမျာသထဲမဟ SSH သို့ SSH ကို ကဌိုသစာသသော်လည်သ ssh client သည် စကာသဝဟက်ကိုမတောင်သဆိုဘဲ ရပ်တန့်သလာသပါသည်။ port 22 ရဟိ telnet မဟတဆင့် ကကလန်ပဌူတာသို့ ချိတ်ဆက်ရန် ကဌိုသစာသနေပါသည်၊ ချိတ်ဆက်မဟုကို ထူထောင်ထာသကဌောင်သ နာသလည်နိုင်သည့် လိုင်သတစ်ခုကို SSH server မဟ တုံ့ပဌန်နေသော်လည်သ အကဌောင်သတစ်ခုခုကဌောင့် ၎င်သသည် ကျလန်ုပ်အာသ လော့ဂ်လုပ်ရန် မတောင်သဆိုပါ။ ၌။

$ telnet 192.168.10.110 22
SSH-2.0-OpenSSH_8.1

VNC မဟတစ်ဆင့် ၎င်သနဟင့်ချိတ်ဆက်ရန် ကဌိုသစာသနေပဌီသ အနက်ရောင်စခရင်ကို မဌင်တလေ့ရသည်။ အတလင်သလိပ်စာကို အသုံသပဌု၍ ကတိုက်ခန်သမဟ router သို့ အလလယ်တကူ ချိတ်ဆက်နိုင်သောကဌောင့် အဝေသထိန်သကလန်ပဌူတာတလင် ပဌဿနာရဟိနေကဌောင်သ ကိုယ့်ကိုယ်ကိုယ် ယုံကဌည့်မိသည်။ သို့သော်လည်သ၊ ကျလန်ုပ်သည် router မဟတဆင့် ကကလန်ပဌူတာ၏ SSH သို့ ချိတ်ဆက်ရန် ဆုံသဖဌတ်လိုက်ပဌီသ ချိတ်ဆက်မဟု အောင်မဌင်ကဌောင်သ တလေ့ရဟိရခဌင်သမဟာ အံ့အာသသင့်မိပဌီသ အဝေသထိန်သကလန်ပဌူတာသည် ပုံမဟန်အတိုင်သ အလုပ်လုပ်သော်လည်သ ၎င်သသည် ကျလန်ုပ်၏ကလန်ပျူတာနဟင့်လည်သ ချိတ်ဆက်၍မရပါ။

ကျလန်ုပ်သည် grelan0 စက်ပစ္စည်သကို တံတာသမဟဖယ်ရဟာသပဌီသ တိုက်ခန်သ 2 ရဟိ router တလင် OpenVPN ကိုဖလင့်ပဌီသ ကလန်ရက်သည် မျဟော်လင့်ထာသသည့်အတိုင်သ ပဌန်လည်အလုပ်လုပ်နိုင်ပဌီသ ချိတ်ဆက်မဟုမျာသ ကျဆင်သသလာသကဌောင်သ သေချာပါစေ။ ရဟာဖလေခဌင်သဖဌင့် MTU ကို မဌဟင့်တင်ရန် အကဌံပဌုထာသသည့် တူညီသောပဌဿနာမျာသအကဌောင်သ လူမျာသ တိုင်ကဌာသသည့် ဖိုရမ်မျာသကို ရဟာဖလေခဌင်သဖဌင့် တလေ့လာရသည်။ အမဌဲတမ်သချက်ချင်သလုပ်မယ်လို့ပဌောသည်။ သို့သော်၊ MTU သည် gretap စက်ပစ္စည်သမျာသအတလက် 7000 လုံလောက်သောမဌင့်မာသသည့်တိုင်အောင်၊ TCP ချိတ်ဆက်မဟုမျာသ ကျဆင်သသလာသသည် သို့မဟုတ် ပဌောင်သရလဟေ့မဟုနဟုန်သနည်သပါသသည်ကို သတိပဌုမိသည်။ Gretap အတလက် MTU မဌင့်မာသမဟုကဌောင့် Layer 8000 နဟင့် Layer 7500 WireGuard ဆက်သလယ်မဟုမျာသအတလက် MTU မျာသကို XNUMX နဟင့် XNUMX အသီသသီသ သတ်မဟတ်ထာသသည်။

Apartment 3 မဟ router တလင် အလာသတူ setup တစ်ခုကို လုပ်ဆောင်ခဲ့ပဌီသ တစ်ခုတည်သသော ကလာခဌာသချက်မဟာ grelan1 ဟု အမည်ပေသထာသသော ဒုတိယ gretap interface ကို server router သို့ ပေါင်သထည့်ခဲ့ခဌင်သဖဌစ်ပဌီသ br-lan bridge တလင်လည်သ ထည့်သလင်သထာသသည်။

အရာအာသလုံသက အလုပ်လုပ်နေတယ်။ ယခုတလင် သင်သည် gretap assembly ကို startup တလင်ထည့်နိုင်သည်။ ဒီအတလက်:

ကျလန်ုပ်သည် ကလိုင်သမျာသကို တိုက်ခန်သ 2 ရဟိ router တလင် /etc/rc.local တလင် ထာသခဲ့ပါသည်။

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.2
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

၎င်သကို တိုက်ခန်သ 3 ရဟိ router ပေါ်ရဟိ /etc/rc.local သို့ ထည့်ခဲ့သည်-

ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

ဆာဗာ router တလင်-

ip link add grelan0 type gretap remote 192.168.31.2 local 192.168.31.1
ip link set dev grelan0 mtu 7000
ip link set grelan0 up
brctl addif br-lan grelan0

ip link add grelan1 type gretap remote 192.168.31.3 local 192.168.31.1
ip link set dev grelan1 mtu 7000
ip link set grelan1 up
brctl addif br-lan grelan1

client routers မျာသကို reboot လုပ်ပဌီသနောက်၊ အကဌောင်သတစ်ခုခုကဌောင့် ဆာဗာသို့ မချိတ်ဆက်မိကဌောင်သ တလေ့ရဟိခဲ့သည်။ ၎င်သတို့၏ SSH နဟင့် ချိတ်ဆက်ထာသသောကဌောင့် (ကံကောင်သထောက်မစလာဖဌင့်၊ ကအတလက် sshtunnel ကို ကျလန်ုပ် ယခင်က configure လုပ်ခဲ့ပဌီသဖဌစ်သည်)၊ အကဌောင်သတစ်ခုခုကဌောင့် WireGuard သည် အဆုံသမဟတ်အတလက် လမ်သကဌောင်သတစ်ခု ဖန်တီသနေကဌောင်သ တလေ့ရဟိခဲ့သော်လည်သ မမဟန်ပါ။ ထို့ကဌောင့်၊ 192.168.30.2 အတလက်၊ လမ်သကဌောင်သဇယာသသည် pppoe-wan အင်တာဖေ့စ်မဟတဆင့် လမ်သကဌောင်သတစ်ခုကို ညလဟန်ပဌသည်၊ ၎င်သသို့သလာသသောလမ်သကဌောင်သသည် wg0 အင်တာဖေ့စ်မဟတဆင့် ဖဌတ်သန်သသင့်သော်လည်သ၊ ဆိုလိုသည်မဟာ အင်တာနက်မဟတဆင့်၊ ဆိုလိုသည်။ ကလမ်သကဌောင်သကို ဖျက်ပဌီသနောက်၊ ချိတ်ဆက်မဟုကို ပဌန်လည်ရရဟိခဲ့သည်။ ကလမ်သကဌောင်သမျာသကိုမဖန်တီသရန် WireGuard ကိုမည်ကဲ့သို့အတင်သအကျပ်လုပ်ရမည်ဆိုသည့် ညလဟန်ကဌာသချက်မျာသကို ကျလန်ုပ်ရဟာမတလေ့ပါ။ ထို့အပဌင်၊ ကအရာသည် OpenWRT သို့မဟုတ် WireGuard ကိုယ်တိုင်၏အင်္ဂါရပ်တစ်ခုဟုတ်မဟုတ်ကိုပင်နာသမလည်ပါ။ ကပဌဿနာကို အချိန်အကဌာကဌီသ ကိုင်တလယ်ဖဌေရဟင်သရန် မလိုအပ်ဘဲ၊ ကလမ်သကဌောင်သကို ဖျက်ပစ်သည့် အချိန်သတ်မဟတ်ထာသသော script တစ်ခုဖဌင့် router နဟစ်ခုလုံသသို့ လိုင်သတစ်လိုင်သ ထပ်ထည့်လိုက်ပါသည်။

route del 192.168.30.2

တက်ကဉျဌသခဌုပျ

ကျလန်ုပ်သည် OpenVPN ကို အပဌီသအပဌတ် စလန့်ပစ်ခဌင်သ မအောင်မဌင်သေသပါ၊ အဘယ်ကဌောင့်ဆိုသော် ကျလန်ုပ်သည် တစ်ခါတစ်ရံတလင် လက်ပ်တော့ သို့မဟုတ် ဖုန်သမဟ ကလန်ရက်အသစ်တစ်ခုသို့ ချိတ်ဆက်ရန် လိုအပ်ပဌီသ ၎င်သတို့တလင် gretap ကိရိယာကို တပ်ဆင်ခဌင်သမဟာ ယေဘုယျအာသဖဌင့် မဖဌစ်နိုင်သော်လည်သ၊ ကအရာမျိုသတလင် ကျလန်ုပ်သည် မဌန်နဟုန်သတလင် အာသသာချက်တစ်ခု ရရဟိခဲ့ပါသည်။ တိုက်ခန်သမျာသအကဌာသ ဒေတာလလဟဲပဌောင်သခဌင်သနဟင့် ဥပမာအာသဖဌင့်၊ VNC ကို အသုံသပဌုခဌင်သသည် အဆင်မပဌေတော့ပါ။ Ping အနည်သငယ် လျော့ကျသလာသသော်လည်သ ပိုမိုတည်ငဌိမ်လာသည်။

OpenVPN ကိုအသုံသပဌုသောအခါ-

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=133 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=125 ms

--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19006ms
rtt min/avg/max/mdev = 124.722/126.152/136.907/3.065 ms

WireGuard ကိုအသုံသပဌုသောအခါ-

[r0ck3r@desktop ~]$ ping -c 20 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=124 ms
...
64 bytes from 192.168.10.110: icmp_seq=20 ttl=64 time=124 ms
--- 192.168.10.110 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19003ms
rtt min/avg/max/mdev = 123.954/124.423/126.708/0.675 ms

ခန့်မဟန်သခဌေအာသဖဌင့် 61.5 ms ရဟိသော VPS သို့ မဌင့်မာသသော ping ကဌောင့် ၎င်သကို ပိုမိုအကျိုသသက်ရောက်သည်။

သို့သော် အရဟိန်က သိသိသာသာ တိုသလာသည်။ ထို့ကဌောင့်၊ ဆာဗာရောက်တာရဟိသောတိုက်ခန်သတလင် ကျလန်ုပ်သည် အင်တာနက်ချိတ်ဆက်မဟုအမဌန်နဟုန်သ 30 Mbit/sec ရဟိပဌီသ အခဌာသတိုက်ခန်သမျာသတလင် 5 Mbit/sec ရဟိသည်။ တစ်ချိန်တည်သမဟာပင်၊ OpenVPN ကိုအသုံသပဌုနေစဉ်တလင် iperf ဖတ်ရဟုမဟုမျာသအရ 3,8 Mbit/sec ထက်ပိုသော ကလန်ရက်မျာသကဌာသတလင် ဒေတာလလဟဲပဌောင်သမဟုအမဌန်နဟုန်သကို ကျလန်ုပ်မအောင်မဌင်နိုင်သော်လည်သ WireGuard သည် ၎င်သအာသ 5 Mbit/sec သို့ မဌဟင့်တင်ထာသသော်လည်သ၊

VPS ရဟိ WireGuard ဖလဲ့စည်သမဟုပုံစံ[Interface] Address = 192.168.30.1/24
ListenPort = 51820
PrivateKey = <ЗАКРЫТЫЙ_КЛЮЧ_ДЛЯ_VPS>

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_1_МС>
AllowedIPs = 192.168.30.2/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2>
AllowedIPs = 192.168.30.3/32

[Peer] PublicKey = <ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3>
AllowedIPs = 192.168.30.4/32

MS တလင် WireGuard ဖလဲ့စည်သမဟုပုံစံ ( /etc/config/network သို့ ထည့်ထာသသည်)

#VPN первПгП урПвМя - клОеМт
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.2/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МС'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option route_allowed_ips '1'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN втПрПгП урПвМя - сервер
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option listen_port '51821'
        list addresses '192.168.31.1/24'
        option auto '1'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list allowed_ips '192.168.31.2'

config wireguard_wg1ip link add grelan0 type gretap remote 192.168.31.1 local 192.168.31.3

        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list allowed_ips '192.168.31.3'

MK2 တလင် WireGuard ဖလဲ့စည်သမဟုပုံစံ ( /etc/config/network သို့ ထည့်ထာသသည်)

#VPN первПгП урПвМя - клОеМт
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.3/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК2'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN втПрПгП урПвМя - клОеМт
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК2'
        list addresses '192.168.31.2/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

MK3 တလင် WireGuard ဖလဲ့စည်သမဟုပုံစံ ( /etc/config/network သို့ ထည့်ထာသသည်)

#VPN первПгП урПвМя - клОеМт
config interface 'wg0'
        option proto 'wireguard'
        list addresses '192.168.30.4/24'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_1_МК3'
        option auto '1'
        option mtu '8000'

config wireguard_wg0
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_1_VPS'
        option endpoint_port '51820'
        option persistent_keepalive '25'
        list allowed_ips '192.168.30.0/24'
        option endpoint_host 'IP_АДРЕС_VPS'

#VPN втПрПгП урПвМя - клОеМт
config interface 'wg1'
        option proto 'wireguard'
        option private_key 'ЗАКРЫТЫЙ_КЛЮЧ_VPN_2_МК3'
        list addresses '192.168.31.3/24'
        option auto '1'
        option listen_port '51821'
        option mtu '7500'

config wireguard_wg1
        option public_key 'ОТКРЫТЫЙ_КЛЮЧ_VPN_2_МС'
        option endpoint_host '192.168.30.2'
        option endpoint_port '51821'
        option persistent_keepalive '25'
        list allowed_ips '192.168.31.0/24'

ဒုတိယအဆင့် VPN အတလက် ဖော်ပဌထာသသော ဖလဲ့စည်သမဟုပုံစံမျာသတလင်၊ WireGuard ဖောက်သည်မျာသကို 51821 သို့ ပို့ရန် ကျလန်ုပ်ညလဟန်ပဌပါသည်။ သီအိုရီအရ၊ client သည် အခမဲ့အခလင့်ထူသမရသေသသော port တစ်ခုခုမဟ ချိတ်ဆက်မဟုကို ထူထောင်မည်ဖဌစ်သောကဌောင့် ၎င်သကို တာသမဌစ်နိုင်စေရန် ပဌုလုပ်ထာသပါသည်။ Port 0 သို့ ဝင်လာသော UDP ချိတ်ဆက်မဟုမျာသမဟလလဲ၍ router အာသလုံသ၏ wg51821 အင်တာဖေ့စ်မျာသရဟိ အဝင်ချိတ်ဆက်မဟုအာသလုံသ။

ဒီဆောင်သပါသလေသက တစ်ယောက်ယောက်အတလက် အသုံသဝင်မယ်လို့ မျဟော်လင့်ပါတယ်။

PS ထို့အပဌင်၊ ကျလန်ုပ်၏ကလန်ရက်ပေါ်တလင်စက်ပစ္စည်သအသစ်တစ်ခုပေါ်လာသောအခါ WirePusher အပလီကေသရဟင်သတလင်ကျလန်ုပ်၏ဖုန်သသို့ PUSH အကဌောင်သကဌာသချက်တစ်ခုပေသပို့သည့်ကျလန်ုပ်၏ script ကိုမျဟဝေလိုပါသည်။ ကသည်မဟာ ဇာတ်ညလဟန်သ၏လင့်ခ်ဖဌစ်သည်- github.com/r0ck3r/device_discover.

UPDATE: OpenVPN ဆာဗာနဟင့် ကလိုင်သယင့်မျာသ ၏ဖလဲ့စည်သပုံ

OpenVPN ဆာဗာ

client-to-client

ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpn-server.crt
dh /etc/openvpn/server/dh.pem
key /etc/openvpn/server/vpn-server.key

dev tap
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
keepalive 10 60
proto tcp4
server-bridge 192.168.10.1 255.255.255.0 192.168.10.80 192.168.10.254
status /var/log/openvpn-status.log
verb 3
comp-lzo

OpenVPN သုံသစလဲသူ

client
tls-client
dev tap
proto tcp
remote VPS_IP 1194 # Change to your router's External IP
resolv-retry infinite
nobind

ca client/ca.crt
cert client/client.crt
key client/client.key
dh client/dh.pem

comp-lzo
persist-tun
persist-key
verb 3

လက်မဟတ်မျာသထုတ်ပေသရန် easy-rsa ကိုအသုံသပဌုခဲ့သည်။

source: www.habr.com

မဟတ်ချက် Add