최신 커널(>= 4.17)을 사용하여 특정 인터페이스를 통해 모든 HTTP/HTTPS 트래픽을 라우팅합니다.

최신 커널(>= 4.17)을 사용하여 특정 인터페이스를 통해 모든 HTTP/HTTPS 트래픽을 라우팅합니다.

내 문제는 다음과 매우 유사합니다.대상 포트에 따라 다양한 인터페이스로 트래픽 출력. 그런데 이 문제가 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구식이라고 생각합니다. 이러한 규칙을 준수하는 더 좋은 방법이 있습니까?

관련 정보