আমি কীভাবে লিনাক্সকে গেটওয়ে হিসাবে ব্যবহার করতে পারি?


16

দ্রষ্টব্য: যদি ক্লায়েন্ট ডিভাইসগুলি ( computer Bএই উদাহরণস্বরূপ) গেটওয়ে কম্পিউটারের মাধ্যমে ইন্টারনেট পেতে চায় তবে তাদের এখনও নেমসারভারের রেজ্যুলেশন কনফিগার করতে হবে। এটি এখানে ব্যাখ্যা করা হয়নি (একটি প্রবেশদ্বার অগত্যা ইন্টারনেট পরিবেশন করে না)।

আমি নেটওয়ার্ক রাউটিংয়ের মূল বিষয়গুলি বোঝার চেষ্টা করছি।
তাই আমি আমার ল্যান নিয়ে পরীক্ষা নিরীক্ষা করছি (আমার জন্য এখনই ইন্টারনেটের দরকার নেই, কেবল ল্যান যোগাযোগ)।

আমি জানি যে নেটওয়ার্ক কনফিগারেশন সম্পর্কিত বিষয়গুলি একটি জটিল জিনিস, তবে আমি কেবলমাত্র একটি কম্পিউটার (এ বলুন) অন্যটির (যেমন বি) (উভয় উবুন্টু লিনাক্স চলমান) এর গেটওয়ে হিসাবে কাজ করার চেষ্টা করছি ।
আমার কেবল রাউটারে পৌঁছতে সক্ষম হওয়ার জন্য খ প্রয়োজন, এটি কেবল এ এর ​​কাছে পৌঁছনীয় is

এই ঘটনা:

Router for computer A  -->  192.168.0.1
Computer A - eth0      -->  192.168.0.2
Computer A - eth1      -->  192.168.1.1

Computer B - eth0      -->  192.168.1.2

কম্পিউটার রাউটারের সাথে সূক্ষ্ম সংযোগ করে
কম্পিউটার এ এবং বি তাদের মধ্যে জরিমানা (পিং, এসএসএইচ ... ইত্যাদি) সংযুক্ত করে
কম্পিউটার বি কম্পিউটারের জন্য রাউটারে পৌঁছতে পারে না A.

আমি ভাবছিলাম যে কেবল ডি কম্পিউটার ডিফল্ট গেটওয়ে হিসাবে বি কম্পিউটার এ যুক্ত করা এবং আই-তে ফরোয়ার্ডিং সক্রিয়করণের ফলে বি এটির জন্য রাউটারে পৌঁছাতে সক্ষম হবে:

luis@ComputerB:~$ sudo route add default gw 192.168.1.1
luis@ComputerB:~$ sudo routel

target            gateway      source        proto    scope  dev   tbl
127.0.0.0         broadcast    127.0.0.1     kernel   link   lo    local
127.0.0.0 8       local        127.0.0.1     kernel   host   lo    local
127.0.0.1         local        127.0.0.1     kernel   host   lo    local
127.255.255.255   broadcast    127.0.0.1     kernel   link   lo    local
192.168.1.0       broadcast    192.168.1.2   kernel   link   eth0  local
192.168.1.2       local        192.168.1.2   kernel   host   eth0  local
192.168.1.255     broadcast    192.168.1.2   kernel   link   eth0  local
default           192.168.1.1                                eth0
169.254.0.0 16                                        link   eth0
192.168.1.0 24                 192.168.1.2   kernel   link   eth0

এবং কম্পিউটার এ (মধ্যবর্তী প্রবেশদ্বার):

root@ComputerA:~$ echo 1 > /proc/sys/net/ipv4/ip_forward

কম্পিউটার বি এখনও কম্পিউটার এ পিং করতে পারে তবে এ এর ​​জন্য রাউটার উত্তর দেয় না:

luis@ComputerB:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
^C

(কোনও পিং প্রতিক্রিয়া নেই)

সাধারণ কম্পিউটারে অন্য কম্পিউটারের গেটওয়ে হিসাবে কাজ করতে একটি কম্পিউটার চালিত লিনাক্স তৈরি করার সঠিক পদ্ধতি কি এটি ?

উত্তর:


21

