Được cho: một máy tính chạy CentOS 8 với ba bộ điều hợp mạng.
eth0, eth2: bên ngoài, được kết nối với hai ISP khác nhau
eth1: đối mặt với mạng gia đình (mạng nội bộ)
Nhiệm vụ: cho phép truy cập một số dịch vụ nội bộ từ một trong hai ISP.Có một số dịch vụ, tôi chỉ đề cập đến SSH bên dưới.
Trong các cấu hình dưới đây:
IP1: IP bên ngoài tại ISP đầu tiên (ISP1), được gán cho eth0
Gateway1: IP của cổng do ISP1 cung cấp
Network1,Netmask1: liên quan đến IP1
IP2: IP bên ngoài tại ISP thứ hai (ISP2), được gán cho eth2
Gateway2: IP của cổng do ISP2 cung cấp
Network2,Netmask2: liên quan đến IP2
LocalSSHIP: IP trong mạng nội bộ (eth1) nơi máy chủ SSH đang chạy
Cấu hình hiện tại theo sau. Bảng định tuyến:
tiếng vang "200 isp1" >> /etc/iproute2/rt_tables
tiếng vang "201 isp2" >> /etc/iproute2/rt_tables
Chính sách định tuyến:
/etc/sysconfig/network-scripts/route-eth0
Network1 dev eth0 src IP1 bảng isp1
mặc định qua bảng Gateway1 dev eth0 isp1
/etc/sysconfig/network-scripts/route-eth2
Network2 dev eth2 src bảng IP2 isp2
mặc định qua bảng Gateway2 dev eth2 isp2
Quy tắc định tuyến:
/etc/sysconfig/network-scripts/rule-eth0
từ bảng IP1/32 isp1
/etc/sysconfig/network-scripts/rule-eth2
từ bảng IP2/32 isp2
đoạn mã iptables. Lưu lượng truy cập bên ngoài được chuyển tiếp đến máy chủ SSH cục bộ từ cả hai giao diện:
iptables -A PREROUTING -t nat -i eth0 -p tcp -d IP1 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A PREROUTING -t nat -i eth2 -p tcp -d IP2 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A FORWARD -p tcp -d LocalSSHIP --dport 22 -j CHẤP NHẬN
eth0 là cổng mặc định:
tuyến đường $ ip
mặc định qua Gateway1 dev eth0 số liệu tĩnh nguyên mẫu 100
mặc định qua Gateway2 dev eth2 số liệu tĩnh proto 101
...
quy tắc $ ip
0: từ tất cả tra cứu cục bộ
32764: từ tra cứu IP2 isp2
32765: từ tra cứu IP1 isp1
32766: từ tất cả tra cứu chính
32767: từ tất cả tra cứu mặc định
SNAT được áp dụng cho lưu lượng bắt nguồn từ eth1:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Tình hình hiện tại:
- Tất cả các dịch vụ được chuyển tiếp từ eth0 đều hoạt động bình thường.
- Tất cả lưu lượng truy cập bắt nguồn từ mạng nội bộ đều bị loại bỏ và trở lại bình thường.
- Hết thời gian cố gắng truy cập các dịch vụ từ eth2.
Không có gợi ý rõ ràng nào trong /var/log/messages (chẳng hạn như khiếu nại về "IP của người sao Hỏa").
Tôi hơi bối rối ở đây, tất cả những lời khuyên sẽ rất được hoan nghênh.