Bí danh địa chỉ IP được gán bởi DHCP


17

Tôi muốn tạo một số bí danh cho eth0, nhưng có các địa chỉ được gán bởi DHCP thay vì được đặt thành IP tĩnh. Điều này thậm chí có thể?

Tất cả các ví dụ tôi đã thấy chỉ định một IP tĩnh bằng lệnh:

ifconfig eth0:0 192.168.1.11 up

Câu trả lời:


17

Điều này chỉ có thể nếu hai máy khách DHCP sử dụng các địa chỉ MAC khác nhau. Điều đó có nghĩa là chúng không thể chạy cả hai trên cùng một giao diện mạng vật lý, có một địa chỉ MAC duy nhất.

Giải pháp là các giao diện mạng MAC-Vlan ảo của Linux. Giao diện MAC-Vlan là giao diện mạng ảo được hỗ trợ bởi giao diện vật lý, nhưng sử dụng với một địa chỉ MAC khác, được tạo ngẫu nhiên khi bạn tạo thiết bị MAC-Vlan.

Khi bạn tạo giao diện MAC-Vlan bằng giao diện vật lý, bạn sử dụng giao diện đó giống như giao diện vật lý. Trong trường hợp cụ thể của bạn, bạn có thể chạy một máy khách DHCP trên giao diện vật lý và một máy khách khác trên thiết bị MAC-Vlan. Mỗi thiết bị (vật lý và MAC-Vlan) sau đó có thể có địa chỉ IP riêng.

Một thiết bị MAC-Vlan mới macvlan0có thể được tạo từ eth0bằng cách chạy

ip link add dev macvlan0 link eth0 type macvlan

Nó có thể bị xóa bằng cách chạy

ip link delete dev macvlan0

