Điểm:0

Định tuyến giữa hai card mạng

lá cờ ua
Adi

Tôi đang cố gắng định tuyến lưu lượng giữa các mạng khác nhau và đã làm theo hướng dẫn tôi tìm thấy ở đây: https://devconnected.com/how-to-add-route-on-linux/

Đây là một sơ đồ mà tôi hy vọng mô tả đầy đủ sự sắp xếp mà tôi đang làm việc với:

Windows 10UbuntuLinux
172.31.0.X <-----------------> 172.31.0.33 (eno1)
                        10.0.40.1 (enp2s0f0) <-----------------> 10.0.40.10

Tôi đã đặt một tuyến liên tục trên PC Windows để định tuyến bất kỳ lưu lượng truy cập nào cho 10.0.40.0/24 qua 172.31.0.33.

Định tuyến đầu ra In

Máy Ubuntu được thiết lập để định tuyến lưu lượng dành cho 10.0.40.0/24 đến 10.0.40.1.

đầu ra ip r

Ping 10.0.40.10 từ máy Ubuntu hoạt động như mong đợi.

Nếu tôi ping 10.0.40.10 từ PC Windows, tôi có thể thấy các thông báo ICMP đến giao diện 172.31.0.33 trên máy Ubuntu bằng tcpdump. Tôi không thấy bất kỳ lưu lượng nào trên giao diện 10.0.40.1 trên máy đó. Có vẻ như máy Ubuntu không định tuyến lưu lượng như tôi mong đợi. Bất cứ ai có thể làm sáng tỏ những gì tôi đã bỏ lỡ?

Thêm đầu ra của:

iptables -S

cho máy Ubuntu:

Sudo iptables -S
# Cảnh báo: có bảng iptables-legacy, hãy sử dụng iptables-legacy để xem chúng
-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN VỀ PHÍA TRƯỚC
-P CHẤP NHẬN ĐẦU RA
-A VỀ PHÍA TRƯỚC -i eno1 -j CHẤP NHẬN
-A VỀ PHÍA TRƯỚC -i enp2s0f0 -j CHẤP NHẬN
adi@LabBuildServer:~$ Sudo iptables-legacy -S
[sudo] mật khẩu cho adi:
-P CHẤP NHẬN ĐẦU VÀO
-P VỀ PHÍA TRƯỚC DROP
-P CHẤP NHẬN ĐẦU RA
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-NGƯỜI DÙNG
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A FORWARD -o docker0 -j DOCKER
-A VỀ PHÍA TRƯỚC -i docker0 ! -o docker0 -j CHẤP NHẬN
-A FORWARD -i docker0 -o docker0 -j CHẤP NHẬN
-A FORWARD -o br-e925d11be2da -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j ACCE PT
-A FORWARD -o br-e925d11be2da -j DOCKER
-MỘT PHÍA TRƯỚC -i br-e925d11be2da ! -o br-e925d11be2da -j CHẤP NHẬN
-A VỀ PHÍA TRƯỚC -i br-e925d11be2da -o br-e925d11be2da -j CHẤP NHẬN
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-e925d11be2da ! -o br-e925d11be2da -j DOCKER-IS OLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-e925d11be2da -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN

Đầu ra của:

lộ trình ip

trên máy chủ Linux:

lộ trình ip
mặc định qua 10.0.40.1 dev br-POE proto tĩnh
10.0.40.0/24 dev br-POE liên kết phạm vi kernel proto src 10.0.40.10

Máy Ubuntu:

adi@LabBuildServer:~$ Sudo iptables -t nat -L
[sudo] mật khẩu cho adi:
# Cảnh báo: có bảng iptables-legacy, hãy sử dụng iptables-legacy để xem chúng
PREROUTING chuỗi (CHẤP NHẬN chính sách)
đích prot opt ​​nguồn đích

ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt ​​nguồn đích

Chuỗi POSTROUTING (CHẤP NHẬN chính sách)
đích prot opt ​​nguồn đích
MASQUERADE tất cả -- mọi nơi mọi nơi
MASQUERADE tất cả -- mọi nơi mọi nơi

