অতিথি এবং হোস্ট লিনাক্স-কেভিএম এবং ম্যাকভিটাপ ব্যবহার করে একে অপরকে দেখতে পাবে না


9

আমি একটি পুরানো হোস্ট (হার্ডওয়্যার এবং ওএস উভয়) থেকে কেভিএম ভার্চুয়াল মেশিনকে নতুন একটিতে স্থানান্তরিত করছি।

নেটওয়ার্কিং জন্য, virt-manager- র আমাকে একটি নতুন বিকল্প প্রস্তাব: macvtap । এটি এথ0-তে একটি সেতু স্থাপনের জন্য একটি ভাল বিকল্প দেখায়।

সুতরাং এখন অতিথির বুট ঠিক আছে, আমার স্থানীয় নেটওয়ার্ক ডিএইচসিপি সার্ভার থেকে একটি আইপি পেয়েছে, ইন্টারনেটে পৌঁছতে পারে। অতিথি স্থানীয় নেটওয়ার্কের অন্যান্য মেশিনগুলিও দেখে, আমি সেগুলি ছিনিয়ে নিতে পারি ইত্যাদি

সমস্যাটি হ'ল হোস্ট এবং অতিথি একে অপরকে দেখতে পায় না। আমি অতিথি আইপি ব্যবহার করে হোস্টের কাছ থেকে অতিথির কাছে পৌঁছতে পারি না, হোস্ট আইপি ব্যবহার করেও আমি অতিথির কাছ থেকে হোস্টের কাছে পৌঁছতে পারি না। কোন পিং, এসএসএস, এইচপি, কিছুই নেই।

route -nহোস্টের কমান্ডটি এখানে :

$ /sbin/route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

(অতিথির কাছ থেকে একই আউটপুট)।

আমি সম্ভবত হোস্ট এবং অতিথির মধ্যে যোগাযোগের জন্য উত্সর্গ করা একটি নতুন টিউন / ট্যাপ ইন্টারফেস সেট আপ করতে পারি তবে এটি কিছুটা ওভারকিল দেখায়। হোস্ট এবং অতিথিকে যোগাযোগ করার কোনও উপায় আছে কি?


ব্র্যাক করার জন্য ম্যাকভিটাপ বৈধ প্রতিস্থাপন নয়। আপনি যদি ব্রিজিংয়ের পরিবর্তে স্যুইচিং করতে চান তবে ওপেনস্বুইচটি দেখুন।
ব্যবহারকারী 186658

উত্তর:


7

আমি এই প্রশ্নটি আইআরসি-তে জিজ্ঞাসা করেছি এবং এটি ম্যাকভিটাপ প্রদর্শিত হবে

অতিথি ট্র্যাফিকটিকে নেটওয়ার্কের স্ট্যাকের জন্য খুব কম করে

সমাধানটি তখন অতিথি এবং হোস্টের সাথে যোগাযোগের জন্য একটি নেটওয়ার্ক ইন্টারফেস যুক্ত করা বা পুরানো সেতুযুক্ত সমাধানের সাথে থাকা ...


1
নেটওয়ার্ক ম্যানেজারকে অক্ষম না করে কীভাবে হোস্ট / অতিথি ইন্টারফেস তৈরি করবেন সে সম্পর্কে পদক্ষেপের নির্দেশনা এখানে দেওয়া হয়েছে: wiki.libvirt.org/page/…
এইচডিভি

1
আমি সেই নির্দেশাবলীর কাজ করতে পারি না ...
এইচডিভি

4

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


1

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

আমার কনফিগারেশনের জন্য (192.168.1.0/24 নেটওয়ার্ক, p10p1 হার্ডওয়্যার ইন্টারফেস এবং 192.168.1.1 গেটওয়ে), এটি দেয় (হাইপারভাইসরটিতে):

ip link add link p10p1 address 00:19:d1:29:d2:58 macvlan0 type macvlan mode bridge
ip address add 192.168.1.100/24 dev macvlan0
ip link set dev macvlan0 up

ip route flush dev p10p1
ip route add default via 192.168.1.1 dev macvlan0 proto static

1

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

(এখানে নির্দিষ্ট কনফিগারেশনটি দেবিয়ান এবং আপস্টার্ট নির্দিষ্ট, তবে প্রাথমিক পদক্ষেপগুলি কোনও জিএনইউ / লিনাক্সে কাজ করা উচিত))

বুটে ম্যাকভ্লান অ্যাডাপ্টার তৈরি করা হচ্ছে

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

একটি স্থির ম্যাক সেট করা পরামর্শযুক্ত, কারণ অন্যথায় যেমন কোনও ডিএইচসিপি সার্ভারের জন্য পুনরায় বুট করার পরে আপনার মেশিনটি সনাক্ত করতে এবং পূর্বের মতো একই আইপি ঠিকানা বরাদ্দ করা যায় না।

সুতরাং একটি অ্যাডাপ্টার তৈরি করুন এবং ম্যাকটি সন্ধান করুন:

root@host:~# ip link add link eth0 macvlan0 type macvlan mode bridge
root@host:~# ip addr show dev macvlan0
#: macvlan0@eth0:  mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
    link/ether 12:34:56:78:90:ab brd ff:ff:ff:ff:ff:ff