Sử dụng NCD, phần mềm cấu hình mạng của tôi ( http://code.google.com.vn/p/badvpn/wiki/NCD ), chương trình NCD sau đây sẽ tạo hai thiết bị MAC-Vlan từ eth0( macvlan0macvlan1), chạy DHCP trên mỗi thiết bị, và gán cho chúng các địa chỉ IP thu được. Bạn dễ dàng làm những thứ khác như thêm tuyến và máy chủ DNS; đọc trang NCD nếu bạn quan tâm.

process lan {
    # Set device.
    var("eth0") dev;

    # Wait for device to appear, set it up, and wait for cable to be plugged in.
    net.backend.waitdevice(dev);
    net.up(dev);
    net.backend.waitlink(dev);

    # Start DHCP's.
    provide("lan-link");
}

process lan_dhcp1 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan0") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

# This differs from above only in interface name (macvlan1).
process lan_dhcp2 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan1") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

Bạn sẽ kết thúc với macvlan0macvlan1mỗi địa chỉ IP thu được DHCP của riêng mình, và địa chỉ eth0này không có địa chỉ IP. Ngoài ra, bạn có thể tạo chỉ một giao diện MAC-Vlan và tự chạy một phiên eth0bản DHCP .


1
Xin lỗi vì đã nêu ra điều này từ cõi chết, nhưng tuyên bố "Điều này chỉ có thể nếu hai máy khách DHCP sử dụng các địa chỉ MAC khác nhau" không chính xác từ phối cảnh giao thức DHCP. Ngay cả trong năm 2011 DHCP vẫn dựa trên ID khách hàng, không phải khớp với địa chỉ MAC của thiết bị. (RFC 2131, xuất bản năm 97)
Andre Kostur

0

Sử dụng địa chỉ IP được gán tĩnh hoặc DHCP là lựa chọn bạn thực hiện cho máy tính của mình.

Có một hướng dẫn tốt ở đây .

Nó chứa nhiều chi tiết và giúp bạn tránh các vấn đề mà bạn có thể gặp phải nếu bạn sử dụng tĩnh thay vì địa chỉ được gán DHCP, ví dụ như cách kết nối với máy chủ DNS và cổng.


0

Tôi chưa bao giờ thấy cấu hình DHCP cho phép máy chủ DHCP gửi nhiều địa chỉ đến một giao diện. Tôi không tin giao thức hỗ trợ nó. Khi bạn nhận được nhiều địa chỉ IP trên một giao diện, bạn thực sự nên định cấu hình chúng làm địa chỉ tĩnh.

Một số máy khách DHCP cho phép gán địa chỉ tĩnh khi địa chỉ được cung cấp. Tôi không tin Windows sẽ cho phép bạn thêm nhiều hơn một.

Đảm bảo tất cả các địa chỉ tĩnh của bạn nằm ngoài phạm vi địa chỉ DCHP.


-1

Tôi không biết chắc chắn Nhưng tôi tin trừ khi bạn có bộ định tuyến nguồn mở thì bạn sẽ phải sử dụng IP tĩnh để làm những gì bạn muốn. IMO trừ khi bạn có một lý do chính đáng cho lý do tại sao bạn muốn làm những gì bạn muốn, tôi sẽ chỉ sử dụng DHCP. từ câu hỏi của bạn tôi thấy đó là những gì bạn muốn vì vậy trừ khi ai đó biết cách thực hiện, tôi sẽ đợi và ở lại với DHCP cho đến khi ai đó đưa ra câu trả lời tốt hơn. Mặc dù nếu bạn không có nhiều hơn 1-2 chiếc và không có gì khác trên mạng (máy in bộ mở rộng phương tiện truyền thông, v.v.) thì tôi sẽ không sử dụng IP tĩnh như IDK như thế nào hoặc nếu có thể đặt các mục này bằng IP tĩnh. Có lẽ bạn có thể làm những gì bạn muốn nếu bạn có Bộ định tuyến nguồn mở và bạn có thể làm cho nó làm những gì bạn muốn chỉ bằng cách sử dụng IP tĩnh cho máy của bạn bằng cách sử dụng địa chỉ mac như một cách để xác định và đặt IP của nó và phần còn lại của mạng có thể làm hỏng DHCP. IDK như tôi chưa bao giờ thực hiện, tôi chỉ đang đưa ra ý tưởng nên xin lỗi vì không có câu trả lời cho bạn. Mặc dù liên kết được tạo bởi Bryan trông giống như một tài nguyên tốt về các vấn đề IP tĩnh của DHCP. Ngoài ra đối với bộ định tuyến nguồn mở, tôi tin rằng Netgear và D-Link làm cho họ tôi chắc chắn hơn nhưng IMO hai thương hiệu này là những thương hiệu tôi sẽ chọn. Cá nhân tôi không thích Linksys vì chúng được mua bởi tiểu thuyết (bạn sẽ nghĩ rằng chúng sẽ tốt hơn nhưng KHÔNG IMO. Cá nhân tôi thích D-link vì chúng là các bộ định tuyến có thể tùy chỉnh nhất mà tôi đã tìm thấy.) Ngoài ra đối với bộ định tuyến nguồn mở, tôi tin rằng Netgear và D-Link làm cho họ tôi chắc chắn hơn nhưng IMO hai thương hiệu này là những thương hiệu tôi sẽ chọn. Cá nhân tôi không thích Linksys vì chúng được mua bởi tiểu thuyết (bạn sẽ nghĩ rằng chúng sẽ tốt hơn nhưng KHÔNG IMO. Cá nhân tôi thích D-link vì chúng là các bộ định tuyến có thể tùy chỉnh nhất mà tôi đã tìm thấy.) Ngoài ra đối với bộ định tuyến nguồn mở, tôi tin rằng Netgear và D-Link làm cho họ tôi chắc chắn hơn nhưng IMO hai thương hiệu này là những thương hiệu tôi sẽ chọn. Cá nhân tôi không thích Linksys vì chúng được mua bởi tiểu thuyết (bạn sẽ nghĩ rằng chúng sẽ tốt hơn nhưng KHÔNG IMO. Cá nhân tôi thích D-link vì chúng là các bộ định tuyến có thể tùy chỉnh nhất mà tôi đã tìm thấy.)

Ngoài ra hãy kiểm tra liên kết này và bạn có thể làm được nhiều hơn với bộ định tuyến của mình nếu được hỗ trợ

Trang web này có Firmware Router


-1

Không, bạn không thể làm điều đó. DHCP chỉ định IP dựa trên địa chỉ phần cứng của bạn. Mỗi giao diện vật lý chỉ có một trong số đó, do đó DHCP sẽ chỉ gán một IP cho giao diện vật lý.

Tôi sẽ khuyên bạn chỉ nên đặt IP giao diện tĩnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.