Làm cách nào để hợp nhất nhiều kết nối Internet thành một?


23

PC của tôi có tổng cộng 4 NIC, 2 card mạng Gigabit Ethernet có dây và 2 card mạng không dây. (Một Broadcom với trình điều khiển độc quyền và Ralink với phần mềm nguồn mở, hoạt động tốt hơn nhiều so với Broadcom.)

Điện thoại di động của tôi có thể chia sẻ kết nối không dây với PC của tôi, nhưng tôi cũng có kết nối Internet có dây. Vì vậy, tôi có nhiều kết nối Internet để truy cập Internet. Làm cách nào tôi có thể hợp nhất 2 hoặc nhiều kết nối lại với nhau và cân bằng chúng để tận hưởng một trải nghiệm Internet thống nhất rằng đó là tổng của tất cả các kết nối Internet được kết nối với nó.

Ví dụ: nếu tôi có modem có kết nối Internet 1024kB / giây và một modem khác cung cấp 512kB / giây và một modem nhỏ cung cấp 128kB / giây, sau khi cân bằng tải và hợp nhất tất cả các kết nối (Liên kết hoặc hợp tác), tôi có thể tải xuống tại tốc độ 1664kB / s sử dụng cả 3 kết nối Internet làm một ví dụ.

Câu hỏi này luôn khiến tôi tò mò.


5
Có vẻ như vượt quá phạm vi của Ask Ubuntu :) Đây là công cụ kết nối mạng khá phức tạp. IMO hiếm khi có giá trị, vào thời điểm bạn tính đến các gói bị mất do liên kết bị tắt (thậm chí tạm thời), sắp xếp lại các gói do một số liên kết chậm hơn các liên kết khác và những thứ như vậy. Tôi không biết về một giải pháp "hộp đen" sẽ làm điều này, có thể là một dự án thú vị.
Caesium

9
Câu hỏi đặt ra là liệu điều này có thể được thực hiện trong Ubuntu hay không và nếu có thì như thế nào.
Luis Alvarado

Tôi đã tạo một câu trả lời trong 2 kết nối internet trên một bài đăng trên PC . Tài liệu liên kết để giới hạn trong Ubuntu.
Lucio

@Lucio Tôi có thể đánh dấu câu hỏi là trùng lặp hoặc bạn có thể di chuyển câu trả lời của mình vào đây và tôi có thể đánh dấu nó là chấp nhận. Bạn cũng cần phải sẵn sàng khi 13.04 xuất hiện vì nó sẽ bao gồm trong Trình quản lý mạng các tùy chọn liên kết (Chỉ các nô lệ liên kết có dây ngay bây giờ).
Luis Alvarado

Câu trả lời:


11

Tôi làm một cái gì đó như thế tại nơi làm việc bằng Ubuntu 11.04. Chúng tôi chạy công cụ cấu hình tường lửa Shorewall, ngoài công việc tuyệt vời, còn cung cấp một số công cụ định tuyến ISP thô sơ có thể phù hợp với nhu cầu của bạn. Bạn có thể tìm thấy một số tài liệu về nó ở đây: http://www.oorwall.net/MultiISP.html

Mặc dù vậy, bạn không thể sử dụng nhiều ISP cho một kết nối duy nhất ... mọi thứ không đơn giản. Điều tốt nhất bạn có thể làm là cố gắng điều hướng các kết nối mới đồng đều giữa các nhà cung cấp khác nhau.

Đây là một vấn đề phức tạp. Bạn có thể sẽ cuối cùng đập đầu vào tường (tôi chắc chắn đã làm) trước khi bạn hoàn thành việc gỡ lỗi mọi vấn đề. Vì vậy, như các áp phích khác đã đề xuất, bạn có thể khôn ngoan để xem xét cẩn thận mức độ mong muốn của bạn mạnh mẽ như thế nào.


Liên kết tốt đẹp. Hướng dẫn rất hay.
Luis Alvarado

Chúng ta cũng hãy xem điều này: debfox.org/2006/02/23/ cường
Postadelmaga

8