...

হাইলাইট হেক্সাডেসিমাল নম্বরটি আপনার ম্যাক ঠিকানা।

প্রতিটি সূচনা ম্যাকভ্লান অ্যাডাপ্টার তৈরি করতে এখন আপনি একটি এনআইপি স্ক্রিপ্ট তৈরি করেন - যা অবশ্যই নেটওয়ার্কিং সূচিত হওয়ার আগে চালানো উচিত । এটি করার আদেশটি হ'ল:

ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge

এই কাজের জন্য আপস্টার্ট আরআই স্ক্রিপ্টের উদাহরণ হ'ল:

start on starting networking

script
    ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge
end script

যেমন এটি যেমন রাখা /etc/init/macvlan.conf

নেটওয়ার্ক কনফিগারেশন সেট আপ করা হচ্ছে

ইন /etc/network/interfaces, আপনার শারীরিক নেটওয়ার্ক অ্যাডাপ্টারটি ম্যানুয়ালটিতে সেট করুন (তবে এটি স্বয়ংক্রিয়ভাবে ছেড়ে যান) এবং এর পূর্ববর্তী কনফিগারেশনটি (সাধারণত ডিএইচসিপি বা একটি স্ট্যাটিক আইপি ঠিকানা) আপনার ম্যাকভ্লান অ্যাডাপ্টারে সরান। উদাহরণ:

auto eth0
iface eth0 inet manual

auto macvlan0
iface macvlan0 inet dhcp

শারীরিক অ্যাডাপ্টারের জন্য আইপিভি 6 অক্ষম করা হচ্ছে

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

net.ipv6.conf.eth0.disable_ipv6=1

এই লাইনটি দিয়ে /etc/sysctl.confএকটি ফাইল তৈরি করে /etc/sysctl.d/বা যুক্ত করে to

sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

আপনার init স্ক্রিপ্ট।

আপনি এখন আপনার মেশিনটি পুনরায় বুট করার সময়, হোস্ট থেকে অতিথির সাথে যোগাযোগ করার ক্ষেত্রে আইপিভি 4 এবং আইপিভি 6 উভয়ই কাজ করা উচিত।


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


1

আপনি এই জাতীয় কিছু দিয়ে শেষ করতে চান:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 macvlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 macvlan0

নোট করুন যে শেষ কলামে "eth0" এর পরিবর্তে "macvlan0" রয়েছে।

এটি অর্জন করতে, আপনি এই আইপি ঠিকানা হিসাবে 192.168.0.42 ধরে ধরে এই কমান্ডগুলি ব্যবহার করতে পারেন:

ip link add link eth0 macvlan0 type macvlan mode bridge
ip address add 192.168.0.42 dev macvlan0
ip link set dev macvlan0 up
ip route flush dev eth0
ip route add default via 192.168.0.1

বেশিরভাগ ক্ষেত্রে এনপেনের দ্রবণের অনুরূপ। আপনি যদি আরও পরিশীলিত স্ক্রিপ্ট চান তবে এই বিষয়টি সম্পর্কে আমার ওয়েবপৃষ্ঠাটি দেখুন ।


macvlanমডিউলটি লোড করতে ভুলবেন না :modprobe macvlan
এমডিডি

0

ল্যাজারো যা লিখেছিল তা আমি ডেবিয়ানে ব্যবহার করেছি, তবে আমি কয়েকটি নোট যুক্ত করতে চাই।

প্রথমত, অতিথি ইন্টারফেসটি "উত্স ডিভাইস" -> "হোস্ট ডিভাইস eth0: macvtap" এ সেট করা দরকার; "উত্স মোড" -> " সেতু "।

দ্বিতীয়ত, আপনি যে স্ক্রিপ্টটি আমার জন্য কাজ করেন নি ( মনে হয় ম্যাকভ্লানন ইন্টারফেসটি প্রারম্ভকালে খুব দেরীতে তৈরি হয়েছিল ), তাই আমি এটি ব্যবহার করেছি:

nano /etc/init.d/macvlan

ইন্টারফেসটি তৈরি হওয়ার সময় ম্যাককে যেটিকে নির্ধারিত হয়েছিল তা পরিবর্তন করুন:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          macvlan
# Required-Start:    $local_fs
# Required-Stop:     
# Default-Start:     S
# Default-Stop:      
# Short-Description: Set up macvlan
# Description:       This script sets up the macvlan interface
#                    before it can be used by networking.
# X-Start-Before:    networking
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/init/vars.sh


do_start () {
        ip link add link eth0 address 00:11:22:aa:bb:cc macvlan0 type macvlan mode bridge
###      REPLACE MAC ON EACH HOST ->  ^^ ^^ ^^ ^^ ^^ ^^
}

case "$1" in
  start|"")
        do_start
        ;;
  *)
        echo "Sorry, this only sets up the macvlan interface." >&2
        exit 3
        ;;
esac

এক্সিকিউট বিট সংরক্ষণ এবং সেট করুন:

chmod +x /etc/init.d/macvlan

এবং init এর জন্য সমস্ত লিঙ্ক যুক্ত করুন:

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