Điểm:2

ip addr add dev tun1 local 192.168.69.0 remote 192.168.69.1 có nghĩa là gì?

lá cờ jp

Tôi đã tìm thấy bộ lệnh sau để mở một thiết bị điều chỉnh trên linux để chuyển tiếp mọi thứ lên internet. Tuy nhiên, các gói không được chuyển tiếp trở lại thiết bị điều chỉnh

ip tuntap thêm chế độ dev tun1 điều chỉnh người dùng `id -un`
thiết lập liên kết ip dev tun1 lên
ip addr thêm dev tun1 cục bộ 192.168.69.0 từ xa 192.168.69.1
iptables -t filter -I FORWARD -i tun1 -o eth0 -j CHẤP NHẬN
iptables -t filter -I FORWARD -m state --state ĐÃ THÀNH LẬP, LIÊN QUAN -j CHẤP NHẬN
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

làm gì ip addr thêm dev tun1 cục bộ 192.168.69.0 từ xa 192.168.69.1 bần tiện? Là gì địa phươngXa xôi? Điều gì có thể bị thiếu?

Máy khách của tôi gửi SYN, máy chủ phản hồi bằng SYN+ACK, nhưng SYN+ACK này không được chuyển tiếp trở lại thiết bị điều chỉnh.

lá cờ us
Điều thực tế bạn đang cố gắng làm là gì? Cấu trúc liên kết mạng của bạn là gì?
Nikita Kipriyanov avatar
lá cờ za
Thiết bị Tun không phải là một "đường hầm mạng". Đó là *giao diện ảo* của OSI cấp 3, vì vậy bạn có thể đính kèm một số chương trình vào nó và tất cả các gói bạn đưa vào điều chỉnh sẽ được cung cấp cho chương trình đó và chương trình cũng có thể cung cấp các gói cho hệ thống để chúng xuất hiện như sắp ra khỏi giao diện điều chỉnh. Một lần nữa, điều này không liên quan gì đến việc tạo đường hầm. Nó chỉ là NIC ảo. Có, bạn có thể xây dựng một giải pháp đường hầm dựa trên điều này, nhưng nó sẽ không hiệu quả so với, chẳng hạn như đường hầm ipip hoặc gre.
Nikita Kipriyanov avatar
lá cờ za
@A.B. `tinc` cũng đang sử dụng nó. Nhưng khi bạn đang sử dụng một trong hai, bạn không bao giờ cần chạy các lệnh như chúng tôi thấy trong câu hỏi này.
lá cờ jp
@NikitaKipriyanov nó chỉ dành cho mục đích thử nghiệm. Có gì sai trong các lệnh của tôi? Tôi muốn xây dựng một đường hầm đơn giản để tôi có thể thử nghiệm với ngăn xếp tcp/ip không gian người dùng (smoltcp). Gửi các gói đi khắp thế giới và nhận chúng theo cách đồng bộ như thể đó là một VPN, giống như OpenVPN
Nikita Kipriyanov avatar
lá cờ za
@A.B. một lần nữa, việc sử dụng `tun` không có nghĩa là sẽ có OpenVPN. Trên thực tế, anh chàng này đã tuyên bố rõ ràng rằng anh ta không có ý định sử dụng OpenVPN mà là smoltcp, một thư viện Rust, một ngăn xếp mạng phần mềm. Tôi sẽ không gọi con quái vật này là "đường hầm".
A.B avatar
lá cờ cl
A.B
@NikitaKipriyanov Ồ, tôi không đọc là có smoltcp. Lỗi của tôi
Nikita Kipriyanov avatar
lá cờ za
@GuerlandoOCs không có gì sai với các lệnh của bạn; Tôi đã từng thấy những người cố gắng lập trình công cụ mạng đã biết những điều cơ bản về mạng, vì vậy tôi muốn chắc chắn rằng bạn biết mình đang làm gì.
Điểm:2
lá cờ za

Nói một cách đơn giản, bạn có thể phân biệt giữa hai loại liên kết (đây là sự đơn giản hóa, nhưng đủ cho câu hỏi này):

  • liên kết ngang hàng, trong đó mỗi bên của liên kết là một đồng đẳng.Mỗi người ngang hàng biết rằng chỉ có một người ngang hàng khác đằng sau liên kết và mọi người khác được định tuyến. Ví dụ là một liên kết nối tiếp (thông qua modem PSTN)
  • nhiều liên kết truy cập, trong đó có thể có nhiều hơn một đồng đẳng khác đằng sau liên kết. Có vô số ví dụ, như Ethernet, WiFi và một số ví dụ đã lỗi thời

