Điểm:0

Làm cách nào để chuyển hướng yêu cầu DNS đến một hệ thống được giải quyết từ xa?

lá cờ ve

Tôi đang cố gắng phân giải hệ thống thành một máy chủ bộ nhớ đệm DNS từ xa (tôi biết nó không có ý định làm như vậy). Tôi đã thêm net.ipv4.conf.br0.route_localnet đã thay đổi thành 1 và thêm các quy tắc nftable sau:

bảng ip nat {
    định tuyến trước chuỗi {
        gõ nat hook prerouting ưu tiên 100; chính sách chấp nhận;
        iif "br0" udp dport 53 gói truy cập 6 byte 366 dnat thành 127.0.0.53
    }

    chuyển tiếp chuỗi {
        gõ nat hook ưu tiên postrouting -100; chính sách chấp nhận;
        ip saddr 127.0.0.53 oif gói truy cập "br0" 0 byte 0 snat tới 192.168.1.2
    }
}

Quy tắc định tuyến trước dường như hoạt động vì có các gói phù hợp với quy tắc. Tuy nhiên không có gói nào ra khỏi máy chủ, vấn đề là gì?

Làm cách nào tôi có thể chuyển hướng yêu cầu DNS từ 192.168.1.0/24 sang hệ thống phân giải được lưu trữ trên thiết bị lo của 192.168.1.2 với IP 127.0.0.53?

Điểm:1
lá cờ cl
A.B

giải quyết systemd liên kết với lo giao diện:

# ss -aunp src == 127.0.0.53 thể thao == 53
State Recv-Q Send-Q Địa chỉ cục bộ:Cổng Địa chỉ ngang hàng:Cổng 
UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* người dùng:(("systemd-resolve",pid=44157,fd=17))

Điều này giới hạn các tuyến có sẵn dù chỉ một lần net.ipv4.conf.br0.route_localnet=1 được áp dụng cho những thiết lập trên lo giao diện:

$ ip -4 lộ trình hiển thị bảng tất cả dev lo
bảng quảng bá 127.0.0.0 liên kết phạm vi hạt nhân proto cục bộ src 127.0.0.1 
local 127.0.0.0/8 bảng local proto kernel phạm vi Host src 127.0.0.1 
bảng local 127.0.0.1 local proto kernel phạm vi máy chủ src 127.0.0.1 
phát 127.255.255.255 bảng liên kết phạm vi hạt nhân proto cục bộ src 127.0.0.1 

Không ai sẽ phù hợp.

Địa chỉ nguồn sẽ cần phải được thay đổi. Trong khi hiếm khi được sử dụng gõ nat móc đầu vào loại chuỗi sẽ cho phép thay đổi địa chỉ nguồn trước khi ứng dụng nhận được, thì đã quá muộn: điều này xảy ra sau khi định tuyến xong và gói đã bị hủy. Vì vậy, NAT trạng thái không thể xử lý trường hợp này.


Thay vào đó, một proxy có thể được sử dụng cho việc này (sau khi xóa tất cả các cài đặt nat cụ thể). Đây là một ví dụ sử dụng socat. socat không phải là một ứng dụng chuyên dụng, có những cảnh báo đặc biệt dành cho UDP.

  • Xử lý TCP (OP quên rằng DNS cũng sử dụng TCP)

    socat TCP4-LISTEN:53,bind=192.168.1.2,reuseaddr,fork TCP4:127.0.0.53:53
    

    Không thể liên kết với IN_ADDR_ANY vì 127.0.0.53:53 đã bị ràng buộc, nên hãy liên kết với địa chỉ do OP cung cấp (vì những lý do sai): 192.168.1.2. Bên cạnh đó, nó khá đơn giản.

  • xử lý UDP

    socat -T 20 UDP4-LISTEN:53,bind=192.168.1.2,reuseaddr,fork UDP4:127.0.0.53:53
    

    Thời gian chờ của những năm 20 là ở đây bởi vì socat không thể yêu cầu dừng ngay sau khi nhận được câu trả lời gói UDP duy nhất và sẽ giữ tất cả các lần rẽ nhánh socat lệnh tích lũy theo thời gian.

    Mặc dù UDP không phải liên kết với một địa chỉ trong trường hợp này, nhưng việc liên kết với một địa chỉ bằng UDP sẽ tránh được cảnh báo liên quan đến đa nhà điều hành và nhu cầu sử dụng IP_PKTINFO tùy chọn ổ cắm.

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