কেভিএম / libvirt: ভার্চুয়ালাইজেশন হোস্টে স্থির অতিথি আইপি ঠিকানাগুলি কীভাবে কনফিগার করতে হয়


31

আমি যা করতে চাই তা হল হোস্ট সিস্টেম থেকে অতিথিদের নেটওয়ার্ক কনফিগারেশন (আইপি ঠিকানা, সাবনেট, গেটওয়ে, সম্প্রচারের ঠিকানা) সেট করা। ব্যবহৃত নেটওয়ার্ক সেটআপ bridgeমোডে রয়েছে। ক্লায়েন্টকে একটি স্ট্যাটিক নেটওয়ার্ক কনফিগারেশনের পরিবর্তে আমি কীভাবে হোস্ট থেকে নেটওয়ার্ক কনফিগার করতে পারি?

যদি আমি কার্যকর করি:

virsh edit vm1

এছাড়াও একটি <network>ব্লক রয়েছে এবং আমি সেখান থেকে নেটওয়ার্ক ইন্টারফেসটি কনফিগার করার চেষ্টা করেছি, তবে দুর্ভাগ্যক্রমে অতিথি ভিএম এটি ব্যবহার করে না বলে মনে হয় এবং এটি নেটওয়ার্কে অফলাইনে রয়েছে (যেহেতু এটি কেবল স্বয়ংক্রিয় নেটওয়ার্ক কনফিগারেশন ব্যবহার করে) ... অতিথি ভিএম উভয়ই লিনাক্স এবং উইন্ডোজ ভিত্তিক। কোন সাহায্যের অত্যন্ত প্রশংসা হবে।


2
সংরক্ষিত ডিএইচসিপি লিজের মাধ্যমে আইপি ঠিকানা হস্তান্তর করা কি বিকল্প নয়?
ম্যাডহ্যাটার মনিকে 24

এইচএম আমি এটি অনুমান করি তবে আমি ভিএম # 1 আইপি # 1, ভিএম # 2 আইপি # 2 ইত্যাদিতে (আমার লিজের বাইরে এলোমেলো আইপি দেওয়ার চেয়ে) অর্পণ করতে চাই। আপনি কি মনে করেন যে ডিএইচসিপি দিয়ে এটির মতো এটি কনফিগার করা সম্ভব হবে? যদি এটি হয় তবে আমি এই পদ্ধতির চেষ্টা করে খুশি হব।
বিটা


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

উত্তর:


52

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

তবে কমপক্ষে ফরোয়ার্ড মোডে natবা route, আপনি dnsmasqdলিবিভার্টের অন্তর্নির্মিত ব্যবহার করতে পারেন (libvirtd এর আরও সাম্প্রতিক সংস্করণগুলি dnsmasq এর "dhcp-ਮੇਜ਼ਬਾਨ ফাইল" বিকল্প সমর্থন করে)। এটি এখানে:

প্রথমে আপনি যে ভিএমএসের স্থির আইপি ঠিকানাগুলি নির্ধারণ করতে চান তার ম্যাক ঠিকানাগুলি সন্ধান করুন:

virsh  dumpxml  $VM_NAME | grep 'mac address'

তারপরে নেটওয়ার্কটি সম্পাদনা করুন

virsh  net-list
virsh  net-edit  $NETWORK_NAME    # Probably "default"

এই <dhcp>, বিভাগ গতিশীল পরিসীমা সীমিত এবং আপনার ভার্চুয়াল মেশিনের জন্য হোস্ট এন্ট্রি যোগ

<dhcp>
  <range start='192.168.122.100' end='192.168.122.254'/>
  <host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
  <host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
  <host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.12'/>
</dhcp>

তারপরে, আপনার ভিএম পুনরায় বুট করুন (অথবা এর ডিএইচসিপি ক্লায়েন্ট পুনরায় চালু করুন, উদাহরণস্বরূপ ifdown eth0; ifup eth0)


আপডেট: আমি দেখতে পাচ্ছি যে "ভাইরাস নেট-সম্পাদনা" এর পরে পরিবর্তনটি কার্যকর নাও হতে পারে এমন প্রতিবেদন রয়েছে। সেক্ষেত্রে সম্পাদনার পরে এটি চেষ্টা করুন:

