Tìm kiếm giải pháp iproute2 thanh lịch cho máy chủ w / 2 giao diện trên 2 mạng và 3 cổng


7

Tôi đã có một máy chủ web Linux với 192.168.0.2/24 được gán cho eth0 và 172.16.0.2/24 được gán cho eth1. Tôi không được thay đổi điều này. Đây là định tuyến cho đến nay:

172.16.0.0/24 dev eth1 proto kernel scope link src 172.16.0.2
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2
172.16.0.0/16 via 172.16.0.1 dev eth1
default via 192.168.0.1 dev eth0

Lộ trình mặc định dẫn đến Internet mà máy cần truy cập để tải xuống nội dung. Bây giờ cũng có các gói (yêu cầu) đến từ Internet thông qua 172.16.0.254. Làm cách nào để tôi phải thiết lập các bảng và quy tắc định tuyến để trả lời các yêu cầu đó? iptableskhông thể ở đây

Cập nhật: Có vẻ như điều này hoạt động, nhưng nó không có vẻ thanh lịch đối với tôi:

ip r a 172.16.0.0/24 dev eth1 table 10
ip r a 172.16.0.0/16 via 10.16.0.1 t 10
ip r a default via 172.16.0.254 t 10
ip rule add from 172.16.0.2 t 10

Điều gì không có vẻ thanh lịch về nó? Bạn tạo một bảng thứ hai và chọn nó dựa trên địa chỉ nguồn.
derobert

Tôi cũng sẽ thêm lựa chọn theo giao diện đầu ra được chỉ định (ví dụ ip rule add oif eth1 t 10).
BatchyX

Câu trả lời:


0

Đây được gọi là định tuyến dựa trên nguồn đơn giản và được bao phủ trong LARTC HOWTO:

http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.simple.html

Nếu bạn tìm thấy bản sao và dán nội dung của bảng định tuyến gốc (không có cổng mặc định), bạn không phải làm điều đó, bạn có thể sử dụng tập lệnh tầm thường:

ip route flush table 10
ip route show table main | grep -v ^default | while read ROUTE; do ip route add table 10 $ROUTE; done
ip route add table 10 default via 172.16.0.254
ip rule add from 172.16.0.2 table 10
ip route flush cache

-1

Tôi nghĩ bạn không thể.

Khi các ứng dụng (máy chủ web) trả lời, đây là các gói mới cho kernel và nó sẽ chỉ theo bảng định tuyến. Bạn không thể có nhiều cổng mặc định và chọn một cổng tùy thuộc vào giao diện nào mà gói tin đến đã kích hoạt ứng dụng gửi phản hồi này.

Xin vui lòng, chỉ cần sử dụng một cổng mặc định. Đừng làm NAT trên nhiều mạng con như thế này. Thiết kế mạng của bạn bị lỗi ở đây. Có thật không.

Và nếu bạn làm vậy, thì đừng hy vọng rằng việc chuyển tiếp cổng có thể làm nên điều kỳ diệu ở đây.


"Bạn không thể có nhiều cổng mặc định và chọn một cổng tùy thuộc vào giao diện nào mà gói tin đến đã kích hoạt ứng dụng gửi phản hồi này." Chắc chắn bạn có thể. Định tuyến Linux có thể xem xét địa chỉ nguồn. Và ngay cả khi không có điều đó, nếu OP không có hạn chế "không có iptables", theo dõi kết nối cho phép bạn làm điều đó. Và đây không hẳn là một thiết kế mạng bị lỗi, phụ thuộc vào những hạn chế dẫn đến nó.
derobert

@ downvoter: thay vì downvot, xin vui lòng gửi câu trả lời.
gertvdijk

@gertvdijk: Giải pháp đã có trong câu hỏi rồi.
BatchyX
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.