ĐẦU RA chuỗi (chính sách CHẤP NHẬN)
đích prot opt ​​nguồn đích
lá cờ in
`/proc/sys/net/ipv4/ip_forward` có được đặt thành `1` không? Tôi biết, những thứ cơ bản, nhưng tôi đã không đếm được bao nhiêu lần tôi đã khiến cuộc sống của mình trở nên khó khăn hơn khi quên nó.
Adi avatar
lá cờ ua
Adi
Xin chào @Lacek. Có, nó được đặt thành 1. Luôn đáng để kiểm tra! Cảm ơn.
4snok avatar
lá cờ es
bạn có bất kỳ quy tắc nào trong chuỗi chuyển tiếp iptables trên máy Ubuntu không? Máy Linux có biết mạng 172.31.0.x không?
Adi avatar
lá cờ ua
Adi
Xin chào @4snok, tôi chưa thêm bất kỳ quy tắc iptables nào. Theo hướng dẫn mà tôi đã liên kết, không có đề cập nào về điều đó để ping hoạt động. Đó có phải là thứ tôi cần không?
A.B avatar
lá cờ cl
A.B
Tại sao bạn không đặt câu hỏi ở đây tại serverfault bạn đã làm gì (bằng văn bản không phải ảnh chụp màn hình)? Chúng tôi thực sự không muốn phải điều hướng đến một hướng dẫn khác để thử và xem những gì bạn đã thực sự làm hoặc không làm.
4snok avatar
lá cờ es
vui lòng thêm vào đầu ra câu hỏi của `iptables -S` từ máy chủ Ubuntu và `ip route` từ máy chủ Linux
Adi avatar
lá cờ ua
Adi
Xin chào @4snok, tôi đã thêm đầu ra theo yêu cầu. Điều đó nói lên điều gì?
4snok avatar
lá cờ es
không thực sự :(, bạn có thể kiểm tra xem có bất kỳ quy tắc fw nào với `iptables-legacy -S` như iptables đề xuất không?
4snok avatar
lá cờ es
thử ping linux từ Ubuntu 172.31. giao diện, `ping -S 172.31.0.33 10.0.40.10` đảm bảo rằng nó đang hoạt động. Ngoài ra, tôi thấy bảng định tuyến trên máy windows khá khó hiểu, ví dụ: trong tuyến đường liên tục của bạn, bạn chỉ định gw `172.31.0.33`, nhưng theo bảng định tuyến 172.31.0.33 có thể truy cập được qua 10.255.255.0, không có quy tắc liên kết
djdomi avatar
lá cờ za
Về cơ bản, nat có được sử dụng không?
Adi avatar
lá cờ ua
Adi
Ý bạn là `ping -S` hay `ping -I`? `ping -I 172.31.0.33 10.0.40.10` hoạt động như mong đợi.
Điểm:1
lá cờ kz

Giải pháp ở ngay đó:

-P VỀ PHÍA TRƯỚC DROP

trong bạn iptables-di sản bộ quy tắc, chính sách mặc định để chuyển tiếp gói được đặt thành DROP và không có quy tắc nào trong bộ quy tắc đó cho phép chuyển tiếp gói từ eno1 đến enp2s0f0, chỉ chuyển tiếp từ/đến giao diện cầu nối...

Trộn lẫn các iptables khác nhau luôn là một ý tưởng tồi, bạn nên tự quyết định xem mình có muốn sử dụng không iptables hoặc iptables-di sản - mỗi network paket sẽ đi qua cả 2 ruleset gây ra khá nhiều nhầm lẫn.

cập nhật:
Câu trả lời của tôi không có nghĩa là bạn phải cài đặt chính sách mặc định là chấp nhận, tôi chỉ chỉ ra lý do. Tất nhiên, bạn có thể thêm các quy tắc để chỉ cho phép chuyển tiếp lưu lượng truy cập đến các IP cụ thể này, chẳng hạn như sau:

-A PHÍA TRƯỚC -i eno1 -s 172.31.0.0/24 -o enp2s0f0 -d 10.0.40.0/24 -j CHẤP NHẬN
-A PHÍA TRƯỚC -i enp2s0f0 -s 10.0.40.0/24 -o eno1 -d 172.31.0.0/24 -j CHẤP NHẬN
Adi avatar
lá cờ ua
Adi
Cảm ơn. Vâng, nó có vẻ rõ ràng khi bạn biết nơi để tìm! Thay vì chỉ thay đổi điều đó thành `-P FORWARD ACCEPT', liệu có thể để nguyên điều đó là DROP và sau đó thêm một quy tắc cụ thể chỉ để chuyển tiếp lưu lượng từ 172.31.0.0/24 sang 10.0.40.0/24 không?
Martin avatar
lá cờ kz
Tất nhiên là có thể! Tôi đã thêm một ví dụ, cách các quy tắc có thể trông như thế nào, vào câu trả lời ...
A.B avatar
lá cờ cl
A.B
Đừng quên tất cả là do Docker tương tác với cài đặt mạng: https://docs.docker.com/network/iptables/. Khi khắc phục sự cố thứ gì đó không phụ thuộc vào Docker trên hệ thống mà Docker đang chạy, điều đầu tiên cần làm là tắt Docker và khởi động lại, sau đó thử lại. Dừng Docker (và không khởi động lại) sẽ không xóa mọi thứ (ví dụ: mô-đun đã tải `br_netfilter` có thể khiến bất kỳ thiết lập nào khác sử dụng cầu riêng của nó bị lỗi mà không có lý do rõ ràng).

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