কীভাবে একটি ভার্চুয়াল নেটওয়ার্ক সেটআপ করুন


26

আমি তিনটি ভার্চুয়াল নেটওয়ার্ক ইন্টারফেস ( veth) সেটআপ করতে চাই যা একে অপরের সাথে যোগাযোগ করতে পারে। তিনটি নোড ক্লাস্টার অনুকরণ করতে, প্রতিটি প্রোগ্রাম তারপরে একটি vethইন্টারফেসে আবদ্ধ হয় । আমি যদি সম্ভব হয় তবে এলএক্সসি ছাড়াই এটি করতে চাই।

আমি ব্যবহার করার চেষ্টা করেছি:

  • তিনটি vethজোড়া তৈরি করেছেন :sudo ip link add type veth
  • একটি সেতু তৈরি করেছে sudo brctl addbr br0
  • ব্রিজটিতে প্রতিটি জুড়ির একটি করে যুক্ত করা হয়েছে:
    • sudo brctl addif br0 veth1
    • sudo brctl addif br0 veth3
    • sudo brctl addif br0 veth5
  • ইন্টারফেস কনফিগার করা:
    • sudo ifconfig veth0 10.0.0.201 netmask 255.255.255.0 up
    • sudo ifconfig veth2 10.0.0.202 netmask 255.255.255.0 up
    • sudo ifconfig veth4 10.0.0.203 netmask 255.255.255.0 up

