Điểm:2

Thứ tự cấu hình giao diện với systemd-networkd

lá cờ pl

Tôi đang sử dụng Ubuntu 20.04, với systemd-networkd và Netplan. Tôi có hai giao diện vật lý (ens3ens4) được cấu hình bởi DHCP (có đặt trước, vì vậy tôi luôn nhận được các địa chỉ giống nhau).

Ngoài ra, tôi có hai thiết bị đường hầm. Chúng nằm ngoài sự kiểm soát của Netplan/networkd (chúng được tạo bởi Strongswan, nhưng đối với tất cả ý định và mục đích, chúng được tạo thủ công bằng cách chạy một cái gì đó như thêm đường hầm ip...). Các thiết bị đường hầm này có một lộ trình ip được thêm vào để gửi lưu lượng truy cập đến họ. Khi được tạo ban đầu, chúng hoạt động tốt, nhưng systemd-networkd cuối cùng sẽ xóa các tuyến.

Để chống lại điều này, tôi đã cấu hình thành công các thiết bị đường hầm trong systemd-networkd nhưng tuyến đường không được tạo vì nó đã được thử trước đó ens3/ens4 được cấu hình (tôi thấy đường hầm1: Không thể đặt tuyến đường: Địa chỉ prefsrc không hợp lệ. đối số không hợp lệ trong nhật ký hệ thống). Tôi đã xác nhận đơn đặt hàng bằng cách bật gỡ lỗi đăng nhập.

Tôi có thể thêm tuyến đường theo cách thủ công:

tuyến ip thêm 10.0.32.0/20 liên kết phạm vi dev tunnel1 src 10.0.16.170 số liệu 100

... hoạt động tốt, nhưng sẽ bị xóa sau đó bởi systemd-networkd.

Các tài liệu cho biết "Tất cả các tệp cấu hình đều được sắp xếp và xử lý chung theo thứ tự từ vựng, bất kể chúng nằm trong thư mục nào.", vì vậy tôi đã tìm kiếm các tệp cấu hình khác và tìm thấy chúng trong / chạy/systemd/mạng:

10-netplan-ens3.link
10-netplan-ens3.mạng
10-netplan-ens4.link
10-netplan-ens4.mạng

Tôi đã thử đặt tên cho tôi netdevmạng tập tin như 99-tunnel1.netdev hoặc zzzz-tunnel1.netdev v.v., và thậm chí đã thử với 00- v.v. Bất kể tôi làm gì, dường như luôn luôn ens3ens4 được định cấu hình sau các giao diện đường hầm và do đó, tuyến đường luôn không thêm được.

Tôi cũng đã thử định cấu hình thiết bị của mình trong Netplan. Nó làm cho một số thứ trở nên khó khăn, nhưng cuối cùng lại có cùng một vấn đề. Mặc dù nó tạo ra các tập tin như 10-netplan-tunnel1.network (về mặt từ vựng sau các tệp ens3/ens4), chúng vẫn được áp dụng sai thứ tự bởi networkd.

Tôi chắc chắn rằng tôi đang thiếu một cái gì đó ở đây, nhưng tôi không thể nhìn thấy những gì. Bất kỳ ý tưởng?

Của tôi đường hầm1.netdev trông như thế này:

[NetDev]
Tên=đường hầm1
Loại=vti
MTUByte=1419

[Đường hầm]
Điều khiển từ xa=1.2.3.4
Cục bộ=2.3.4.5
Khóa = 100

...và .mạng trông như thế này:

[Trận đấu]
Tên=đường hầm1

[Liên kết]
Bắt buộcForOnline=không
MTUByte=1419

[Địa chỉ nhà]
Địa chỉ=169.254.102.162/30
Ngang hàng=169.254.102.161/30

