Điểm:1

Làm cách nào để triển khai đúng DHCPv6-PD cho bộ định tuyến hạ lưu với Linux?

lá cờ sa

Tôi đang cố gắng định cấu hình bộ định tuyến/tường lửa IPv6 dựa trên Linux DIY để thực hiện các thao tác sau:

  • Lấy tiền tố /56 từ ISP trên giao diện "wan0"
  • Cung cấp/64 địa chỉ cho các máy chủ trên "lan1"
  • Cung cấp mạng con /60 cho bộ định tuyến hạ nguồn trên "lan2"

Lựa chọn ban đầu của tôi về phần mềm để thực hiện việc này là systemd-networkd, với hai mục đầu tiên thì dễ, nhưng mục thứ ba thì không được hỗ trợ (dường như, vui lòng sửa cho tôi nếu tôi sai).

Tôi chuyển sang sự kết hợp của dhcpcd, ISC DHCPradvd (thông qua các gói được cung cấp trong Arch Linux, nhưng tôi cho rằng sẽ không có bất kỳ sự khác biệt có ý nghĩa nào đối với phần mềm ngược dòng).

dhcpcd đã được cấu hình để lấy /56 đó và gán địa chỉ:

ngu ngốc
kiên trì
nhà cung cấp
tùy chọn domain_name_servers, domain_name, domain_search
tùy chọn classless_static_routes
giao diện tùy chọn_mtu
tùy chọn host_name
tùy chọn rapid_commit
yêu cầu dhcp_server_identifier
lười biếng riêng tư
noipv4ll
đợi 6
chờ đợi 4
giao diện wan0
    ipv6rs
    ia_na 1
    ia_pd 1/::/56 lan1/0/64 lan2/2/60
giao diện lan1
    noipv6rs
    địa chỉ ip tĩnh=172.21.0.1
giao diện lan2
    địa chỉ ip tĩnh=172.22.0.1

Điều này dẫn đến việc các giao diện nhận địa chỉ dựa trên cấu hình của ISP và có vẻ đúng.

DHCP đã được cấu hình để quảng cáo thêm các địa chỉ và mạng con hạ nguồn:

thời gian thuê mặc định 2592000;
ưu tiên trọn đời 604800;
tùy chọn dhcp-thời gian gia hạn 3600;
tùy chọn dhcp-rebinding-time 7200;
cho phép cho thuê;
dhcpv6-lease-file-name "/var/lib/dhcp/dhcpd6.lease";

mạng con6 2XXX:YYYY:ZZZZ:dd00::/64 {
  phạm vi6 2XXX:YYYY:ZZZZ:dd00::2 2XXX:YYYY:ZZZZ:dd00:ffff:ffff:ffff:ffff;
}
mạng con6 2XXX:YYYY:ZZZZ:dd20::/60 {
  tiền tố6 2XXX:YYYY:ZZZZ:dd20:: 2XXX:YYYY:ZZZZ:dd20:: /60;
  phạm vi6 2XXX:YYYY:ZZZZ:dd20::2 2XXX:YYYY:ZZZZ:dd20::ffff;
}

Điều này dường như cũng đúng, vì các phạm vi và mạng con đó cuối cùng được sử dụng bởi các máy chủ xuôi dòng trên "lan1" và bộ định tuyến xuôi dòng trên "lan2".

Ban đầu, thông tin trên được quảng cáo thông qua cấu hình radvd sau:

giao diện lan1 {
    AdvManagedGắn cờ tắt;
    AdvOtherConfigTắt cờ;
    AdvSendAdvert on;
    AdvDefaultPreference cao;
    tiền tố ::/64 {
        AdvOnLink bật;
        AdvTự trị trên;
    };
};

giao diện lan2 {
    AdvManagedGắn cờ tắt;
    AdvOtherConfigTắt cờ;
    AdvSendAdvert on;
    AdvDefaultPreference cao;
    tuyến đường ::/60 {
    };
};

Sau đó, tôi đã thay thế đoạn giao diện sau bằng một đoạn đơn giản hơn: giao diện lan2 {}; mà tôi nghĩ đã hoạt động tốt hơn (hoặc có thể giống nhau, nhưng dù sao cũng ngắn hơn nhiều).

Điều này dường như cũng đúng, theo nghĩa là các máy chủ và bộ định tuyến cần phải thực sự cấu hình các giao diện của chúng.

Tuy nhiên, tất cả cấu hình này không thực hiện được một điều quan trọng: các tuyến đường không được thiết lập chính xác. Trên bộ định tuyến DIY này, các tuyến trông giống như sau:

$ip -6r
::1 dev lo proto kernel metric 256 pref medium
2XXX:YYYY:ZZZZ:dd00::/64 dev lan1 proto dhcp metric 1003 pref medium
2XXX:YYYY:ZZZZ:dd20::/60 dev lan2 proto dhcp metric 1004 pref medium
không thể truy cập được 2XXX:YYYY:ZZZZ:dd00::/56 dev lo proto dhcp metric 1001 pref medium
fe80::/64 dev lan2 proto kernel metric 256 pref medium
fe80::/64 dev wan0 proto kernel metric 256 pref medium
fe80::/64 dev lan1 proto kernel metric 256 pref medium
mặc định qua fe80::AAAA:BBBB:CCCC:DDDD dev wan0 proto ra metric 1002 mtu 1500 pref medium

Nếu tôi thêm thủ công (với số liệu nhỏ hơn) hoặc thay thế tuyến đường có liên quan cho mạng con/60, như vậy: ip -6 r thay thế 2XXX:YYYY:ZZZZ:dd20::/60 qua fe80::DOWN:STRE:AMRO:UTer dev lan2 và ngược lại trên bộ định tuyến xuôi dòng, với địa chỉ cục bộ liên kết của bộ định tuyến DIY, mọi thứ bắt đầu hoạt động.

Những câu hỏi của tôi:

  1. Làm cách nào để định cấu hình bộ định tuyến DIY của tôi để tự động thực hiện bước cuối cùng này? (Tôi đã cố gắng chọc các giá trị khác nhau tại chấp_ra, accept_ra_defrtrbộ định tuyến_gợi ý trong sysctl net.ipv6.conf Dưới tất cả các và các phần giao diện riêng lẻ, nhưng không thấy sự khác biệt trong hành vi.)
  2. Tôi có thể sử dụng một số phần mềm (mã nguồn mở) khác trên Linux để đạt được những gì tôi muốn, theo cách hợp lý hơn không? Ý tôi là khi ISP của tôi phân bổ cho tôi một tiền tố /56 khác, tôi sẽ cần thay đổi tệp cấu hình DHCP để sử dụng tiền tố đó thay thế. Tôi có thể (và sẽ) tạo một tập lệnh để giải quyết vấn đề này, nếu không có phần mềm hỗ trợ trường hợp sử dụng của tôi, nhưng việc phải làm như vậy có vẻ khá mong manh.

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