তারপরে আমি যাচাই করেছিলাম যদি ব্যবহার করে কাজ করা হয়: ping -I veth0 10.0.0.202তবে তা হয় না :(

আমি IP ঠিকানা যোগ veth1, veth3, veth5এবং br010.0.1.x / 24 সীমার মধ্যে ইন্টারফেসগুলি। তবে তাতে কোনও লাভ হয় না।

কোন ধারনা? বা গাইড, আমি কীভাবে এটি এলএক্সসির সাথে ব্যবহার করতে পারি তা খুঁজে পাই। বা আমি এমন কিছু চেষ্টা করছি যা সম্ভব নয়?


কি br0নিজেই আপ করবেন?
মাধ্যাকর্ষণ

হ্যাঁ, এটি শেষ। এটি ভ্যাথের মতো কনফিগার করা হয়েছে
52-তে

উত্তর:


31

ভ্যাথ কাজ করার জন্য, টানেলের এক প্রান্তটি অন্য ইন্টারফেসের সাথে ব্রিজ করা উচিত ged যেহেতু আপনি এই সমস্ত ভার্চুয়াল রাখতে চান, আপনি টিএম-টাইপ ভার্চুয়াল ইন্টারফেসের সাথে টান-টাইপের ভার্চুয়াল ইন্টারফেস দিয়ে টানেলের vm1 প্রান্তটি (vm2 টানেলের অন্য প্রান্তটি) ব্রিজ করতে পারেন m এখন আপনি brm এবং vm2 (যথাক্রমে 10.0.0.1 এবং 10.0.0.2) আইপি অ্যাড্রেস দেন, এর মাধ্যমে আইপিভি 4 ফরোয়ার্ডিং সক্ষম করুন

echo 1 > /proc/sys/net/ipv4/ip_forward

সমস্ত ইন্টারফেস আনুন, এবং আইপি অ্যাড্রেসগুলিতে কীভাবে পৌঁছতে হবে তা কার্নেলকে নির্দেশ করে এমন একটি রুট যুক্ত করুন 10.0.0.0/24। এখানেই শেষ.

আপনি যদি আরও জোড় তৈরি করতে চান, উদাহরণস্বরূপ 10.0.1.0/24, 10.0.2.0/24 ইত্যাদি বিভিন্ন সাবনেট দিয়ে নীচের পদক্ষেপগুলি পুনরাবৃত্তি করুন। যেহেতু আপনি আইপিভি 4 ফরোয়ার্ডিং সক্ষম করেছেন এবং কার্নেল রাউটিং টেবিলে উপযুক্ত রুটগুলি যুক্ত করেছেন, তারা এখনই একে অপরের সাথে কথা বলতে সক্ষম হবে।

এছাড়াও, মনে রাখবেন যে আপনি ব্যবহার করছেন বেশিরভাগ কমান্ড (brctl, ifconfig, ...) অপ্রচলিত: iproute2 স্যুটে এই সমস্ত করার জন্য কমান্ড রয়েছে, আইপি কমান্ডটি আমার ব্যবহারের নীচে দেখুন ।

টাইপ ভ্যাথের ইন্টারফেসগুলি ব্যবহারের জন্য এটি আদেশের সঠিক ক্রম :

প্রথমে সমস্ত প্রয়োজনীয় ইন্টারফেস তৈরি করুন,

ip link add dev vm1 type veth peer name vm2
ip link set dev vm1 up
ip tuntap add tapm mode tap
ip link set dev tapm up
ip link add brm type bridge

লক্ষ্য করুন যে আমরা brm এবং vm2 এনেছি না কারণ আমাদের তাদের আইপি ঠিকানাগুলি বরাদ্দ করতে হয়েছে, তবে আমরা টেপএম এবং ভিএম 1 এনেছি, সেগুলি ব্রিজ ব্র্যামের অন্তর্ভুক্ত করার জন্য প্রয়োজনীয়। এখন সেতুর brm তে টেম এবং vm1 ইন্টারফেসগুলি গোলাম করুন,

ip link set tapm master brm
ip link set vm1 master brm

এখন সেতুতে এবং অবশিষ্ট ভের্ত ইন্টারফেস vm2- কে ঠিকানা দিন,

ip addr add 10.0.0.1/24 dev brm
ip addr add 10.0.0.2/24 dev vm2

এখন vm2 এবং brm আপ আনুন,

ip link set brm up
ip link set vm2 up

স্পষ্টভাবে 10.0.0.0/24 সাবনেটে রুটটি যুক্ত করার দরকার নেই, এটি স্বয়ংক্রিয়ভাবে উত্পন্ন হয়, আপনি আইপি রুট শোতে চেক করতে পারেন । এর ফলে

ping -c1 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.035 m

--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.035/0.035/0.035/0.000 ms

আপনি এটি পিছনের দিকেও করতে পারেন, অর্থাত্ vm2 থেকে বিএম পর্যন্ত:

ping -I 10.0.0.2 -c1 10.0.0.1
PING 10.0.0.1 (10.0.0.1) from 10.0.0.2 : 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms

--- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.045/0.045/0.045/0.000 ms

Veth প্রকারের NIC- এর সর্বাধিক দরকারী অ্যাপ্লিকেশন হ'ল একটি নেটওয়ার্ক নেমস্পেস , যা লিনাক্স পাত্রে (LXC) ব্যবহৃত হয়। আপনি নিম্নলিখিত হিসাবে একটি এনএনএসএম বলা শুরু করুন

ip netns add nnsm

তারপরে আমরা এতে ভিএম 2 স্থানান্তর করি,

ip link set vm2 netns nnsm 

আমরা একটি নতুন ইন্টারফেসের সাথে নতুন নেটওয়ার্ক নেমস্পেসের অনুমোদন দিই (একেবারে প্রয়োজনীয়),

ip netns exec nnsm  ip link set dev lo up

আমরা প্রধান মেশিনে নেটিংয়ের অনুমতি দিই,

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

(আপনি যদি এথ0 এর মাধ্যমে ইন্টারনেটে সংযুক্ত থাকেন , অন্যথায় সে অনুযায়ী পরিবর্তন করুন), নতুন নেটওয়ার্ক নেমস্পেসে একটি শেল শুরু করুন,

ip netns exec nnsm xterm & 

এবং এখন, আপনি যদি নতুন এক্সটার্মে টাইপ করা শুরু করেন, আপনি দেখতে পাবেন যে আপনি আইপি ঠিকানা 10.0.0.2 সহ একটি পৃথক ভার্চুয়াল মেশিনে রয়েছেন, তবে আপনি ইন্টারনেটে পৌঁছাতে পারবেন। এই সুবিধা নতুন নেটওয়ার্ক নামস্থান নিজস্ব স্ট্যাকের, যার মানে, উদাহরণস্বরূপ, আপনি একটি VPN এটা শুরু করতে পারেন যখন আপনার পিসি বাকি থাকে যে না VPN ব্যবহার করছেন। এটি নির্ভর করে LXC গুলি ভিত্তিক।

সম্পাদনা করুন:

আমি একটি ভুল করেছি, ভিএম 2 ইন্টারফেসটি এনে এটি নিচে নিয়ে আসে এবং এর ঠিকানা সাফ করে। এক্সটার্মের মধ্যে থেকে আপনাকে এই কমান্ডগুলি যুক্ত করতে হবে:

ip addr add 10.0.0.2/24 dev vm2
ip link set dev  vm2 up
ip route add default via 10.0.0.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

এবং এখন আপনি এক্সটার্মের মধ্যে থেকে নেভিগেট করতে পারেন।

ipকমান্ড এছাড়াও সঙ্গে xterm আগে সম্পন্ন করা যেতে পারে

ip -netns nnsm addr add 10.0.0.2/24 dev vm2
ip -netns nnsm link set dev vm2 up
ip -netns nnsm route add default via 10.0.0.1

ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ. আমি কেবল এক্সটার্মে লো দেখতে পাচ্ছি, ভিএম 2 ইন্টারফেসটি অনুপস্থিত।
Reinder

আবার ধন্যবাদ. আমি তিনটি এক্সটার্ম সেটআপ করার জন্য একটি স্ক্রিপ্ট তৈরি করেছি এবং একে অপরকে পিং করতে পারে :)
স্মরণ