Khi bạn định cấu hình địa chỉ cho một giao diện ở dạng "địa chỉ và mặt nạ mạng" (thông thường) thông qua địa chỉ ip add x.y.z.t/n dev eth, về cơ bản bạn làm những việc sau:

  • nói với kernel rằng nó sẽ nhận ra một x.y.z.t như của riêng mình địa chỉ, vì vậy nó thêm một phạm vi tuyến địa phương vào địa phương bảng định tuyến
  • nói với kernel rằng địa chỉ như x.y.z.00...0MỘT·x.y.z.11...1 có thể truy cập trực tiếp đằng sau liên kết, do đó, nó thêm một tuyến liên kết phạm vi thông qua giao diện này vào chủ yếu bảng định tuyến (/N chỉ định thực sự có bao nhiêu bit địa chỉ chung cho tất cả Máy chủ lưu trữ trên mạng đó)
  • nói với kernel x.y.z.11...1 là địa chỉ "quảng bá" của liên kết, vì vậy nó thêm một tuyến quảng bá vào địa phương bảng (và sẽ xem xét các gói đến địa chỉ đó, ngoài địa chỉ "nút cá nhân" x.y.z.t)

Nhưng không có "mạng" đằng sau liên kết ngang hàng, không có ai để phát tới, có thể chỉ có một ngang hàng khác. Khi bạn thêm địa chỉ vào liên kết trong biểu mẫu địa chỉ ip thêm x.y.z.t cục bộ từ xa b.c.d.e dev tun, về cơ bản bạn làm như sau:

  • nói với kernel rằng nó sẽ nhận ra một x.y.z.t như của riêng mình địa chỉ, vì vậy nó thêm một phạm vi tuyến địa phương vào địa phương bảng định tuyến
  • nói cho kernel biết địa chỉ b.c.d.e có thể truy cập trực tiếp thông qua liên kết đó, do đó, nó thêm một tuyến đường đến địa chỉ đó thông qua giao diện này tới chủ yếu bảng định tuyến.

Ví dụ. lệnh địa chỉ ip add local 10.0.1.0 remote 10.0.1.1 dev tun0 chỉ cần tạo các tuyến đường sau:

  • local 10.0.1.0 dev tun0 phạm vi kernel proto máy chủ src 10.0.1.0 (bên trong địa phương cái bàn)
  • 10.0.1.1 liên kết phạm vi kernel proto dev tun0 src 10.0.1.0 (bên trong chủ yếu cái bàn)

Kiểm tra bảng định tuyến trước và sau khi ban hành lệnh "thêm địa chỉ ip" trong cả hai trường hợp.

Chú ý đến bạn có thể thêm cấu hình kiểu ngang hàng vào giao diện đa truy cập và ngược lại; bạn thậm chí có thể thêm một địa chỉ "/32" và sau đó thêm định tuyến "qua giao diện" bằng tay và điều đó sẽ hoạt động chính xác như thể bạn đặt một mặt nạ mạng hoặc địa chỉ từ xa có ý nghĩa trong lệnh. Bạn thậm chí có thể thêm một số loại cấu hình vào giao diện duy nhất và tất cả chúng có thể hoạt động đồng thời! Vì vậy, đừng quá coi trọng tất cả các tham số này, hãy coi chúng như một cách để tự động thêm các tuyến đường cần thiết khi bạn định cấu hình một địa chỉ.

lá cờ jp
vì vậy nếu tôi hiểu đúng, `ip addr add dev tun1 local 192.168.69.0 remote 192.168.69.1` tạo địa chỉ của tôi thành `192.168.69.0`, vì vậy mọi gói có địa chỉ này làm đích sẽ đến `tun1` và cũng tạo thành `192.168.168. 69.1` có thể truy cập qua `tun1`. Vậy muốn truy cập trang web nào thì phải biến `ip addr add dev tun1 local 192.168.69.0 remote 0.0.0.0`?
Nikita Kipriyanov avatar
lá cờ za
Không, bạn đã có ý tưởng hoàn toàn sai. Có vẻ như bạn thậm chí không hiểu những gì bạn đang hỏi trong câu hỏi của chính mình, bởi vì tôi đã trả lời chính xác câu hỏi đó. Nhắc tôi, tại sao bạn cần giao diện `tun`? Làm thế nào mà tương ứng với nhận xét này? Nếu bạn muốn hỏi thêm những câu hỏi không liên quan, vui lòng đặt chúng dưới dạng câu hỏi riêng. Ngoài ra, ServerFault không phải là nơi thích hợp để đặt câu hỏi như thế này. Có thể là siêu người dùng. Nếu bạn phát triển phần mềm, StackOverflow. Nếu câu hỏi của bạn dành riêng cho Linux, hãy truy cập unix.stackechange.com. Ở đây chúng tôi giải quyết các vấn đề kinh doanh.

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