ระบบ Linux ที่ลอกแบบมาและ /etc/udev/rules.d/70-persistent-net.rules


9

ฉันจะตั้งค่าระบบ Ubuntu และกำหนดค่าได้อย่างถูกต้องรวมถึงการกำหนดในeth0 /etc/network/interfacesจากนั้นฉันถ่ายภาพระบบนั้นและโคลนบนระบบใหม่

เมื่อฉันบูทระบบครั้งแรกทุกอย่างก็ดี แต่หลังจากนั้นไม่กี่รีบูตฉันได้รับการต้อนรับด้วยการกำหนดค่าเครือข่ายหมดเวลา เมื่อฉันเข้าสู่ระบบฉันพบว่าeth0ไม่สามารถใช้ได้

การวิจัยครั้งแรกของฉันให้ฉันจะลองifdown -aและifup -aที่ฉันไม่กี่ครั้งที่จะมีผลไม่ชัดเจน

ในที่สุดการวิจัยชี้ให้ฉัน/etc/udev/rules.d/70-persistent-net.rulesซึ่งฉันค้นพบว่าที่อยู่ MAC สำหรับระบบใหม่ได้สร้าง eth1 เป็นความคิดที่ดี แต่ไม่ใช่สิ่งที่ฉันต้องการจะเกิดขึ้น

เมื่อฉันบูทตอนนี้ฉันพบว่า/etc/udev/rules.d/70-persistent-net.rulesตอนนี้มีหกรายการสำหรับที่อยู่ HW ที่แตกต่างกันหกรายการซึ่งฉันพบว่าแปลกเพราะมีเพียงอินเทอร์เฟซเดียว

คำถามของฉันคือ: ฉันใช้ifup -aสร้างที่อยู่ MAC ใหม่เพื่อสร้างหรือไม่ ถ้าไม่มีความคิดใด ๆ เกี่ยวกับสิ่งที่เกิดขึ้น? ฉันเปลี่ยน/etc/udev/rules.d/70-persistent-net.rulesเป็นชื่อที่อยู่ HW ปัจจุบันeth0และดูเหมือนว่าจะใช้งานได้ แต่ฉันสามารถมั่นใจได้ว่าที่อยู่จะไม่เปลี่ยนแปลงอีกครั้งเมื่อรีบูตหรือไม่


ผู้เยี่ยมชมในอนาคตของคำถามนี้: นี่ไม่ใช่ VM มันเป็นระบบทางกายภาพที่ OP ใช้กับฮาร์ดแวร์ใหม่!
slm

คำตอบ:


7

ฉันพบปัญหาเดียวกันนี้ภายใต้ CentOS เป็นครั้งคราวเมื่อฉันโคลนเครื่องเสมือน (VM) ปัญหาเกิดจากเดิม VM eth0ได้รับใส่เข้าสู่ไฟล์นี้จะติดตั้งอุปกรณ์อีเธอร์เน็ต

ตัวอย่าง. ไฟล์กฎ

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

ปัญหาจะตรวจสอบหัวที่น่าเกลียดเมื่อคุณโคลน VM แรกซึ่งทำให้ที่อยู่ MAC ใหม่จะถูกสร้างขึ้นภายใต้เทคโนโลยีการจำลองเสมือนบางอย่างเช่น KVM สำหรับหนึ่ง ที่อยู่ MAC ใหม่นี้จะตรวจพบโดยอัตโนมัติเมื่อมีการบูทด้วย VM ที่ถูกบูทและดูเป็นอุปกรณ์อีเธอร์เน็ตใหม่โดย/lib/udev/write_net_rulesดังนั้นรายการที่ 2 จะถูกเพิ่มเข้าไปในไฟล์ด้านบน

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

ฉันมักจะเปิดไฟล์นี้70-persistent-net.rulesในตัวแก้ไขและรวมเพียงบรรทัดเพื่อให้ที่อยู่ MAC ใหม่ถูกกำหนดให้กับeth0อุปกรณ์และรีบูต

...
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

แก้ไข # 1

OP ติดตามคำถามด้วยข้อมูลใหม่ต่อไปนี้

รายการ # 1: Hmmm ไม่สามารถใช้งานได้ในกรณีของฉันเพราะฉันใช้งานซอฟต์แวร์ที่มีใบอนุญาตแบบยืดหยุ่นที่เชื่อมโยงกับที่อยู่ mac ที่อยู่ที่เปลี่ยนแปลงตลอดเวลาทำให้ซอฟต์แวร์ดังกล่าวไร้ประโยชน์ ..

