tuyến đường ra khỏi cổng khác nhau bởi mạng đích


9

Tôi có một số cổng và muốn chuyển một số lưu lượng ra khỏi các cổng khác nhau dựa trên điểm đến của nó. Tôi đoán tôi cần sử dụng kết hợp các quy tắc iproute2 và iptables, nhưng không chắc bắt đầu từ đâu.
Ai đó có thể cung cấp một ví dụ?

Câu trả lời:


9

Bạn có thể có thể làm những gì bạn muốn với ip route:

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0

Đầu tiên ip route addhiển thị một địa chỉ IP duy nhất, được gửi ra một giao diện ethernet nhất định (ep3s8) tới bộ định tuyến bước nhảy tiếp theo, 10.0.0.1

Tuyến thứ hai dành cho toàn bộ mạng, 10.xyz, đã gửi một thẻ ethernet nhất định, eth0. Đó là "mạng cục bộ", không có bộ định tuyến bước nhảy tiếp theo, tất cả nằm trên cùng một dây logic.

Bạn muốn đọc man ip-routetrước khi làm bất cứ điều gì, mặc dù. Ngoài ra, hãy chuẩn bị để phải khởi động lại, và không làm điều này từ xa. Bạn có thể rất dễ dàng tạo các tuyến không chính xác chấm dứt quyền truy cập từ xa của bạn. Tôi là tiếng nói của kinh nghiệm trong khuyến nghị cuối cùng này.


1
Lưu ý rằng bạn cũng có thể chỉ định các cổng cho toàn bộ các khối, `` ip route add 10.1.0.0/16 qua 192.168.0.1`
jthill 17/11/13

Cảm ơn câu trả lời của bạn, điều đó sẽ giúp chỉ cho tôi đi đúng hướng. Tôi sẽ thử cái này và cho bạn biết.
Walter

5

Những gì bạn đang hỏi là policy-based routinghoặc source-based routing. Có một giới thiệu tuyệt vời của David Schwartz trên trang web này.

Tôi muốn chỉ ra rằng cũng có một chương trình nhỏ gọn, có thể tìm thấy ở đây , cho phép bạn liên kết các ứng dụng cụ thể với một giao diện nhất định. Điều này tất nhiên dễ dàng với các ứng dụng như openssh có các tùy chọn để liên kết với địa chỉ nghe mong muốn. Nhưng thư viện này cho phép bạn liên kết ngay cả các ứng dụng mà không có các tùy chọn như vậy (như Firefox) với một địa chỉ IP nhất định.

Theo cách này, bạn có thể chọn xem bạn có muốn cung cấp các bảng định tuyến riêng cho tất cả các ứng dụng hay ghi đè các thông số kỹ thuật tương tự trên cơ sở mỗi ứng dụng.


Bạn không cần định tuyến chính sách nếu bạn muốn định tuyến theo điểm đến.
Diego Woitasen

Xin chào, đó cũng là một điểm tốt, hmm, điều đó sẽ cho phép sự linh hoạt cao hơn có lẽ là tiên tiến hơn tôi muốn ở điểm này. Chắc chắn một cái gì đó để tìm hiểu mặc dù.
Walter

3

nơi tốt để đọc về định tuyến cơ sở nguồn là Linux Advanced Routing & Traffic Control,
bạn cũng có thể đọc hướng dẫn sử dụng

man ip rule
man ip route

Nói chung, bạn nên thêm quy tắc (Tôi đã thêm giao diện eth1 chỉ cho mục đích trình diễn, nó có thể được bỏ qua)

#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000

đây là:
dev eth1 - thiết bị sẽ được sử dụng để gửi các gói
đến 170.10.0.10 -
bảng đích 2 - bảng nơi bạn nên đảm bảo
ưu tiên tuyến 20000 - ưu tiên của quy tắc

bạn có thể thấy quy tắc của mình bằng cách

#ip ru sh
    0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default

Tiếp theo, bạn nên thêm các tuyến theo cách thông thường, nhưng bạn nên chỉ định bảng (bảng 2), nơi bạn sẽ đặt tuyến

#ip route add table 2 via 170.10.0.1 default

để xem các tuyến đường của bạn, bạn nên chạy

#ip route show ta 2
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.