আপনি প্রায় সেখানে এসেছেন তা নিশ্চিত করতে হবে যে ট্র্যাফিকটি বি-তে ফিরে এসেছে এখনই আপনি ট্র্যাফিক बी থেকে বহির্বিশ্বে ফরোয়ার্ড করেছেন তবে A কীভাবে ট্র্যাফিক बीতে ফিরে পাবেন তা জানেন না আপনার সম্পর্কে কিছু অবস্থা রাখার জন্য আপনার প্রয়োজন একটি সংযোগগুলি এর মধ্য দিয়ে যাচ্ছে। এটি করতে আপনি NAT সক্ষম করতে চাইবেন । আপনার কাছে ইতিমধ্যে একটি পদক্ষেপ রয়েছে যা ফরওয়ার্ড করার অনুমতি দেয়। তারপরে আপনাকে কয়েকটি ফায়ারওয়াল বিধিগুলি যুক্ত করে ব্যবহার করতে হবে iptables:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

এটি বলে: নেটওয়ার্ক ঠিকানা অনুবাদ টেবিলের উপর, আমরা আউটপুট এথ0 (বাহ্যিক) এ কোনও প্যাকেটের রাউটিংটি বের করার পরে, রিটার্ন ঠিকানার তথ্যটি আমাদের নিজের সাথে প্রতিস্থাপন করুন যাতে রিটার্ন প্যাকেটগুলি আমাদের কাছে আসে। এছাড়াও, মনে রাখবেন যে আমরা এটি করেছি (একটি লুক টেবিলের মতো যা এই সংযোগটি মনে রাখে)।

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

যে প্যাকেটগুলি ইথ 1 (অভ্যন্তরীণ ইন্টারফেস) থেকে আসতে চায় তাদের এথ0 (বাহ্যিক ইন্টারফেস) যেতে দেয় ow

iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

বাহ্যিক ইন্টারফেসে আগত প্যাকেটটি ইতিমধ্যে অভ্যন্তরীণ থেকে ইতিমধ্যে শুরু করা কোনও সংযোগের সাথে সম্পর্কিত কিনা তা দেখার জন্য আমাদের আগে থেকে সেই লুকিং সারণীটি ব্যবহার করুন।


একটি সংক্ষিপ্ত ব্যাখ্যা, প্রকৃতপক্ষে। কম্পিউটার কোডে সমস্ত কোড ব্লক কার্যকর করা উচিত?
সোপালাজো ডি অ্যারিরেজ

@ সোপালাজোডে আরিরিজেজ হ্যাঁ এগুলি সমস্তই "গেটওয়ে" কম্পিউটারে চালিত হয়। সিস্টেম বিতে অন্য কোনও মেশিনে পৌঁছতে চাইলে এই রাউটিং সম্পর্কে কিছু জানতে হবে না, এটি প্যাকেটগুলি বিতে প্রেরণ করে (এটি ডিফল্ট জিডাব্লু)।
ব্যবহারকারী 1794469

ডেস্কটপে উবুন্টু ভি 14 এবং ইউটিলাইট প্রোতে (কমপু ল্যাবস থেকে একটি এম্বেড করা যন্ত্র) উবুন্টু ভি 12-তে কাজ করার পরীক্ষিত। প্রতিটি লাইন ঠিক কি করে তা প্রসারণ করার জন্য আপনাকে অনেক ধন্যবাদ। আমি গবেষণা করেছি এবং অনেক দীর্ঘ-দীর্ঘ-দীর্ঘ ব্যাখ্যা যা কাজ করে নি। আমি আশা করি এই প্রশ্ন-উত্তর থ্রেড ভবিষ্যতে অন্যদের জন্য কার্যকর হতে পারে।
সোপালাজো ডি অ্যারিরেজ

@ ইউজার 1794469 গেটওয়ে ইন্টারফেসটি ভার্চুয়াল অর্থাৎ ট্যাপ ইন্টারফেসের ক্ষেত্রে একই হয়? আপনি কি এখানে একবার দেখতে পারেন ?
রাম

1

