Sử dụng dhcp và ip tĩnh trên cùng một nic trên linux với systemd-networkd


6

Tôi có một thiết bị nhãn đôi khi cần kết nối với internet (để cập nhật) nhưng chủ yếu sẽ được sử dụng kết nối trực tiếp với máy tính xách tay thông qua cáp ethernet. Tôi muốn người dùng của mình có các lợi ích cắm và phát từ ip dhcp khi được kết nối với bộ định tuyến nhưng vẫn có thể truy cập thiết bị khi không có máy chủ dhcp nào tham gia.

Về cơ bản tôi muốn làm điều này nhưng với systemd-networkd: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth0:0 iface eth0:0 inet static address 192.168.0.130 netmask 255.255.255.0

Làm thế nào để tôi đạt được điều này với systemd-networkd và có cách nào tốt hơn để đạt được kết quả tương tự không?


1
Điều đó ... thực sự không có ý nghĩa. Nếu bạn sử dụng một địa chỉ tĩnh, thì nó sẽ không cắm và phát nữa, vì các mạng LAN khác nhau có các mạng con khác nhau và địa chỉ tĩnh sẽ không hoạt động trong nhiều địa chỉ đó.
grawity

Tôi hình dung nếu người dùng không sử dụng 192.128.0.x giống như hầu hết các bộ định tuyến được cấu hình. Sau đó, có lẽ họ cũng biết làm thế nào để tìm ip dhcp thông qua bộ định tuyến. Khi họ có ip, họ có thể kết nối với thiết bị để thay đổi ip tĩnh. Một lý do khác tôi muốn có một ip tĩnh là vì tôi muốn người dùng có tùy chọn kết nối trực tiếp với máy tính xách tay không có máy chủ dhcp liên quan.
Hampus Andersson

2
Bạn có thể cố gắng làm rõ câu hỏi của bạn? Bạn có ý nghĩa gì với "thiết bị cắm và phát" và đây có phải là thiết bị giống như bạn muốn người dùng của mình kết nối không? Ngoài ra, tôi không hiểu ý của bạn khi bạn nói rằng bạn "không muốn người dùng kết nối .. mà không gặp rắc rối". Vì vậy, bạn muốn họ đi qua rắc rối? Cuối cùng, tôi thực sự không thể hiểu được bạn thực sự muốn đạt được điều gì (ngoài câu mà bạn đã viết trong chủ đề câu hỏi của bạn).
nạn nhân

Là câu hỏi của tôi đủ rõ ràng bây giờ?
Hampus Andersson

Câu trả lời:


6

Tôi quản lý để làm cho công việc này với cấu hình sau:

/etc/systemd/network/eth0.network

[Match]
Name=eth0

[Network]
DHCP=yes
DNS=8.8.8.8
DNS=8.8.4.4

[Address]
Label=eth0:0
Address=192.168.0.130/24

Có một chút khó khăn vì "ifconfig" không hiển thị địa chỉ DHCP cho tôi, nhưng nếu tôi xem tạp chí hoặc sử dụng "ip addr show" thì địa chỉ DHCP ở đó.

# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.0.130  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::f0f7:36ff:fe00:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2721 errors:0 dropped:92 overruns:0 frame:0
          TX packets:947 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:218362 (213.2 KiB)  TX bytes:115488 (112.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5680 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:460080 (449.2 KiB)  TX bytes:460080 (449.2 KiB)

Nhưng:

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default 
    link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.130/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.16.200.191/24 brd 172.16.200.255 scope global dynamic eth0
       valid_lft 85430sec preferred_lft 85430sec
    inet6 fe80::f0f7:36ff:fe00:1/64 scope link 
       valid_lft forever preferred_lft forever

Cảm ơn! Trông giống hệt như những gì tôi đang tìm kiếm. Sẽ cố gắng vào ngày mai và báo cáo kết quả của tôi.
Hampus Andersson

0

Bạn có thể định cấu hình dhclient.conf như sau:

timeout 10;

lease {
interface "eth0";
fixed-address 10.0.0.10;
option subnet-mask 255.255.255.0;
}

interface "ep0" {
prepend domain-name-servers 10.0.0.1;
}

Điều này sẽ cấu hình dhcp của bạn hết thời gian chờ sau 10 giây không nhận địa chỉ IP từ máy chủ DHCP và cung cấp địa chỉ 10.0.0.10 trên mạng / 24. Bạn cũng có thể đặt máy chủ DNS trong cấu hình. Đây là một liên kết đến trang người đàn ông mà tôi có cấu hình này từ

http://www.freebsd.org/cgi/man.cgi?query=dhclient.conf&sektion=5&n=1


2
Người dùng hỏi về cấu hình systemd rõ ràng. Systemd không sử dụng dhclient.
RDP
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.