내 문제는 다음과 매우 유사합니다.대상 포트에 따라 다양한 인터페이스로 트래픽 출력. 그런데 이 문제가 2011년에 제기되었습니다. 이제 최신 커널이 있으므로 tcp 또는 udp 선택기를 사용하여 IP 규칙을 만들 수 있습니다("정책 라우팅은 이제 레이어 4에 위치합니다"): 출처 -이 답변에 대한 댓글 보기.
저는 라우팅을 처음 접했기 때문에 unix.stackexchange.com의 답변에서 읽은 내용만 알고 있습니다. 내 솔루션 아이디어의 대부분은 다음에서 나왔습니다.특정 인터페이스를 통해 포트 트래픽 라우팅.
eth1(10.0.0.182)과 eth0(192.168.1.2)이라는 두 개의 인터페이스가 있습니다. 내 기본 경로는 eth0입니다.모든 http 및 https 트래픽이 기본 경로 대신 eth1을 통해 라우팅되기를 원합니다.다른 모든 것은 동일하게 유지될 수 있습니다.
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 203 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 203 0 0 eth1
192.168.1.2 0.0.0.0 255.255.255.0 U 202 0 0 eth0
10.0.0.1의 장치는 DHCP 서버, 방화벽 등의 역할을 하는 Comcast 모뎀입니다. 공용 IP 주소는 Comcast IP입니다.
최신 IP 규칙 기능을 사용하여 제대로 작동하려면 수행해야 할 단계는 다음과 같습니다.
# add a new (secondary) table:
echo "200 comcast-route" >> /etc/iproute2/rt_tables
# Populate secondary routing table
ip route add default via 10.0.0.1 dev eth1 table comcast-route
# relax Strict Reverse Path Forwarding to Loose RPF
sysctl -w net.ipv4.conf.eth1.rp_filter=2
#NOTE: my system already has this value, so no change is needed
# net.ipv4.conf.eth1.rp_filter = 2
# specify alternate routes when using specific destination ports
# iif lo below means "from local"
ip rule add iif lo ipproto tcp dport 80 lookup 80
ip rule add iif lo ipproto tcp dport 443 lookup 80
이게 다 맞는 것 같나요? 작동하지 않으면 이러한 변경 사항을 어떻게 되돌릴 수 있나요?
마지막으로 모든 것이 예상대로 작동하는 경우 어떻게 이를 지속되게 만들 수 있나요? 답이 보입니다여기, 하지만 사용된 조언은 /etc/rc.d/rc.local
구식이라고 생각합니다. 이러한 규칙을 준수하는 더 좋은 방법이 있습니까?