দু'টি লিনাক্স কম্পিউটারের মধ্যে গেটওয়ে হিসাবে অভিনয় করে সঠিকভাবে রাউটিংয়ের কাজ করার জন্য, বেশ কয়েকটি জিনিস রাখা দরকার:

  • উভয় গেটওয়ে একে অপরের সাথে শারীরিক লিঙ্ক থাকা প্রয়োজন (বা ভার্চুয়াল আপনি যদি ভার্চুয়াল মেশিনগুলিতে লিঙ্ক করছেন)।
  • রাউটারের দুটি ইন্টারফেসে অবশ্যই রুট যুক্ত করতে হবে।

    route add -net 192.168.0.0/24 gw 192.168.0.1
    route add -net 192.168.1.0/24 gw 192.168.1.1
    
  • উভয় গেটওয়েতে দূরবর্তী নেটওয়ার্কের জন্য একটি স্থানীয় গেটওয়ে নির্দিষ্ট করতে হবে। এটি স্থানীয় নেটওয়ার্কের কম্পিউটারগুলি দূরবর্তী নেটওয়ার্কের জন্য প্যাকেটগুলি কোথায় পাঠাতে হবে তা জানতে সক্ষম করে। গেটওয়েটি এমন কম্পিউটারের আইপি ঠিকানা হওয়া উচিত যা দূরবর্তী নেটওয়ার্কে প্যাকেট প্রেরণ করবে।

  • নেটওয়ার্কগুলির মধ্যে ট্র্যাফিক প্রেরণ করতে ইচ্ছুক কম্পিউটারগুলিকে স্থানীয় গেটওয়ে দূরবর্তী নেটওয়ার্ক থেকে এবং ট্রাফিক কীভাবে পরিচালনা করছে তা সম্পর্কেও সচেতন করতে হবে। এটি সাধারণত ডায়নামিক হোস্ট কন্ট্রোল প্রোটোকল (ডিএইচসিপি) এর মাধ্যমে করা হয়, তবে আপনি যদি ইন্টারনেটের জন্য একটি পৃথক গেটওয়ে ব্যবহার করতে চান তবে আপনাকে উভয় কম্পিউটারে ইন্টারনেট এবং অন্যান্য নেটওয়ার্কের অ্যাক্সেসের প্রয়োজন হবে এমন দুটি কম্পিউটার নির্দিষ্ট করতে হবে (যেমন ইন্টারনেট গেটওয়ে দিয়ে ডিএইচসিপি এবং একটি রুটের মাধ্যমে অন্যান্য নেটওয়ার্কের গেটওয়ে)।
  • আইপি ফরওয়ার্ডিং উভয় গেটওয়ের জন্য সক্রিয় থাকতে হবে।
  • গেটওয়েগুলির মধ্যে NAT কে কাজ করার অনুমতি দিতে আইপি মাস্ক্রেডিং সক্ষম করতে হবে।

    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -A FORWARD -i eth1 -j ACCEPT
    

    আপনি একটি উত্স এবং গন্তব্য নির্দিষ্ট করার প্রয়োজন হতে পারে যেহেতু আপনি মাস্ক্রেডিংয়ের জন্য একই ইন্টারফেসটি ব্যবহার করছেন:

    iptables -t nat -A POSTROUTING -i eth0 -s 192.168.0.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
    

    এবং অন্যান্য প্রবেশদ্বার:

    iptables -t nat -A POSTROUTING -i eth1 -s 192.168.1.0/24 ! -d 192.168.0.0/24 -j MASQUERADE   
    

    প্রতিটি গেটওয়ের জন্য, স্থানীয় নেটওয়ার্ক ট্র্যাফিকটিকে এই জাতীয় উপযুক্ত ইন্টারফেসে গ্রহণ করা উচিত:

    iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -j ACCEPT
    

    অথবা

    iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -j ACCEPT
    

আপনার সমস্যাগুলি সমাধানের জন্য উল্লেখযোগ্য সংখ্যক লিঙ্ক এবং অনুরূপ প্রশ্ন রয়েছে।

এই বিশেষ ক্ষেত্রে যেটি ভুল বলে মনে হচ্ছে তা হ'ল উভয় কম্পিউটারে রুট এবং গেটওয়ে সেটআপ সম্পূর্ণ নয় এবং নেটওয়ার্ক ঠিকানা অনুবাদ (NAT) iptables ব্যবহার করে সক্ষম করা হয়নি, গেটওয়েগুলি অন্য সাবনেটের কম্পিউটার থেকে অনুরোধটি বহন করার অনুমতি দেয় তাদের পক্ষ থেকে.

ইন্টারনেট সংযোগ স্থাপনের সময় এটি করাও গুরুত্বপূর্ণ কারণ আপনি সংযোগের এক প্রান্তের জন্য দায়বদ্ধ (যেমন পিপিপিওই সংযোগের জন্য একটি লিনাক্স কম্পিউটারকে গেটওয়ে হিসাবে ব্যবহার করা)।

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