Linux 시스템에는 세 가지 네트워크 인터페이스가 있으며 다음과 같습니다.
| CentOS 6 Server
| ---------> eth0 (DHCP (192.168.1.x) Default Gateway, connects to a wired internet,
|----------> eth1 (IP : (10.165.11.139) GW to be used : (10.165.11.137), connects to a network A
|----------> eth2 (IP : (10.150.114.190) GW to be used: (10.150.114.191), connects to a network B
여기서 문제는 네트워크 A와 네트워크 B 모두 동일한 IP를 가진 노드를 가지고 있다는 것입니다. 예를 들면 다음과 같습니다.
10.232.130.171
10.232.130.172
10.232.131.100
Route-eth1 파일은 다음과 같습니다.
10.232.130.0/24 via 10.165.11.137
10.232.131.0/24 via 10.165.11.137
Route-eth2 파일은 다음과 같습니다:
10.232.130.0/24 via 10.150.114.189
10.232.131.0/24 via 10.150.114.189
따라서 ping 10.232.130.171은 항상 eth2 대신 eth1로 라우팅됩니다. 인터페이스(Asterix PBX)에 바인딩된 애플리케이션을 사용하려고 하면 위 IP에서 들어오는 연결은 제대로 작동하지만 이에 대한 모든 응답은 eth1을 통해 전송되므로 거부됩니다.
이 문제를 해결하는 방법에 대한 조언이 있습니까?
답변1
들어오는 연결, 특히 잘못된 방향으로 응답한다고 언급했기 때문에 10.150.114.191을 통한 경로를 사용하여 소스 주소 10.150.114.190(eth2)으로 전송된 패킷이면 충분하고 eth1에도 마찬가지입니다. 정책(소스) 기반 라우팅이 이를 수행할 수 있어야 합니다.
기본적으로 다음과 같이 요약되어야 합니다.
echo "201 net1" >> /etc/iproute2/rt_tables
echo "202 net2" >> /etc/iproute2/rt_tables
ip rule add from 10.165.11.139 lookup net1
ip route add 10.232.130.0/23 via 10.165.11.143 dev eth1 table net1
ip rule add from 10.150.114.190 lookup net2
ip route add 10.232.130.0/23 via 10.150.114.189 dev eth2 table net2
하지만 여기서 몇 가지 문제를 놓쳤을 수도 있습니다.
예를 들어 참조하십시오.
- https://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
- https://superuser.com/questions/376667/how-to-route-only-special-subnet-source-ip-to-a-pspecial-interface
- 수신과 동일한 인터페이스에서 응답하시겠습니까?
이렇게 하면 "중복" 네트워크 중 하나에 대한 연결을 시작하려는 중앙 호스트의 모든 프로세스가 적절한 인터페이스/IP 주소에 구체적으로 바인딩되어야 하며 두 10.232에서 모두 130.0/23을 라우팅하는 경우 차단됩니다. 외부 세계라면 그것만으로는 충분하지 않습니다.
위의 내용은 내가 아는 한 거의 테스트되지 않았습니다. 경고 사항. 나는 이것을 반대 투표 할 수 있도록 답변으로 게시하고 있습니다.
솔직히 말해서 선택권이 있다면 두 네트워크의 관리자에게 뇌물을 주어 둘 중 하나 또는 둘 다의 번호를 다시 매기는 것을 고려할 것입니다.