Gia hạn IP với dhclient trên các giao diện khác nhau


16

Tôi có hai giao diện trên máy tính của tôi, eth0eth1.

Cả hai mạng con đều có máy chủ DHCP trên đó. Làm cách nào tôi có thể sử dụng dhclientđể gia hạn địa chỉ IP cho cả hai giao diện?

Nếu tôi làm:

dhclient -r && dhclient eth0

Nó gia hạn IP trên eth0. Sau đó, nếu tôi muốn làm:

dhclient eth1

Nó không thành công với lỗi:

dhclient(22421) is already running - exiting.

Tôi có thể làm:

dhclient -r && dhclient eth1

Nhưng dhclient -rphần này giải phóng hợp đồng thuê và tôi cũng mất địa chỉ IP eth0.

Còn bây giờ, cách duy nhất tôi đã quản lý để làm những gì tôi muốn là để chạy dhclientcho eth0, tàn nhẫn giết nó, và chạy nó trên eth1: Tôi kết thúc với một IP mới trên cả hai giao diện.

Tôi cũng đã thử nghiệm với dhclient -xthay vì dhclient -r, không có may mắn.

Chắc chắn, đây không phải là con đường để đi!

BIÊN TẬP:

Hai câu trả lời đề nghị làm dhclient -r eth0 eth1 && dhclient eth0 eth1 Điều này, thực sự, giới hạn các cuộc gọi quảng bá đến các giao diện này. Nhưng máy chủ DHCP đầu tiên trả lời sẽ là máy chủ duy nhất được sử dụng, do đó dẫn đến một IP mới trên một giao diện duy nhất chứ không phải cả hai. Xem ở đây, chúng ta có thể thấy DHCPDISCOVERcác cuộc gọi trên cả hai giao diện, nhưng DHCPREQUESTchỉ được thực hiện trên eth0giao diện đầu tiên mà qua đó máy chủ DHCP được tìm thấy:

Listening on LPF/eth0/0a:00:27:00:00:00
Sending on   LPF/eth0/0a:00:27:00:00:00
Listening on LPF/eth1/84:8f:69:d3:d4:a1
Sending on   LPF/eth1/84:8f:69:d3:d4:a1
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0x170fcb67)
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4 (xid=0x115a24c3)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x170fcb67)
DHCPOFFER from 192.168.1.1
DHCPACK from 192.168.1.1 (xid=0x170fcb67)
bound to 192.168.1.4 -- renewal in 1710 seconds.

Câu trả lời:


11

Hoặc

dhclient -r && dhclient

hoặc là

dhclient -r eth0 eth1 && dhclient eth0 eth1

Chỉnh sửa 1:

Thử tiếp theo: Bạn có thể thoát khỏi lỗi "dhclient (22421) đang chạy - thoát" bằng cách làm cho một trong các trường hợp sử dụng các tệp khác nhau. Sử dụng PATH_DHCLIENT_PIDPATH_DHCLIENT_DBcác biến (hoặc các tùy chọn dòng lệnh eqivalent, xem trang man) để phân tách chúng.


Vấn đề là với điều này, dhclient gửi các gói để khám phá máy chủ dhcp như được phát trên cả hai giao diện, nhưng dừng lại với máy chủ nhận FIRST. Tôi muốn sử dụng máy chủ đầu tiên nhận được qua eth0 cho eth0 ip và máy chủ đầu tiên nhận được qua eth1 cho eth1 ip.
Noé Malzieu

Nếu tôi không rõ: nó sẽ gửi DHCPDISCOVER trên cả hai giao diện nhưng chỉ gửi DHCPREQUEST trên các giao diện đầu tiên mà nó nhận được câu trả lời từ máy chủ dhcp
Noé Malzieu

@ NoéMalzieu Bạn nên đặt thông tin đó trong câu hỏi của bạn ở bất kỳ giá nào. Kiểu hài hước: Bạn nhận được một câu trả lời vô ích "trị giá 11K rep"; điều đó không xảy ra mỗi ngày :-)
Hauke ​​Laging

@HaukeLaging - ai trả lời bạn gọi là vô dụng 8-).
slm

@ NoéMalzieu Xem chỉnh sửa của tôi.
Hauke ​​Laging

4

Ý tưởng số 1: Hãy thử chuyển 2 giao diện cho dhclient

Nếu bạn nhìn vào trang man, dhclientbạn sẽ nhận thấy rằng ở cuối ví dụ sử dụng bit [ if0 [ ...ifN ]. Điều này có nghĩa là bạn có thể chạy dhclientvà vượt qua nó nhiều giao diện mà bạn muốn chạy.

đoạn trích từ trang người đàn ông

pháp sư [-4 | -6] [-S] [-N [-N ...]] [-T [-T ...]] [-P [-P ...]] [-p port] [-d] [ -e VAR = giá trị] [-q] [-1] [-r | -x] [-lf cho thuê tập tin] [-pf pid-file] [-cf config-file] [-sf script-file] [-s server] [-g rơle] [-n] [-nc] [ -nw] [-w] [-B] [-I dhcp-client-định danh] [-H tên máy chủ] [-F fqdn.fqdn] [-V nhà cung cấp-lớp-định danh] [-R request-tùy chọn- danh sách] [hết thời gian chờ] [-v] [--version] [if0 [... ifN]]

Vì vậy, bạn sẽ có thể dhclientphát hành trên nhiều giao diện và kết nối trên chúng.

dhclient -r eth0 eth1
dhclient eth0 eth1

Ý tưởng 2: Hãy xem cách NetworkManager thực hiện

Đây là cách NetworkManager thiết lập dhclienttrên hệ thống của tôi. Bạn có thể thử gọi dhclient thứ hai một cách rõ ràng bằng các đối số.

/sbin/dhclient -d -4 \
   -sf /usr/libexec/nm-dhcp-client.action \
   -pf /var/run/dhclient-wlan0.pid \
   -lf /var/lib/dhclient/dhclient-01f0476d-04bf-4ce7-8ced-844fae73f430-wlan0.lease \
   -cf /var/run/nm-dhclient-wlan0.conf wlan0

Cảm ơn câu trả lời của bạn. Tuy nhiên, vui lòng kiểm tra nhận xét của tôi về câu trả lời @HaukeLaging
Noé Malzieu

@ NoéMalzieu - Chúng ta có thể thấy đầu ra dài dòng từ dhclient thứ 2 không? dhclient -r && dhclient eth0 && dhclient -v eth1
slm

Với điều này, các khách hàng thứ hai nóidhclient(1155) is already running - exiting.
Noé Malzieu

Vâng, nó cũng đang làm điều sam cho tôi.
slm
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.