Bạn có thể làm điều đó bằng cách sử dụng gói ifenslaveđính kèm và tách giao diện mạng nô lệ sang thiết bị liên kết.

  1. Cài đặt, dựng lên:

    sudo apt-get install ifenslave
    
  2. Tải mô-đun hạt nhân liên kết

    sudo modprobe bondingle
    
  3. Cấu hình giao diện của bạn:

    sudo vi /etc/network/interfaces
    

    Cấu hình ví dụ, để kết hợp eth0 và eth1 làm nô lệ cho giao diện liên kết của bạn:

    #eth0 is manually configured, and slave to the "bond0" bonded NIC
    auto eth0
    iface eth0 inet manual
    bond-master bond0
    
    #eth1 ditto, thus creating a 2-link bond.
    auto eth1
    iface eth1 inet manual
    bond-master bond0
    
    # bond0 is the bonded NIC and can be used like any other normal NIC.
    # bond0 is configured using static network information.
    auto bond0
    iface bond0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    # bond0 uses standard IEEE 802.3ad LACP bonding protocol 
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate 1
    bond-slaves none
    
  4. Khởi động lại mạng:

    sudo restart networking
    
  5. Đưa lên / xuống giao diện giới hạn:

    ifup bond0
    ifdown bond0
    

    Có một số chế độ liên kết như một ví dụ chúng tôi sử dụng:

    bond-mode active-backup
    

    Mô tả chế độ liên kết dự phòng hoạt động :

    Chính sách sao lưu hoạt động: Chỉ có một nô lệ trong trái phiếu được kích hoạt. Một nô lệ khác sẽ hoạt động nếu và chỉ khi, nô lệ hoạt động không thành công. Địa chỉ MAC của trái phiếu chỉ hiển thị bên ngoài trên một cổng (bộ điều hợp mạng) để tránh nhầm lẫn công tắc. Chế độ này cung cấp khả năng chịu lỗi. Tùy chọn chính ảnh hưởng đến hành vi của chế độ này.

    • Mô tả tất cả các chế độ liên kết.

    Nguồn và thông tin thêm tại cộng đồng Ubuntu giúp wiki .

Liên kết , có nghĩa là kết hợp một số giao diện mạng (NIC) với một liên kết duy nhất, cung cấp tính sẵn sàng cao, cân bằng tải, thông lượng tối đa hoặc kết hợp cả hai. Nguồn


+1 vì là một trong những lý do cho câu hỏi của tôi. Vẫn sẽ chờ một cách để tạo kết nối mạng ảo là tổng của tất cả các kết nối nô lệ (thực). Một cái gì đó giống như liên kết đi kèm trong phiên bản kernel mới nhất.
Luis Alvarado

2
-1 - liên kết hoạt động trong mạng LAN khi nó hoạt động ở Lớp 2. Câu hỏi là về việc cân bằng tải hai mạng WAN độc lập.
gertvdijk

@gertvdijk Tôi không đồng ý kiểm tra câu trả lời cập nhật của tôi để biết rằng liên kết cũng tải cân bằng.
pl1nk

1
@ pl1nk Đây là cân bằng tải lớp 2 cho hai NIC trong cùng một mạng L2. Điều này không giống như cân bằng tải đa ISP!
gertvdijk

3
@ pl1nk Nhận xét cuối cùng của tôi. Câu hỏi liên quan đến nhiều kết nối băng thông rộng độc lập, rõ ràng. Mặc dù họ có thể là một ISP, nhưng điều này không thay đổi khuyết tật để xử lý việc này ở lớp 2.
gertvdijk

6

Đó là một câu hỏi hơi cũ, nhưng nếu bạn vẫn muốn biết ..

Có 2 kịch bản điển hình, những gì gertvdijk và pl1nk đã tranh luận trong một trong những câu trả lời:

Bạn có một máy tính có 2 IP công cộng (2 ISP khác nhau) và bạn kết nối với một máy chủ khác (ví dụ: một máy chủ trong trung tâm dữ liệu có một ống mỡ lớn hơn băng thông tổng hợp của cả hai kết nối ISP của máy tính của bạn). Vì vậy, bạn thiết lập kết nối liên kết với máy chủ thông qua 2 kết nối của mình và sau đó máy chủ (máy chủ) phục vụ lưu lượng truy cập của bạn thông qua kết nối internet của chính nó. Trong trường hợp này, bạn có thể nhận được gần như 100% băng thông kết hợp theo cả hai hướng cho một kết nối.

Đây là một trường hợp cụ thể của tập hợp liên kết / hợp tác / ling trong đó nhiều giao diện lớp 2 (cùng mạng) được nối với nhau. Có thể đạt được bằng cách thiết lập các kết nối VPN lớp 2 (chạm) trên mỗi giao diện ISP từ máy tính đến máy chủ và liên kết chúng lại với nhau (chế độ quay vòng) để có một giao diện duy nhất. Yếu tố giới hạn trong kịch bản này là độ trễ (ping) khác nhau trên mỗi kết nối ISP với máy chủ. Chúng càng giống nhau và ổn định thì càng tốt. Chúng tôi sử dụng nó trong một trong các cài đặt của chúng tôi, nó hoạt động tốt. Nếu bạn muốn biết chi tiết về cách thực hiện nó, hãy cho tôi biết.

