আমি @ ব্যবহারকারী 48116 দ্বারা সরবরাহিত উত্তরটি ব্যবহার করেছি এবং এটি একটি কবজির মতো কাজ করে। সেটআপটি আসলে বেশ সহজ!
দ্রষ্টব্য : আমি এটি কেবলমাত্র একটি একক সার্ভারের সাথে দুটি সংযোগের সাথে প্রয়োগ করেছি, কারণ এটি ইতিমধ্যে আমার সমস্যার সমাধান করেছে। আপনি যদি দুটি সার্ভারের সাথে একটি সেটআপ চেষ্টা করতে চান তবে সবচেয়ে সহজ উপায় হ'ল ইউডিপি পোর্টটিকে দ্বিতীয় সার্ভার থেকে প্রথম দিকে ফরোয়ার্ড করার জন্য পোর্ট ফরওয়ার্ডিং ব্যবহার করা এবং এখানে বর্ণিত একই রেসিপিটি ব্যবহার করুন। যদিও আমি নিজে এটি পরীক্ষা করিনি।
প্রথমে নিশ্চিত হয়ে নিন যে আপনার কাছে বন্ধন সমর্থন সহ একটি 2.6 কার্নেল রয়েছে (সমস্ত আধুনিক বিতরণে ডিফল্ট) এবং আপনার কাছে ifenslave ইনস্টল রয়েছে।
এরপরে, এটি আপনার /etc/rc.local বা আপনার পছন্দের অন্য কোনও জায়গায় রাখুন, তবে নিশ্চিত করুন যে ওপেনভিপিএন শুরু হওয়ার আগে এটি চালিত হয়েছে (কারণ এটি বন্ড0-এ বাঁধতে চেষ্টা করবে):
ক্লায়েন্ট:
modprobe bonding mode=broadcast
ifconfig bond0 10.10.0.2 netmask 255.255.255.0 up
এখানে প্রয়োজনে আপনি কিছু রাউটিং যুক্ত করতে পারেন, আপনি অন্যদিকে থেকে সমস্ত যথাযথ রাউটিং করছেন তা নিশ্চিত করুন।
route add -net 10.7.0.0/24 gw 10.10.0.1
সার্ভার:
modprobe bonding mode=broadcast
ifconfig bond0 10.10.0.1 netmask 255.255.255.0 up
একটি /etc/openvpn/tap-up.sh স্ক্রিপ্ট তৈরি করুন (এবং এটি chmod a + x tap-up.sh দিয়ে নির্বাহযোগ্য হিসাবে চিহ্নিত করতে ভুলবেন না):
#!/bin/sh
# called as: cmd tap_dev tap_mtu link_mtu ifconfig_local_ip ifconfig_netmask [ init | restart ]
ifenslave bond0 "$1"
এর পরে, একটি ভাগ করা কী সহ একটি ব্রিজ0a.conf এবং Bridge0b.conf / etc / openvpn / এ যুক্ত করুন। ফাইলগুলি একটি এবং খের জন্য একই, পৃথক বন্দর ব্যতীত (উদাহরণস্বরূপ, খ এর জন্য 3002 ব্যবহার করুন)। আপনার সার্ভারের সর্বজনীন আইপি দ্বারা 11.22.33.44 প্রতিস্থাপন করুন।
ক্লায়েন্ট:
remote 11.22.33.44
dev tap
port 3001
rport 3001
secret bridge.key
comp-lzo
verb 4
nobind
persist-tun
persist-key
script-security 2
up /etc/openvpn/tap-up.sh
সার্ভার:
local 11.22.33.44
dev tap
port 3001
lport 3001
secret bridge.key
comp-lzo
verb 4
script-security 2
up /etc/openvpn/tap-up.sh
আপনার নতুন ভিপিএন কনফিগারেশন শুরু হয়েছে তা নিশ্চিত করার জন্য / ইত্যাদি / ডিফল্ট / ওপেনপিএন সম্পাদনা করতে ভুলবেন না। আপনার মেশিনগুলি পুনরায় বুট করুন, বা rc.local লোড করুন এবং ওপেনভিপিএন ম্যানুয়ালি পুনরায় চালু করুন।
এখন আপনি আপনার সেটআপ পরীক্ষা করতে প্রস্তুত:
# ping 10.10.0.1
PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=50.4 ms
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=51.1 ms (DUP!)
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=51.1 ms (DUP!)
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=51.1 ms (DUP!)
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=52.0 ms
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=52.2 ms (DUP!)
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=53.0 ms (DUP!)
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=53.1 ms (DUP!)
--- 10.10.0.1 ping statistics ---
2 packets transmitted, 2 received, +6 duplicates, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 50.428/51.786/53.160/0.955 ms
যদি সবকিছু ঠিকঠাক হয় এবং লাইনটি ভাল হয়, আপনি প্রতিটি আইসিএমপি প্যাকেজটির জন্য চারটি উত্তর দেখতে পাবেন : আপনার প্যাকেজগুলি স্থানীয় দিকটিতে নকল করা হয়েছে, এবং এই দুটি প্যাকেজের উত্তরগুলি প্রত্যন্ত জায়গায় আবার নকল করা হয়েছে। এটি টিসিপি সংযোগগুলির জন্য কোনও সমস্যা হবে না, কারণ টিসিপি সমস্ত অনুলিপি কেবল উপেক্ষা করবে।
এটি ইউডিপি প্যাকেটের ক্ষেত্রে একটি সমস্যা, কারণ ডুপ্লিকেটগুলি হ্যান্ডেল করার বিষয়টি সফ্টওয়্যারটির। উদাহরণস্বরূপ, একটি ডিএনএস ক্যোয়ারী প্রত্যাশিত দুটির পরিবর্তে চারটি জবাব দেবে (এবং প্রতিক্রিয়ার জন্য দুটি বারের পরিবর্তে চারবারের সাধারণ ব্যান্ডউইথ ব্যবহার করবে):
# tcpdump -i bond0 -n port 53
listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:30:39.870740 IP 10.10.0.2.59330 > 10.7.0.1.53: 59577+ A? serverfault.com. (33)
13:30:40.174281 IP 10.7.0.1.53 > 10.10.0.2.59330: 59577 1/0/0 A 64.34.119.12 (49)
13:30:40.174471 IP 10.7.0.1.53 > 10.10.0.2.59330: 59577 1/0/0 A 64.34.119.12 (49)
13:30:40.186664 IP 10.7.0.1.53 > 10.10.0.2.59330: 59577 1/0/0 A 64.34.119.12 (49)
13:30:40.187030 IP 10.7.0.1.53 > 10.10.0.2.59330: 59577 1/0/0 A 64.34.119.12 (49)
শুভকামনা!