আপনি প্রতি ব্যবহারকারীকে একটি আইপি কীভাবে নির্ধারণ করতে পারেন?


11

আমি একটি হেডলেস স্টিম গেমসভার তৈরি করছি যা ঘরে ঘরে স্টিম ব্যবহার করে একই সাথে দু'জনকে খেলতে দেয়। সেটআপের মাল্টিসিট অংশটি সম্পন্ন এবং কার্যকরী, তবে এটি ওয়্যারলেস কাজ করতে পাওয়া বেশ ঝামেলার।

কেবলমাত্র একটি স্টিম ক্লায়েন্ট একসাথে ইন-হোম স্ট্রিমিং সক্ষম করতে পারে। একই পোর্ট এবং আইপি ঠিকানা ব্যবহারের কারণে এটি সম্ভবত। আমি কীভাবে প্রতিটি ব্যবহারকারীর নিজস্ব আইপি ঠিকানা বরাদ্দ করতে পারি?

স্ট্রিমিং কেবল হোম নেটওয়ার্কের মধ্যে থেকে করা হবে। মেশিন নিজেই একটি ইন্টারফেসে 3 আইপি রয়েছে।

উত্তর:


21

আপনি লিনাক্স নেটওয়ার্ক নেমস্পেসগুলি ব্যবহার করে কোনও প্রক্রিয়াতে বিভিন্ন নেটওয়ার্ক কনফিগারেশন নির্ধারণ করতে পারেন । তাত্ত্বিকভাবে প্রতিটি ব্যবহারকারীকে তার নিজস্ব পৃথক নেটওয়ার্ক নেমস্পেসে সেট করার জন্য পিএএম * কনফিগার করা সম্ভব উচিত , তবে পরিবর্তে প্রশ্নটির মধ্যে অ্যাপ্লিকেশনটিকে তার নিজের নামস্থানে চালু করা সম্ভবত সহজ।

একটি সাধারণ সেটআপ নেটওয়ার্কে নেমস্পেসগুলি সংযোগ করতে একটি লিনাক্স ব্রিজ ইন্টারফেস তৈরির বর্ণনা দিতে পারে। কিছুটা সহজ সেটআপ আইপভ্লান (কার্নেল সংস্করণে 19.১৯ এবং এর উপরে অন্তর্ভুক্ত) বা ম্যাকভ্লান ডিভাইস (ওয়্যারলেসের জন্য আপনি ম্যাকভ্লান ব্যবহার করতে পারবেন না ) ব্যবহার করে সংরক্ষণাগারভুক্ত করা যেতে পারে । লিনাক্স কার্নেল ডকুমেন্টেশনের নেটওয়ার্ক নেমস্পেসে ipvlan স্থাপনের জন্য বিশদ উদাহরণ রয়েছে

নথিতে উদাহরণ অনুসরণ করে:

  1. একটি নেটওয়ার্ক নেমস্পেস ns0 তৈরি করুন

    ip netns add ns0
    
  2. Eth0 (মাস্টার ডিভাইস) এ ipvlan স্লেভ তৈরি করুন

    ip link add link eth0 ipvl0 type ipvlan mode l2
    
  3. নেটওয়ার্ক নেমস্পেস ns0 এ স্লেভদের বরাদ্দ করুন

    ip link set dev ipvl0 netns ns0
    
  4. নেটওয়ার্ক নেমস্পেস ns0 এ স্লেভ ডিভাইসটি কনফিগার করুন

    ip netns exec ns0 ip link set dev ipvl0 up
    ip netns exec ns0 ip link set dev lo up
    ip netns exec ns0 ip -4 addr add 127.0.0.1 dev lo
    ip netns exec ns0 ip -4 addr add $IPADDR dev ipvl0
    ip netns exec ns0 ip -4 route add default via $ROUTER dev ipvl0
    

    হোস্ট এবং রাউটারের ঠিকানাগুলি $IPADDRএবং এর মধ্যে সরবরাহ করুন $ROUTER

  5. আপনার অ্যাপ্লিকেশনটি নেটওয়ার্ক নেমস্পেসে ব্যবহার করুন ip exec

    ip netns exec ns0 <command>
    

    কমান্ডটি বিভিন্ন ব্যবহারকারীর হিসাবে চালাতে, স্বাভাবিকটি ব্যবহার করুন su <user> -c -- <command>


* সম্পাদনা: তত্ত্ব থেকে অনুশীলনে: আমি ব্যবহারকারী প্রতি নেটওয়ার্ক নেমস্পেস কীভাবে পরিবর্তন করতে পারি তা প্রদর্শনের জন্য একটি সাধারণ পিএএম মডিউল লিখেছি। আপনাকে ip netnsউপরের মতো একটি নেটওয়ার্ক নেমস্পেস কনফিগার করতে হবে এবং নির্দিষ্ট ব্যবহারকারীকে নির্দিষ্ট নামের সাথে নির্দিষ্ট করতে মানচিত্র তৈরি করতে হবে। এরপরে সমস্ত ব্যবহারকারীর প্রক্রিয়াগুলি ডিফল্টের পরিবর্তে তাদের কনফিগার করা নেমস্পেসে থাকবে। কোডটি গিথুবে হোস্ট করা হয় । আপনার নিজের বিপদে ব্যবহার করুন।


আপনার দ্বিতীয় কমান্ড আমার জন্য কাজ করে না ubuntu 14.04আমি শুধু পাবেন: Garbage instead of arguments "mode ...". Try "ip link help"
সিম

1
আমি উত্তরটি কার্নেল সংস্করণ দিয়ে আপডেট করেছি, উবুন্টু 14.04 তে সাম্প্রতিক পর্যায়ে যথেষ্ট কার্নেল সংস্করণ অন্তর্ভুক্ত বলে মনে হচ্ছে না। আমি এমন কোনও কাজের কথা ভাবতে পারি না যা আপনাকে ওয়্যারলেস ব্যবহার করার সময় পৃথক আইপি ঠিকানাগুলি কনফিগার করতে দেয়। আপনি যদি ইথারনেট ব্যবহার করে থাকেন তবে আপনি আইপভ্লানকে ম্যাকভ্লান 3 -র কমান্ডের সাথে প্রতিস্থাপন করতে পারেন এবং বাকী উদাহরণটি অনুসরণ করতে পারেন।
সেবাস্থ

আপনি কমান্ড 2 মানে? ভেরিয়েবলগুলি $IPADDRএবং $ROUTERআমার দ্বারা সরবরাহ করতে হবে বা সেগুলি ইতিমধ্যে সেট করা আছে?
সিম

1
প্রকৃতপক্ষে আদেশ 2 । আপনাকে নিজের নেটওয়ার্ক কনফিগারেশন সরবরাহ করতে হবে।
সেবাসথ

2
@ সিম ভাল ধরা, এটি হয়নি। উত্তরটি সঠিক করে দেওয়া হয়েছে, উদাহরণের অন্যান্য অংশের মতো এক্সিকিউটিভ কীওয়ার্ডের পরে নেমস্পেস নির্দিষ্ট করা দরকার।
সেবাসথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.