Sau đó, một kịch bản khác sẽ không có máy chủ trung gian, tức là kết nối trực tiếp từ giao diện ISP của bạn đến các máy chủ web khác nhau trên khắp thế giới. Trong trường hợp này, cách tốt nhất bạn có thể nhận được là phân phối đồng đều các kết nối đi giữa các giao diện - tức là một phiên TCP hoàn toàn thông qua một ISP, phiên thứ hai qua một phiên khác, v.v. Điều này là như vậy bởi vì khi bạn thiết lập kết nối TCP, nó có địa chỉ IP gốc và đích cho mỗi gói và khi một máy chủ nhận được gói từ một IP khác mà việc bắt tay TCP không được thực hiện, nó coi gói đó là lỗi và làm rơi nó. Vì mỗi kết nối ISP có IP công cộng riêng, cho cùng một phiên TCP, bạn không thể gửi một gói thông qua một kết nối từ một IP này và một kết nối khác thông qua một kết nối khác với một IP khác.

Bạn sẽ không đạt được mức sử dụng băng thông tổng hợp cao cho một máy tính như với kịch bản đầu tiên, nhưng đối với một văn phòng nhỏ, đó có thể là một giải pháp tốt. Những gì bạn có thể làm để mở rộng nó một chút là triển khai các giải pháp tùy chỉnh cho các giao thức cụ thể. Ví dụ: bạn có thể có một số proxy trên cổng (có thể là cùng một máy tính) để tải xuống http và yêu cầu các phần khác nhau của một tệp khổng lồ thiết lập các phiên TCP khác nhau thông qua các giao diện ISP khác nhau. Trong trường hợp này, tốc độ tải xuống kết quả sẽ gần 100% băng thông kết hợp. Nó giống như giảm tải cho cổng những gì ReGet, GetRight và các trình tải xuống tương tự làm. Google 'HTTP 206 Nội dung một phần'. Tôi không biết bất kỳ giải pháp nguồn mở nào cho kịch bản này, nhưng có những thiết bị phần cứng thực hiện chính xác điều này: google '


Ồ Phần đầu tiên của câu trả lời của bạn là chính xác những gì tôi đang tìm kiếm. Tôi có một máy chủ trong đám mây với Ubuntu và kết nối rất nhanh. Và kết nối internet duy nhất tôi có thể có ở đây là 300kbps với 3G hạn chế. Bạn có thể cung cấp thêm thông tin không để đạt được phần đầu tiên trong câu trả lời của mình, để tôi có thể mua nhiều khóa 3G và kế hoạch cải thiện tốc độ kết nối của tôi?
Huafu

2
echo "bonding" >> /etc/modules echo -e "alias bond* bonding\noptions bonding max_bonds=10 mode=2 xmit_hash_policy=layer3+4 arp_interval=100 arp_ip_target=10.0.0.1" > /etc/modprobe.d/bonding.conf
Anatoli

1
Và làm nô lệ tất cả các dấu chạm cho liên kết này: echo "+tapX " >> /sys/class/net/bond0/bonding/slaves Kiểm tra trạng thái của nó với: cat /proc/net/bonding/bond0 Ở giai đoạn này, tất cả lưu lượng truy cập internet sẽ truyền qua bond0 đến máy chủ trong trung tâm dữ liệu. Ở đó bạn nên đặt định tuyến: echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 được coi là mạng internet)
Anatoli

1
Cấu hình trái phiếu này (mode = 2 xmit_hash_policy = layer3 + 4) sẽ khiến mỗi kết nối mới đi qua iface VPN cơ bản khác nhau dựa trên hàm băm (được tính từ IP và các cổng liên quan đến kết nối). Thông tin thêm: kernel.org/doc/Documentation/networking/boinating.txt . Đây thực sự giống như giải pháp thứ hai từ câu trả lời của tôi, bởi vì bạn cần một kết nối cơ bản rất giống nhau (jitter rất thấp và cùng băng thông) để liên kết vòng tròn hoạt động chính xác (nếu không bạn sẽ nhận được rất nhiều gói sắp xếp lại gói) và bạn nói kết nối của bạn là 3G.
Anatoli