কেবল একটি ইস্যু .... আমি যখন একটি এক্সটারে একটি ইউপিডি সম্প্রচার প্রেরণ করি তখন অন্যরা 10.0.0.254 (বিএমএম) থেকে প্যাকেটটি গ্রহণ করে। আমার স্ক্রিপ্টের জন্য দেখুন: এখানে (মন্তব্যে এটির পোস্ট করতে পারেন না)
Reinder

আমি vm1 আনার সমস্যা আপ :( # আইপি লিঙ্ক যোগ করুন দেব vm1 টাইপ veth পিয়ার নাম vm2 IP: RTNETLINK উত্তর: SIOCGIFFLAGS: ফাইল আইপি আপ বিদ্যমান # আইপি লিংক সেট দেব vm1 এমন কোনো ডিভাইস
resultsway

@ মারিয়াসমাতুটিয়ায় আমাকে কয়েকবার চেষ্টা করতে হয়েছিল তাই আমি প্রথম কমান্ডের সাথে একমত হয়েছি তবে কোনওভাবেই আমার অনুলিপি পেস্ট দ্বিতীয়টির জন্য উপযুক্ত নয় (ডিভাইসটিতে মিনিকোম ব্যবহার করে আইএম) তাই সংক্ষেপে আমি ঠিক যেমন পরামর্শ দিয়েছি ঠিক তেমন অনুসরণ করেছি। আমি মনে করি আমার কাছে আইপ্রেট 2 প্যাকেজ নেই।
resultsway

0

এখানে 5 টি নোড ব্রিজ সেটআপ রয়েছে যা আমি এটি ব্যবহার করি। নোডেক্স ইন্টারফেসে ঠিকানা বরাদ্দ করতে আপনার আইফোনফিগ ব্যবহার করতে সক্ষম হওয়া উচিত

ip link add dev Node1s type veth peer name Node1
ip link add dev Node2s type veth peer name Node2
ip link add dev Node3s type veth peer name Node3
ip link add dev Node4s type veth peer name Node4
ip link add dev Node5s type veth peer name Node5

ip link set Node1 up
ip link set Node2 up
ip link set Node3 up
ip link set Node4 up
ip link set Node5 up

ip link set Node1s up
ip link set Node2s up
ip link set Node3s up
ip link set Node4s up
ip link set Node5s up

brctl addbr Br
ifconfig Br up

brctl addif Br Node1s
brctl addif Br Node2s
brctl addif Br Node3s
brctl addif Br Node4s
brctl addif Br Node5s

এবং পরিষ্কার করা

brctl delif Br Node1s
brctl delif Br Node2s
brctl delif Br Node3s
brctl delif Br Node4s
brctl delif Br Node5s
brctl delif Br Node1
brctl delif Br Node2
brctl delif Br Node3
brctl delif Br Node4
brctl delif Br Node5

ifconfig Br down
brctl delbr Br

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