eth0과 eth2에 연결된 두 개의 ISP가 있는 게이트웨이가 있습니다. 로컬 네트워크가 있는 eth1도 있습니다. 하나의 인터페이스에 일부 서비스를 그룹화하고 두 번째 인터페이스에 일부 서비스를 그룹화하려고 합니다.
incoming traffic
1 eth0: 22 sshd, 80 http, 8080 http
2 eth2: 22 sshd
outgoing traffic
3 eth2: 22 ssh, 25 smtp, 80 http, 110 pop3, 443 https, 587 smtp
4 eth0: the rest of the ports
iptable, iproute2 및 fwmark를 사용하여 지점 1, 3, 4의 트래픽을 다시 라우팅했습니다. 인터페이스 설정은 다음과 같습니다.
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aaa.aaa.aaa.90
netmask 255.255.255.248
gateway aaa.aaa.aaa.89
auto eth2
iface eth2 inet static
address bbb.bbb.bbb.137
netmask 255.255.255.192
pre-up /usr/local/bin/firewall.sh
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.0.0
bridge-ports eth1
post-up ifconfig eth1 0.0.0.0 promisc up
IP 경로와 IP 규칙은 다음과 같습니다.
ip route show table main
aaa.aaa.aaa.88/29 dev eth0 proto kernel scope link src aaa.aaa.aaa.90
bbb.bbb.bbb.128/26 dev eth2 proto kernel scope link src bbb.bbb.bbb.137
192.168.0.0/16 dev br0 proto kernel scope link src 192.168.1.1
default via aaa.aaa.aaa.89 dev eth0
ip route show table 4
aaa.aaa.aaa.88/29 dev eth0 proto kernel scope link src aaa.aaa.aaa.90
bbb.bbb.bbb.128/26 dev eth2 proto kernel scope link src bbb.bbb.bbb.137
192.168.0.0/16 dev br0 proto kernel scope link src 192.168.1.1
default via bbb.bbb.bbb.129 dev eth2
0: from all lookup 255
32765: from all fwmark 0x4 lookup 4
32766: from all lookup main
32767: from all lookup default
그리고 iptables:
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p udp --sport 68 --dport 67 -m physdev --physdev-in tap1 -j DROP
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth2 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 0/0 -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp --dport 22 -d bbb.bbb.bbb.137 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 25 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 80 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 8080 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 110 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 443 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --dport 587 -s 192.168.0.0/16 -j MARK --set-mark 4
iptables -t nat -A PREROUTING -p tcp -d aaa.aaa.aaa.90 --dport 80 -j DNAT --to-destination 192.168.1.252:80
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source aaa.aaa.aaa.90
iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to-source bbb.bbb.bbb.137
iptables -t nat -A POSTROUTING -s 192.168.1.0/16 -j MASQUERADE
모든 인터페이스를 수신하더라도 bbb.bbb.bbb.137:22 외부에서 eth2에 액세스할 수 없습니다.
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3111/sshd
fwmark iproute2를 사용하여 불안정한 성능 문제를 보고한 사람이 있습니까? eth2 공급자는 eth0보다 훨씬 빠르지만 eth2를 사용하면 ISP 문제가 있지만 인터넷 서비스 공급자에는 문제가 없는 것처럼 일부 중단이 발생합니다. 두 번째 라우터도 확인하시겠습니까? 누군가 나에게 올바른 방향을 알려줄 수 있습니까? 감사해요