1
@Huafu, để có giải pháp đầu tiên, bạn chỉ cần thay đổi các tùy chọn liên kết thay vì mode=2 xmit_hash_policy=layer3+4chỉ định y mode=0(xem liên kết @ kernel.org), nhưng trước tiên hãy kiểm tra xem các liên kết qua 3G tương tự như thế nào. Nếu thời gian ping của chúng khác nhau nhiều hơn 2-3ms hoặc jitter là hơn 1ms, bạn sẽ có rất nhiều gói sắp xếp lại có hiệu quả làm giảm tốc độ của liên kết tổng hợp. Bạn sẽ phải kiểm tra thống kê liên kết tổng hợp với netstat -s(tìm kiếm truyền lại) và iperf -s/ iperf -c <server_ip> -d. Lần đầu tiên kiểm tra hiệu suất của từng liên kết, sau đó chúng tôi có thể tiếp tục với một giải pháp
Anatoli

0

tôi đã đối mặt với một vấn đề tương tự .. và tôi rất quan tâm đến cách tiếp cận giải pháp theo kịch bản đầu tiên của ông. GTH và Anatoli, tôi rất yêu cầu bạn bố trí các cấu hình và tập lệnh cơ bản, nếu có thể, để kiểm tra cấu hình được mô tả trong kịch bản đầu tiên ..

