TUN ডিভাইস (সি ++ ব্যাকএন্ড) থেকে ট্রাফিক ডিফল্ট গেটওয়েতে ফরোয়ার্ড করা হচ্ছে


10

নিম্নলিখিত সমস্যাটি হ'ল বড় সমস্যাটির এক টুকরো যা আমার সমস্যা আছে। অন্য সমস্ত উপাদান এখনও অবধি কাজ করছে বলে মনে হচ্ছে, তাই আমি খুব ছোট টুকরোটি বর্ণনা করার চেষ্টা করব যা আমার সমস্যা আছে।

আমি লিনাক্স মেশিন পেয়েছেন, সঙ্গে tun0 (টানেলিং ইন্টারফেস) এবং eth0 এর (জাদুকরী ইন্টারনেটের সাথে আমার ডিফল্ট গেটওয়ে যায়)।

লক্ষ্য: আমার লক্ষ্য টিউন0 থেকে আগত প্যাকেটগুলি গ্রহণ করা এবং সেগুলি ডিফল্ট গেটওয়েতে ফরোয়ার্ড করা। সুতরাং আসলে বেশ সহজ NAT কেস, যেখানে আমি টুন0 এর সাথে ইন্টারনেট "ভাগ" করতে চাই যা শারীরিক ইন্টারফেসকে নকল করে।

টুন ব্যবহার করে তৈরি করা হয়েছে

sudo openvpn --mktun --dev tun0 --user USER
sudo ip addr add 10.2.0.1/24 dev tun0
sudo ip link set tun0 up

সুতরাং আমি এটি চালিয়ে যাচ্ছি এবং আমি এটি পিং করতে পারি ইত্যাদি etc. এছাড়াও, আমার কাছে সি ++ অ্যাপ্লিকেশন রয়েছে যা এই টিউএন ডিভাইসটির সাথে সংযুক্ত থাকে, সেখান থেকে পড়তে এবং লিখতে পারে। (এফটিআই: এই যে টিউটোরিয়ালটি আমি অনুসরণ করেছি: http://backreferences.org/2010/03/26/tuntap-interface-tutorial/ )

আমি সি ++ এর বাইট অ্যারেতে 8.8.8.8 তে করা কিছু সঠিক আইসিএমপি (পিং) অনুরোধটি ফেলেছি। এখন, আমার প্রোগ্রামটি ব্যবহার করে আমি এটি টিউন ডিভাইসে লিখছি। আইসিএমপি অনুরোধ আছে

  • উত্স (10.2.0.10) - সুতরাং কার্নেল পিছনের রুটটি জানতে পারে (একই সাবনেট)
  • গন্তব্য (8.8.8.8) - গুগলের ডিএনএস
  • সঠিক চেকসাম ইত্যাদি (ওয়্যারশার্ক / টিশার্কে এটি টিউন 0 এ সঠিকভাবে প্রদর্শিত হবে)

তারপরে, আমার নিম্নলিখিত রুট রয়েছে:

iptables -F # flush
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface tun0 -j ACCEPT

এবং এখানে আমি আটকে আছি :( প্যাকেটটি ডিফল্ট জিডব্লিউতে ফরোয়ার্ড হয় না (টিশার্ক এটি কেবল টিউনটিতে দেখেছিল যা আমি অনুমান করি যে এটি সঠিক)

কি অনুপস্থিত? হতে পারে কিছু বিকল্প পদ্ধতির (তবে এটি টিউন ডিভাইস ব্যবহার করে করতে হবে, এবং আমি এটিতে r / w করতে সক্ষম হতে হবে)। অতিরিক্ত তথ্য:

  • ফরওয়ার্ডিং সক্ষম করা হয়েছে (/ proc / sys / নেট / ipv4 / ip_forward)
  • 8.8.8.8 এথ0 এর মাধ্যমে পৌঁছনীয় (স্থানীয় থেকে)
  • ডিফল্ট গেটওয়েটি সঠিক (ইথপথের মাধ্যমে আইএসপি থেকে)
  • আমি rp_tables (ইকো 0> / proc / sys / নেট / ipv4 / কনফিট / এথ 5 / আরপি_ফিল্টার) বন্ধ করার চেষ্টা করেছি
  • এবং আরও অনেক কিছু...

কোন ইঙ্গিত জন্য অগ্রিম ধন্যবাদ!


আমি জানি এটি এক বছরের বেশি বয়সী, তবে আপনি কি এই সাথে কোথাও পেয়েছেন? আমার ঠিক একইরকম সমস্যা।
hplbsh

উত্তর:


1

বিকল্প সমাধান ব্যবহার করা হবে। সুতরাং bridgeআপনি আপনার টিউনটি এথ0 দিয়ে ব্রিজ করতে পারেন এবং টিউন0-এ আপনার নেট বা আইপ সেট করার দরকার নেই আপনি কেবল ক্লায়েন্টের টানেল ইন্টারফেসের জন্য একই ধরণের সাবটনেট এবং একই গেটওয়ে ব্যবহার করছেন IP

একটি সেতু স্থাপনের জন্য আদেশগুলি:

# brctl addbr br0
# brctl addif br0 eth0 tun0

www.tldp.org/HOWTO/BRIDGE-STP-HOWTO/set-up-the-bridge

ব্র্যাকটিএল ব্যবহার করতে আপনাকে bridge-utilsপ্যাকেজ ইনস্টল করতে হবে ।
যদি আপনার ডিস্ট্রো উবুন্টু হয়:aptitude install bridge-utils


1

আমি সম্প্রতি এই সমস্যায় পড়েছি (প্রশ্নে উল্লিখিত একই নিবন্ধটি অনুসরণ করে) এবং কিছুটা ফিড করার পরে আমি দেখতে পেলাম যে নিম্নলিখিত কমান্ডটি টিউন ডিভাইসের জন্য প্যাকেটের স্থানীয় ফরোয়ার্ডিং সক্ষম করে enable

echo 1 > /proc/sys/net/ipv4/conf/tun0/accept_local

আমি এটির দেরী জানি, আমি কেবল এখানে পোস্ট করছি যাতে যে কেউ একই সমস্যাটির মুখোমুখি হয় তাদের একরকম সাহায্য করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.