Điểm:0

Netplan - Yêu cầu trợ giúp để quản lý đúng tuyến đường trong thiết lập macvlan

lá cờ in

Tôi sử dụng docker với macvlan trong đó mỗi vùng chứa của tôi có kết nối L2 riêng với địa chỉ MAC và IP. Tôi cũng cần đảm bảo rằng các vùng chứa tiếp cận với máy chủ và ngược lại. Tôi có thể đạt được điều đó vào lúc này bằng cách sử dụng netplan và tập lệnh để xóa một số tuyến đường, nhưng muốn bạn trợ giúp để hiểu liệu tôi có thể thực hiện được bằng netplan hay không.

Cấu hình của tôi là cái này:

Batch script tạo giao diện macvlan (chưa hỗ trợ trên netplan)

#! /bin/bash
#! liên kết ip thêm liên kết macvlan vlan10 loại cầu chế độ macvlan

giao diện vlan10 được tạo bằng cấu hình netplan

01-netcfg.yaml

mạng:
  phiên bản: 2
  trình kết xuất: mạng
  ethernet:
    en1:
      dhcp4: có
      dhcp6: có
      địa chỉ:
        - aaaa:bbbb:cccc:1::11/64

  vlan:
    vlan10:
      mã số: 10
      liên kết: eno1
      dhcp4: không
      dhcp6: không
      địa chỉ:
        - 192.168.10.11/24
        - aaaa:bbbb:cccc:10::11/64

Điều này đảm bảo rằng giao diện Vlan được tạo chỉ dành cho docker được tạo và khả dụng.

20-docker.yaml

mạng:
    phiên bản: 2
    trình kết xuất: mạng
    ethernet:
        macvlan:
            dhcp4: không
            dhcp6: không
            địa chỉ:
                - 192.168.10.5/24
                - aaaa:bbbb:cccc:10::5/64

Tôi thừa nhận rằng có thể đây không phải là cách hiệu quả nhất để thiết lập giải pháp mà tôi yêu cầu, nhưng nó hoạt động và theo cách này, tôi tránh tạo tập lệnh để chạy khi khởi động lại bằng cron.

Phần tuyến đường

Bây giờ tôi đã tạo các giao diện, khi chúng được thiết lập, một bộ các tuyến đường sẽ được tạo tự động, thậm chí tôi không xác định cổng4cổng6 và xác định netplat để bỏ qua các tuyến mặc định của DHCP. Nhưng bất chấp điều đó, các tuyến đường này, dành cho IPv4 và IPv6 được tạo tự động để tránh tiếp cận các vùng chứa trong mạng vlan10 do giới hạn trình điều khiển mạng docker theo thiết kế.

Các tuyến IPv4 cho các giao diện mới

192.168.10.0/24 dev vlan10 liên kết phạm vi kernel proto src 192.168.10.11
192.168.10.0/24 dev macvlan liên kết phạm vi kernel proto src 192.168.10.5
192.168.10.0/24 qua 192.168.10.5 dev macvlan số liệu tĩnh proto 100
192.168.10.0/24 qua 192.168.10.11 dev vlan10 chỉ số tĩnh nguyên mẫu 150

Các tuyến IPv6 cho các giao diện mới

aaaa:bbbb:cccc:10::/64 dev vlan10 proto kernel metric 256 pref medium
aaaa:bbbb:cccc:10::/64 dev macvlan proto kernel metric 256 pref medium

Để giải pháp của tôi hoạt động, tôi cần xóa thủ công (hoặc sử dụng tập lệnh bash khởi động) để xóa các tuyến nhân ở trên cho thiết bị vlan10 trong IPv4 và IPv6. Bằng cách thực hiện nhiệm vụ đó, tôi có thể khôi phục giao tiếp giữa máy chủ và vùng chứa.

Có cách nào để cải thiện giải pháp này và tránh tạo các tuyến đó hoặc lệnh bỏ qua tuyến cụ thể mà tôi không cần trên giao diện cụ thể đó để đảm bảo sử dụng giải pháp của mình trong netplan không?

Chuyên môn và sự sẵn có của bạn được đánh giá rất cao. Cảm ơn bạn

** 20/10/2021 - Chỉnh sửa sau khi nhận xét và thử nghiệm thêm**

Sau khi xem xét, thử nghiệm và học hỏi thêm, tôi đã tiến hành những thay đổi sau đây để giải quyết vấn đề của mình và cho phép máy chủ của tôi tiếp cận với các thùng chứa bên trong macvlan giao diện.

01-netcfg.yaml

mạng:
  phiên bản: 2
  trình kết xuất: mạng
  ethernet:
    en1:
      dhcp4: có
      dhcp6: có
      địa chỉ:
        - aaaa:bbbb:cccc:dddd:192:168:1:11/64

  vlan:
    vlan10:
      mã số: 10
      liên kết: eno1
      dhcp4: không
      dhcp6: không
      địa chỉ:
        - 192.168.10.11/32
        - aaaa:bbbb:cccc:10::11/128
      liên kết cục bộ: []

Đã thay đổi mặt nạ mạng con IPv4 và IPv8 thành /32 và /128 tương ứng. Điều này đã tạo ra các quy tắc phù hợp và làm cho máy chủ lưu trữ của tôi khôi phục lại giao tiếp với mạng bộ chứa docker của tôi. Cũng bao gồm `link-local: []´ để tránh giao diện này tạo IP cục bộ liên kết có thể can thiệp.

20-docker.yaml

mạng:
  phiên bản: 2
  trình kết xuất: mạng
  ethernet:
    macvlan:
      dhcp4: không
      dhcp6: không
      địa chỉ:
        - 192.168.10.5/24
        - aaaa:bbbb:cccc:10::5/64

Với cấu hình này, tôi có thể khôi phục giao tiếp giữa máy chủ và bộ chứa, cho IPv4 và IPv6 và tránh các tập lệnh bên ngoài xóa tuyến hoặc khai báo cụ thể tuyến đường:chính sách định tuyến: chỉ thị trong netplan.

Hy vọng điều này sẽ giúp những người khác với các vấn đề tương tự. Cảm ơn

Điểm:0
lá cờ us

Các tuyến đường này được tạo tự động vì bạn đã khai báo như sau trong yaml netplan của mình:

  địa chỉ:
    - 192.168.10.11/24
    - aaaa:bbbb:cccc:10::11/64

Nếu bạn không muốn có các tuyến đến các mạng này trên vlan10 giao diện, bạn không thể khai báo chúng.

lá cờ in
Cảm ơn bình luận của bạn. Thật hợp lý khi đặt /32 và /128 mạng con trên giao diện `vlan10` và buộc tất cả các tuyến đi qua giao diện `macvlan`.

Đă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.