bây giờ tôi đã cấu hình các kết nối vpn thông qua các nhà cung cấp ISP khác nhau, sử dụng các giao diện tun / tap kết hợp (không liên kết, điều được giải thích trong câu trả lời # 8) với tiện ích này:

Cân bằng mạng-ISP của Lincoln D. Stein

Cân bằng tải kết nối Internet của bạn qua hai hoặc nhiều ISP để cải thiện băng thông và độ tin cậy

Trang chủ dự án: https://lstein.github.io/Net-ISP-Balance/

Gói này cho phép bạn cân bằng tải kết nối Internet tại nhà hoặc doanh nghiệp nhỏ trên hai hoặc nhiều ISP. Bạn có thể sử dụng nó với một máy chủ duy nhất được gắn vào hai ISP hoặc trên máy định tuyến / tường lửa để tải cân bằng toàn bộ mạng LAN của bạn. Lưu lượng truy cập mạng được cân bằng trên cả hai kết nối ISP để tăng khả năng tải lên và tải xuống và nếu một ISP bị lỗi, (các) ISP khác sẽ tự động tiếp quản.

Băng thông được phân phối theo cấp độ mỗi kết nối. Điều này có nghĩa là bạn sẽ không thấy băng thông tổng hợp trên bất kỳ điểm tải xuống hoặc tốc độ cụ thể nào, nhưng bạn sẽ thấy những lợi ích khi nhiều lần truyền dữ liệu xảy ra đồng thời, ví dụ, khi một số cá nhân trong gia đình bạn đang phát trực tuyến phim. Ngoài ra, các giao thức truyền tệp đa kết nối như BitTorrent, sẽ thấy được lợi ích của việc cân bằng tải.

thực tế, đây là tiện ích dựa trên Perl để quản lý định tuyến và iptables trong Linux hoàn hảo cho mục đích của chúng tôi, trên thực tế, trước tiên, tạo một bảng định tuyến cho tất cả các nhà cung cấp, sau đó phân phối tất cả lưu lượng LAN giữa các nhà cung cấp, để hiểu cách thức hoạt động của tiện ích một ví dụ nhỏ (cấu hình thử nghiệm) cho 3 isp + 1 lan

 #cat /etc/network/balance.conf
 ##service    device   role     ping-ip           
 CABLE3       enp0s3   isp      10.0.2.2
 CABLE8       enp0s8   isp      10.0.3.2
 CABLE9       enp0s9   isp      10.0.4.2
 LAN          enp0s10  lan                        

 #cat /etc/network/interfaces
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp

auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet dhcp

auto enp0s9
allow-hotplug enp0s9
iface enp0s9 inet dhcp

auto enp0s10
allow-hotplug enp0s10
iface enp0s10 inet static
    address 192.168.1.1/24

#Now work Net-ISP-Balance utility:

## Including rules from /etc/network/balance/pre-run/pre-run-script.pl ##
## Finished /etc/network/balance/pre-run/pre-run-script.pl ##
echo 0 > /proc/sys/net/ipv4/ip_forward
ip route flush all
ip rule flush
ip rule add from all lookup main pref 32766
ip rule add from all lookup default pref 32767
ip route flush table  2
ip route flush table  1
ip route flush table  3
ip route add  10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add  10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add  10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add  0.0.0.0/0 dev enp0s10 src 
ip route add default scope global nexthop via 10.0.4.2 dev enp0s9 weight 1 nexthop via 10.0.3.2 dev enp0s8 weight 1 nexthop via 10.0.2.2 dev enp0s3 weight 1
ip route add table 2 default dev enp0s3 via 10.0.2.2
ip route add table 2 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 2 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 2 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 2 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.2.15 table 2
ip rule add fwmark 2 table 2
ip route add table 1 default dev enp0s8 via 10.0.3.2
ip route add table 1 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 1 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 1 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 1 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.3.15 table 1
ip rule add fwmark 1 table 1
ip route add table 3 default dev enp0s9 via 10.0.4.2
ip route add table 3 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 3 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 3 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 3 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.4.15 table 3
ip rule add fwmark 3 table 3
## Including rules from /etc/network/balance/routes/01.local_routes ##
# enter any routing commands you might want to go in
# for example:
# ip route add 192.168.100.1 dev eth0 src 198.162.1.14

## Finished /etc/network/balance/routes/01.local_routes ##
## Including rules from /etc/network/balance/routes/02.local_routes.pl ##
## Finished /etc/network/balance/routes/02.local_routes.pl ##
iptables -F
iptables -t nat    -F
iptables -t mangle -F
iptables -X
iptables -P INPUT    DROP
iptables -P OUTPUT   DROP
iptables -P FORWARD  DROP

iptables -N DROPGEN
iptables -A DROPGEN -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "GENERAL: "
iptables -A DROPGEN -j DROP

iptables -N DROPINVAL
iptables -A DROPINVAL -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "INVALID: "
iptables -A DROPINVAL -j DROP

iptables -N DROPPERM
iptables -A DROPPERM -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "ACCESS-DENIED: "
iptables -A DROPPERM -j DROP

iptables -N DROPSPOOF
iptables -A DROPSPOOF -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "DROP-SPOOF: "
iptables -A DROPSPOOF -j DROP

iptables -N DROPFLOOD
iptables -A DROPFLOOD -m limit --limit 1/minute  -j LOG --log-level 4 --log-prefix "DROP-FLOOD: "
iptables -A DROPFLOOD -j DROP

iptables -N DEBUG
iptables -A DEBUG  -j LOG --log-level 3 --log-prefix "DEBUG: "
iptables -t mangle -N MARK-CABLE3
iptables -t mangle -A MARK-CABLE3 -j MARK     --set-mark 2
iptables -t mangle -A MARK-CABLE3 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE8
iptables -t mangle -A MARK-CABLE8 -j MARK     --set-mark 1
iptables -t mangle -A MARK-CABLE8 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE9
iptables -t mangle -A MARK-CABLE9 -j MARK     --set-mark 3
iptables -t mangle -A MARK-CABLE9 -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 1 -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.5 -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.333333333333333 -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate NEW -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate NEW -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate NEW -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j DROPPERM
iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT   -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROPFLOOD
iptables -A INPUT   -i enp0s10 -s 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 0.0.0.0/0  -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 255.255.255.255/32  -j ACCEPT
iptables -A OUTPUT  -p udp -s 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s3 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s3                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s8 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s8                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s9 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s9                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -j DROPSPOOF
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s9 -j MASQUERADE
## Including rules from /etc/network/balance/firewall/01.accept ##
## This file contains iptables statements that add additional firewall rules

# allow incoming domain packets -- needed for DNS resolution
iptables -A INPUT   -p udp --source-port domain -j ACCEPT
# allow incoming NTP packets -- needed for net time protocol
iptables -A INPUT   -p udp --source-port ntp -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept ##
## Including rules from /etc/network/balance/firewall/01.accept.pl ##
iptables -A INPUT -p tcp -s 0.0.0.0/0 --syn --dport ssh -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept.pl ##
## Including rules from /etc/network/balance/firewall/02.forward.pl ##
iptables -A FORWARD -p udp --source-port domain -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -p udp --source-port ntp    -d 0.0.0.0/0 -j ACCEPT
## Finished /etc/network/balance/firewall/02.forward.pl ##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Including rules from /etc/network/balance/post-run/post-run-script.pl ##
## Finished /etc/network/balance/post-run/post-run-script.pl ##

Xin vui lòng, xem xét xóa câu trả lời này và thêm một bình luận yêu cầu giải thích thêm cho câu trả lời tương ứng thay thế. Đây không phải là một câu trả lời. Cảm ơn bạn.
Raffa
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.