Làm thế nào để khiến dhclient quên đi hợp đồng thuê DHCP cuối cùng của nó?


28

Những gì tôi đang cố gắng đạt được là cho thuê DHCP không trạng thái khởi động lạnh, nghĩa là bắt buộc dhclientthông qua quá trình khám phá và cấu hình đầy đủ (DHCPDISCOVERTHER DHCPOFFER mật DHCPREQUEST mật DHCPACK trái ngược với chu trình DHCPACKQUEST DHCP DHCPACK được sử dụng địa chỉ nhà). Tôi cần điều này để gỡ lỗi một vấn đề cấu hình mạng.

Tôi đã thử:

  • xóa hợp đồng thuê hiện tại với dhclient -r, ngắt kết nối Trình quản lý mạng hiện tại;
  • giết bất kỳ phần còn lại dhclientdnsmasqquá trình;
  • làm sạch /var/lib/dhcp/thư mục, được cho là chứa cơ sở dữ liệu cho thuê máy khách;
  • sudo restart network-manager.

Nhưng ngay cả sau những bước này tôi thấy trong nhật ký DHCPDISCOVER ngay lập tức theo sau là DHCPREQUEST của một địa chỉ nào đó vẫn còn nhớ.

Rõ ràng, hệ điều hành đang lưu trữ địa chỉ bằng cách nào đó và tôi đã hết ý tưởng. Bất kỳ trợ giúp từ cộng đồng?


Bạn đã tìm ra chưa. Tôi cũng đang gặp vấn đề tương tự. Có các tập tin cho thuê theo NetworkManager là tốt. Tôi cũng xóa chúng đi. Vì một số lý do, nó vẫn chọn địa chỉ cũ.
gudge

Câu trả lời:


18

Điều này đã tạo ra mánh khóe cho tôi (đối với eth0, chạy từ sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0

1
Khi tôi làm điều này, tôi đã nhận được một hợp đồng mới, nhưng địa chỉ IP dường như không được sử dụng bởi hệ thống. Nếu tôi thử và ping tên hoặc địa chỉ IP liên quan thì không thành công. Nếu tôi sử dụng ifconfigđể kiểm tra địa chỉ hiện tại, tôi có thể bỏ qua điều đó.
TafT

Thay đổi rmphần làm cho công việc này đối với tôi (không có điều này, hợp đồng thuê trước đã được sử dụng dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0:)
davejagoda

6

Chương trình DHCP Client ghi hợp đồng thuê vào một tệp. Chỉ cần xóa các tập tin và khởi động lại mạng.

/var/lib/dhcp/dhclient.leases

Đây là nơi cho thuê được lưu trữ, trong máy tính của tôi.


2

Những gì bạn đang thấy không phải là máy của bạn ghi nhớ IP. Trong syslog, bạn thấy DISCOVER REQUEST OFFER ACK tuy nhiên điều này không theo thứ tự đã xảy ra. Nó thực sự đã đi DISCOVER OFFER YÊU CẦU ACK để xác nhận điều này, bạn có thể đánh hơi lưu lượng giữa PC và máy chủ DHCP ngược dòng. Bạn đã gửi DISCOVER máy chủ đã gửi lại OFFER và bạn đã nhận được IP từ OFFER cho YÊU CẦU của bạn

Tuy nhiên, bạn đã làm mọi thứ đúng, khi bạn thực hiện "dhclient -r" dhclient sẽ gửi một tin nhắn unicast và một số ISP chỉ chấp nhận các gói multicast đến máy chủ DHCP của họ, vì vậy, máy chủ vẫn chưa bao giờ đến đó, cho đến khi máy chủ vẫn lo lắng về việc thuê của bạn hợp lệ, do đó, nó đã trả lại cho bạn cùng một IP trong OFFER.


Cảm ơn vì điều đó! Tôi chưa bao giờ hiểu tại sao nhật ký luôn hiển thị KHÁM PHÁ, YÊU CẦU, ƯU ĐÃI, ACK; như trình tự không bao giờ có ý nghĩa. Chỉ cần biết rằng đó không thực sự là những gì xảy ra đưa tôi đi một chặng đường dài phía trước để tìm ra vấn đề của riêng tôi. Vì vậy, máy của tôi đang nhận được DHCPOFFERIP mà tôi không muốn, rồi nói "OK", nhưng nếu tôi buộc nó phải cố lấy bất cứ thứ gì khác, thì máy chủ sẽ nói DHCPNACK, và cuối cùng tôi không có mạng. Theo phỏng đoán, việc đặt chỗ trên máy chủ là cho MAC sai.
Auspex

Điều duy nhất tôi có thể nghĩ, bạn có thể thử là thay đổi "hwaddress ether xx: xx: xx: xx: xx: xx" trong / etc / mạng / giao diện nếu ISP của bạn cho phép bạn thay đổi máy Mac của mình mà không cần phải gọi chúng lên và nói Họ và modem cáp của bạn không thay thế máy Mac của họ một cách nhanh chóng, sau đó máy chủ sẽ xem bạn là người mới và cung cấp cho bạn một hợp đồng thuê ip còn trống.
Matt

Vấn đề là nó đã cho tôi một IP trống. Và tôi đã cố gắng buộc nó đưa cho tôi cái được cho là dành riêng, vì DNS bên ngoài đang chỉ vào cái đó! Vì vậy, tôi đã gửi cho quản trị viên mạng địa chỉ MAC thực tế và hỏi liệu anh ta có thực sự đặt IP cho MAC đó không.
Auspex

1

Thông thường, dhclient -rnên làm các thủ thuật; Nhưng nếu điều đó không hiệu quả với bạn, tôi đã tìm thấy một giải pháp ở đây :

+ Gia hạn địa chỉ IP một lần:

Lưu ý: Trong ví dụ này, chúng tôi sẽ sử dụng giao diện eth0. Giao diện phải được cấu hình cho DHCP khi chạy và chạy.

  • Mở một thiết bị đầu cuối và làm sudo suđể root.
  • Nhập ifconfigđể hiển thị địa chỉ IP hiện tại mà bạn nhận được từ DHCP.
  • Nhập dhcpcd -kđể gửi các tín hiệu thích hợp đến dhcpcd (bạn có thể cần phải cài đặt dhcpcd bằng cách thực hiện apt-get install dhcpcd).
  • Bây giờ mang giao diện trở lại bằng cách gõ ifup eth0.
  • Nhập ifconfigđể hiển thị địa chỉ IP mới.

Ngoài ra còn có một phần về việc làm mới địa chỉ IP mọi lúc, nhưng phần mô tả dành cho các bản phát hành dựa trên RPM (trái ngược với các bản phân phối dựa trên Debian như Ubuntu).

Hy vọng nó giúp :)

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.