[Tuyến đường]
Đích=10.0.32.0/20
PreferredSource=10.0.16.170
Số liệu = 100
Phạm vi=liên kết
lá cờ us
Kỳ vọng là networkd không chạm vào cấu hình, bao gồm cả các tuyến, trên các thiết bị mà nó chưa được thông báo. Nhưng tôi tự hỏi liệu đó có phải là hạt nhân đang tự động xóa tuyến đường cho bạn không? Tôi nhận thấy rằng tuyến đường được đề cập có 'src' được chỉ định không phải là IP được liệt kê là được liên kết với giao diện. (Và, do đó, tôi không mong đợi tuyến đường này thực sự hoạt động như đã định nghĩa.) Hành vi bạn mong đợi từ tuyến đường này là gì, với điều kiện 10.0.16.170 không phải là địa chỉ IP trên giao diện?
lá cờ pl
Tôi đồng ý rằng mạng không nên gây rối với những thứ mà nó không được định cấu hình. Tuy nhiên, có, tuyến đường bao gồm một src nằm trên giao diện được quản lý bằng mạng, vì vậy tuyến đường sẽ phải xuất hiện khi giao diện bị "gỡ xuống" (nhưng nếu không, tuyến đường là cần thiết và hoạt động tốt). Điều gây tò mò là khi định cấu hình các thiết bị `ens` và `tunnel` (vti), networkd khăng khăng thực hiện các đường hầm trước - điều mà tôi không thể tưởng tượng là sẽ đúng, đặc biệt là không nếu được định cấu hình để thực hiện chúng sau cùng - và tôi không dường như không thể thay đổi hành vi đó.
Nate T avatar
lá cờ it
bạn có thể viết ra một tập lệnh shell để định cấu hình theo kiểu thủ công không, sau đó thiết lập một công việc định kỳ để kiểm tra tuyến đường. Nếu không có tuyến đường nào được định vị, thì nó có thể không chạy tập lệnh không? hoặc cấu hình lại theo bất kỳ cách nào bạn chọn? Tôi sử dụng mạng mgr qua nmcli để điều chỉnh lại. , nhưng của tôi bị đốm và đây là cách tôi xử lý nó.
lá cờ pl
Cảm ơn bạn đã suy nghĩ, nhưng tôi không phải là người hâm mộ giải pháp tập lệnh cron - nếu tuyến đường bị xóa ngay sau khi tập lệnh chạy, thì sẽ có một phút ngừng hoạt động cho đến khi tập lệnh chạy lại. Không nói gì về việc chạy tập lệnh hàng nghìn lần một cách không cần thiết. Đó là giải pháp cuối cùng và tôi nghĩ rằng việc rút systemd ra sẽ xuất hiện trước nó.
Điểm:1
lá cờ cn

Tôi nghĩ chúng ta có hai vấn đề ở đây:

1/ Việc loại bỏ src-route của bạn có thể là do mất sóng liên tục trên giao diện ens3/4. Khi giao diện ngừng hoạt động (ngay cả khi chỉ trong thời gian ngắn), nó sẽ xóa địa chỉ IP và cả các tuyến src liên quan đến địa chỉ IP này. Sau đó nó cấu hình lại IP qua DHCP nhưng mất đi src-route mà bạn add thủ công. Hãy thử tạo trình đơn thả xuống ghi đè cấu hình, ví dụ: /etc/systemd/network/10-netplan-ens3.network.d/override.conf:

[Mạng]
ConfigureWithoutCarrier=true
Bỏ quaCarrierLoss=true

2/ systemd-networkd xử lý các tệp .network theo thứ tự từ vựng, nhưng địa chỉ IP do DHCP cung cấp chỉ được nhận không đồng bộ sau khi nhận được hợp đồng thuê DHCP. networkd không chặn cấu hình của các giao diện khác (tức là giao diện đường hầm của bạn) trên phản hồi DHCP này, do đó không thể thêm tuyến đường vì src IP đó chưa tồn tại tại thời điểm đó.

Bạn nói rằng bạn có một cấu hình luôn cung cấp cho bạn cùng một địa chỉ IP thông qua DHCP. Tại sao bạn không chỉ định địa chỉ IP giống hệt nhau này một cách tĩnh (ví dụ: địa chỉ: [10.0.16.170/30] trong netplan â hay bất kể netmask là gì)? Bằng cách đó, networkd sẽ có thể thêm của bạn Nguồn ưa thích= địa chỉ mà không có vấn đề gì và cấu hình lại nó sau khi nhà cung cấp dịch vụ bị mất.

lá cờ pl
Mất sóng mang nghe có vẻ là một nguyên nhân rất chính đáng cho vấn đề - tôi đã không nghĩ đến điều đó và thực sự sẽ gây ra tất cả các vấn đề bạn đề cập. Bản chất không chặn của networkd thực sự có vẻ là vấn đề của tôi - tôi cho rằng không có cách nào để nói "đợi cho đến khi được định cấu hình" hoặc "không làm điều này cho đến khi hoàn thành X", nhưng tôi thực sự có thể sử dụng một IP cố định - điều đó gần như chắc chắn sẽ giải quyết được vấn đề (mặc dù làm tăng các vấn đề khác, cụ thể là độ phân giải DNS - nhưng điều đó cũng có thể giải quyết được khá dễ dàng trong môi trường của tôi). Cảm ơn rất nhiều vì những ý tưởng - thực sự hữu ích (về mặt kỹ thuật và sự tỉnh táo của tôi!)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.