เปลี่ยนที่อยู่ IP ของโฮสต์ระยะไกลโดยไม่สูญเสียการควบคุม (Linux)


10

ฉันจะเปลี่ยนที่อยู่ IP หลักของโฮสต์ระยะไกลได้อย่างไรโดยไม่ต้องยกเลิกการเชื่อมต่อเลย (โดยไม่ต้องอยู่ในสถานะ "no IP addr")

เรื่องนี้ได้รับการกล่าวถึงอย่างไม่ดีทางอินเทอร์เน็ต (จากการวิจัยของฉัน) ทรัพยากรที่ดีที่สุดที่ฉันพบคือยุ่งยากเล็กน้อย

ตัวอย่าง: เปลี่ยน 10.0.0.11/24 เป็น 10.0.0.15/24

1. ssh root@10.0.0.11
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh root@10.0.0.15
5. ip addr del 10.0.0.11/24 dev eth0 

ปัญหา:คำสั่งสุดท้ายจะลบทั้งที่อยู่ IP และการเชื่อมต่อจะหายไปเนื่องจาก 10.0.0.11 เป็นอุปกรณ์หลักและจะลบที่อยู่สำรอง (ซึ่งมี 10.0.0.15 อยู่) เมื่อถูกลบ

ฉันรู้ว่าฉันสามารถ "โกง" โดยการเพิ่ม 10.0.0.11/ 25 (แทน24 ) อย่างไรก็ตามฉันคิดว่ามันเป็นไปได้ในทางทฤษฎีที่จะทำสิ่งนี้ได้อย่างถูกต้อง

คุณคิดอย่างไร?


ไม่มีการโกงหากคุณใช้ / 32 หน้ากาก ...
zb '

แต่มันจะไม่ทำงานเพราะ / 32 ไม่สามารถสื่อสารกับอะไร แต่ตัวเอง ...
Totor

โอเค แต่ / 25 จะไม่ทำงานมากกว่า
zb '

คำตอบ:


11

คุณต้องตั้งค่าpromote_secondariesตัวเลือกบนอินเทอร์เฟซหรือบนอินเทอร์เฟซทั้งหมด:

echo 1 > /proc/sys/net/ipv4/conf/eth0/promote_secondaries

หรือ

sysctl net.ipv4.conf.eth0.promote_secondaries=1

เปลี่ยนeth0เป็นallใช้งานได้กับทุกอินเตอร์เฟส

ตัวเลือกนี้จะได้รับในตั้งแต่ 2.6.12

ฉันทดสอบสิ่งนี้ด้วยอินเทอร์เฟซแบบหลอกๆ


สิ่งที่ฉันต้องการจริงๆขอบคุณ! ดูต้นฉบับกระทำ
Totor

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