virsh  net-destroy  $NETWORK_NAME  
virsh  net-start    $NETWORK_NAME  

... এবং ভিএম এর ডিএইচসিপি ক্লায়েন্ট পুনরায় চালু করুন।

যদি এটি এখনও কাজ না করে, আপনার হতে পারে

  • libvirtd পরিষেবা বন্ধ করুন
  • যে কোনও dnsmasq প্রক্রিয়া এখনও বেঁচে আছে তা হত্যা করুন
  • libvirtd পরিষেবা শুরু করুন

দ্রষ্টব্য: কেভিএম হোস্ট কোনও অজানা ওএস এবং অজানা কনফিগারেশন সহ একটি ভিএমকে নির্দিষ্ট নেটওয়ার্ক কনফিগারেশন ব্যবহার করতে বাধ্য করতে পারে না। তবে যদি জানেন যে ভিএম নির্দিষ্ট নেটওয়ার্ক কনফিগারেশন প্রোটোকল ব্যবহার করে - DHCP বলুন - আপনি এটি ব্যবহার করতে পারেন। এটি এই পোস্টটি ধরে নিয়েছে।

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


ধন্যবাদ আমি এটি চেষ্টা করব এবং যদি আমি সেভাবে এটি কাজ করে দেখি তবে ফিরে রিপোর্ট করব।
বিটা

কুল। তবে আপনাকে নেটওয়ার্ক মোড পরিবর্তন করতে হবে।
নিলস টোডটম্যান

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

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

নেটওয়ার্ক পুনরায় চালু করা DHCP ইজারাগুলি পুনর্নবীকরণ করে না। এর জন্য, আপনাকে নেটওয়ার্কের স্ট্যাটাস ফাইলটি / var / lib / libvirtd / dnsmasq
orodbhen

11

virsh net-updateআপনার জন্য একটি ভাল কমান্ড (আপনার নিজের নেটওয়ার্ক পুনরায় আরম্ভ / ধ্বংস করার দরকার নেই)
দেখুন: https://www.redhat.com/archives/libvir-list/2012- সেপ্টেম্বর/ msg01380.html


এটি আমার পক্ষে কার্যকর হয়নি। আমার নেটওয়ার্কটি ধ্বংস / শুরু করতে হয়েছিল।
অ্যালেক্স উইলিসন

3

আমি dnsmasqকেবল প্রক্রিয়ায় একটি -HUPসংকেত প্রেরণ করে নতুন যুক্ত হওয়া আইপি-ম্যাক ম্যাপিংকে 'দেখুন' করতে সক্ষম হয়েছি dnsmasq। এর পরে, নতুন অতিথিকে রিবুট করা সঠিক আইপি নির্ধারণের জন্য যথেষ্ট ছিল libvirtd, নেটওয়ার্কটি পুনরায় আরম্ভ করার প্রয়োজন ছাড়াই বা নিজেই।

অফিশিয়াল লিবারভিট ডকুমেন্টেশন ( http://wiki.libvirt.org/page/Networking# প্রয়োগ_আবাদগুলি_তে_ নেট ওয়ার্ক ) এই অনানুষ্ঠানিক পার্ল স্ক্রিপ্টের উল্লেখ করে যা পুরো প্রক্রিয়াটিকে স্বয়ংক্রিয়ভাবে সজ্জিত করে: https://gist.github.com/bendiken/032ea1bddb9ffafe98b4

আমি নিজেই এই স্ক্রিপ্টটি চেষ্টা করে দেখিনি, কারণ আমি বুঝতে পেরেছিলাম যে হোস্টফিল ইতিমধ্যে আপডেট হয়েছে এবং কেবলমাত্র এইচপি সংকেত পাঠানো যথেষ্ট ছিল।

হোস্টটি ডেবিয়ান 7.8 চলছে এবং প্যাকেজ সংস্করণগুলি হ'ল:

  • kvm 1: 1.1.2 + dfsg-6 + deb7u8
  • qemu-kvm 1.1.2 + dfsg-6 + deb7u8
  • libvirt-bin 0.9.12.3-1 + deb7u1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.