ভ্যাগ্রান্ট (ভার্চুয়ালবক্স) হোস্ট-একাধিক নোড নেটওয়ার্কিং ইস্যু


9

আমি ওপেনস্ট্যাক মোতায়েনের জন্য টেস্টবেড হিসাবে একাধিক-ভিএম অসম্পূর্ণ পরিবেশ ব্যবহার করার চেষ্টা করছি এবং আমি একটি ভিএম থেকে যোগাযোগ করে ভিএম-এর-ভিতরে-এ-ভিএম-তে যোগাযোগ করার চেষ্টা করে একটি নেটওয়ার্কিং সমস্যায় পড়েছি।

আমার দুটি ভ্যাগ্র্যান্ট নোড, একটি ক্লাউড কন্ট্রোলার নোড এবং একটি কম্পিউট নোড রয়েছে। আমি কেবলমাত্র হোস্টিং নেটওয়ার্কিং ব্যবহার করছি। আমার ভ্যাগ্রান্টফাইলে দেখতে এমন দেখাচ্ছে:

Vagrant::Config.run do |config|

  config.vm.box = "precise64"

  config.vm.define :controller do |controller_config|
    controller_config.vm.network :hostonly, "192.168.206.130" # eth1
    controller_config.vm.network :hostonly, "192.168.100.130" # eth2
    controller_config.vm.host_name = "controller"
  end

  config.vm.define :compute1 do |compute1_config|
    compute1_config.vm.network :hostonly, "192.168.206.131" # eth1
    compute1_config.vm.network :hostonly, "192.168.100.131" # eth2
    compute1_config.vm.host_name = "compute1"
    compute1_config.vm.customize ["modifyvm", :id, "--memory", 1024]
  end
end

আমি যখন কোনও (কিউইএমইউ-ভিত্তিক) ভিএম শুরু করার চেষ্টা করি, তখন এটি কম্পিউট 1 এ সফলভাবে বুট হয় এবং এর ভার্চুয়াল নিক (ভেটন0) একটি ব্রিজের মাধ্যমে সংযুক্ত থাকে, br100:

root@compute1:~# brctl show 100
bridge name bridge id       STP enabled interfaces
br100       8000.08002798c6ef   no      eth2

                        vnet0

কিউইএমইউ ভিএম যখন কন্ট্রোলারে চলমান ডিএইচসিপি সার্ভারের (ডিএনএসমাস্ক) কাছে একটি অনুরোধ জানায়, তখন আমি দেখতে পাই যে অনুরোধটি কন্ট্রোলারে সিসলগে আউটপুটের কারণে নিয়ামককে পৌঁছায়:

Aug  6 02:34:56 precise64 dnsmasq-dhcp[12042]: DHCPDISCOVER(br100) fa:16:3e:07:98:11 
Aug  6 02:34:56 precise64 dnsmasq-dhcp[12042]: DHCPOFFER(br100) 192.168.100.2 fa:16:3e:07:98:11 

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

$ sudo tcpdump -i vboxnet3  -n port 67 or port 68
tcpdump: WARNING: vboxnet3: That device doesn't support promiscuous mode
(BIOCPROMISC: Operation not supported on socket)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet3, link-type EN10MB (Ethernet), capture size 65535 bytes
22:51:20.694040 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:20.694057 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:20.696047 IP 192.168.100.1.67 > 192.168.100.2.68: BOOTP/DHCP, Reply, length 311
22:51:23.700845 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:23.700876 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:23.701591 IP 192.168.100.1.67 > 192.168.100.2.68: BOOTP/DHCP, Reply, length 311
22:51:26.705978 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:26.705995 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
22:51:26.706527 IP 192.168.100.1.67 > 192.168.100.2.68: BOOTP/DHCP, Reply, length 311

তবে, যদি আমি গণনাতে eth2 তে tcpdump করি তবে আমি কেবল অনুরোধগুলি দেখতে পাই, উত্তরগুলি নয়:

root@compute1:~# tcpdump -i eth2 -n port 67 or port 68
tcpdump: WARNING: eth2: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
02:51:20.240672 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
02:51:23.249758 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280
02:51:26.258281 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fa:16:3e:07:98:11, length 280

এই সময়ে, আমি আটকে আছি। আমি নিশ্চিত নই কেন ডিএইচসিপি উত্তরগুলি এটি গণনা নোডে তৈরি করছে না। ভার্চুয়ালবক্স ভার্চুয়াল সুইচ / রাউটারের কনফিগারেশনের সাথে সম্ভবত এটির কিছু আছে?

নোট করুন যে উভয় নোডের এথ 2 ইন্টারফেসগুলি প্রমিসিউস মোডে সেট করা হয়েছে।

উত্তর:


11

সমস্যাটি হ'ল ইন্টারফেসটি ভ্যাগ্র্যান্টের মাধ্যমে প্রম্পিস মোডে সেট করতে হবে, অতিথি অপারেটিং সিস্টেমের মধ্যে এটি করা যথেষ্ট নয়।

উদাহরণস্বরূপ, আপনি যদি দুটি এনআইসি যুক্ত করেন, এবং আপনি যে শেষটি এনআইসি নির্ধারণ করেছেন সেটি হ'ল ভিএমগুলিতে ব্রিজ করা হবে, আপনার ভ্যাগ্রান্টফাইলে এমন কিছু হওয়া উচিত:

compute1_config.vm.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]

3
আপনি কি "nicpromisc3" নির্দিষ্ট করে তা ব্যাখ্যা করতে পারেন?
jayunit100

2
@ jayunit100 এটি তৃতীয় nic (যা eth2 এর সাথে সঙ্গতিপূর্ণ) "প্রম্পিসিউস মোড" এ সেট করে, যার অর্থ প্যাকেটের গন্তব্য হোস্টের MAC ঠিকানাটি ম্যাকের ঠিকানার সাথে মেলে না, এমনকি ভার্চুয়ালবক্স ভিএম-তে প্যাকেট প্রেরণ করবে VM- র।
লোরিন হচস্টেইন

1
সুতরাং --nicpromisc3 ​​অ্যাডাপ্টার 3? সুতরাং --nicpromisc2 অ্যাডাপ্টার 2?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিগ্রাগনকাই হ্যাঁ, আমিও তাই বিশ্বাস করি।
লরিন হচস্টিন

1
@ ত্রুটি ঠিক করতে কীভাবে এই প্রশ্নটি দেখুন অলফার্ড The following settings shouldn't exist: customize
নিক ক্রেগ-উড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.