@Zobal - ฉันคุ้นเคยกับ Flex เนื่องจากเป็น VM คุณสามารถเปลี่ยน MAC ของ VM (ในซอฟต์แวร์ VM - VirtualBox, KVM และอื่น ๆ )

หมายเหตุ: Flex เป็นเทคโนโลยีการออกใบอนุญาตที่ให้บริการโดยFlexera พวกเขาเคยเรียกว่าซอฟต์แวร์ GlobeTrotter เทคโนโลยีนี้อนุญาตให้ซอฟต์แวร์เชื่อมโยงกับโฮสต์ทางกายภาพหรือสามารถมีสิทธิ์การใช้งานที่จัดการจากเซิร์ฟเวอร์กลางเป็น "โทเค็น" ซึ่งลูกค้าสามารถตรวจสอบโทเค็นได้เป็นระยะเวลาหนึ่ง hostidใบอนุญาตมักจะผูกติดอยู่กับโฮสต์และโฮสต์นี้มักจะถูกระบุด้วยหมายเลขที่ไม่ซ้ำที่คุณสามารถหาได้โดยใช้คำสั่ง

ตัวอย่างเช่น:

$ hostid
a8c0c801

รายการ # 2:ในกรณีของฉันมันไม่ใช่ VM ฉันได้โคลนระบบหนึ่งไปยังอีกระบบหนึ่ง

ที่ฉันตอบ: แล้วตัวเลือกเดียวของคุณคือการเปลี่ยนที่อยู่ MAC ของระบบใหม่เป็นเช่นเดียวกับ MAC ของระบบอื่น ตระหนักดีว่าทั้งสองระบบไม่สามารถอยู่บนเครือข่ายเดียวกันไม่เช่นนั้นจะขัดแย้งกัน ด้วยการให้สิทธิ์ใช้งานแบบยืดหยุ่นโดยทั่วไปจะไม่ใช้ MAC พวกเขาใช้หมายเลขที่สามารถระบุได้โดยใช้คำสั่งhostid!

อ้างอิง


อืมม ไม่สามารถใช้งานได้ในกรณีของฉันเพราะฉันใช้งานซอฟต์แวร์ที่มีใบอนุญาตแบบยืดหยุ่นที่เชื่อมโยงกับที่อยู่ mac ที่อยู่ที่เปลี่ยนแปลงตลอดเวลาทำให้ซอฟต์แวร์ดังกล่าวใช้งานไม่ได้ ...
Zobal

@Zobal - ฉันคุ้นเคยกับ Flex เนื่องจากเป็น VM คุณสามารถเปลี่ยน MAC ของ VM (ในซอฟต์แวร์ VM - VirtualBox, KVM และอื่น ๆ )
slm

ในกรณีของฉันมันไม่ใช่ VM ฉันได้โคลนระบบหนึ่งไปยังอีกระบบหนึ่ง
Zobal

@ Zobal - ถ้างั้นตัวเลือกเดียวของคุณคือเปลี่ยนที่อยู่ MAC ของระบบใหม่ให้เหมือนกับ MAC ของระบบอื่น ตระหนักดีว่าทั้งสองระบบไม่สามารถอยู่บนเครือข่ายเดียวกันไม่เช่นนั้นจะขัดแย้งกัน ด้วยการให้สิทธิ์ใช้งานแบบยืดหยุ่นโดยทั่วไปจะไม่ใช้ MAC พวกเขาใช้หมายเลขที่ระบุได้โดยใช้คำสั่งhostid!
slm

สิทธิ์การใช้งานแบบยืดหยุ่นคือสัญญาอนุญาตที่เราสร้างขึ้นเพื่อผูกซอฟต์แวร์ของเรากับเครื่องเฉพาะและในกรณีนี้มันใช้ MAC การพัฒนาใหม่: ฉันติดตั้ง UBUNTU ใหม่ตั้งแต่ต้น (ไม่ใช่จากและอิมเมจ) และฉันได้รับการทำงานเหมือนเดิม จริงๆแล้วมันจะปรากฏขึ้นเมื่อปิดเครื่องสกปรกเท่านั้น (พลังถูกดึง) ความคิดใด ๆ
Zobal

0

hostid นั้นไม่เหมือนที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ
ในตัวอย่างโฮสต์ของคุณคือ a8c0c801 ที่อยู่ ip ของเซิร์ฟเวอร์ของคุณคือ 192.168.1.200 หรือไม่
A8C0 C801 -> C0A8 01C8
C0: 192
A8: 168
01: 1
C8: 200

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.