저는 CentOS에 익숙하지 않아서 라우팅을 수행하는 데 도움이 필요합니다. 3개의 NIC가 있는 CentOS 상자가 있습니다.
eth0 Link encap:Ethernet
inet addr:10.50.121.16 Bcast:10.50.121.255 Mask:255.255.255.0
eth1 Link encap:Ethernet
inet addr:10.50.128.134 Bcast:10.50.128.255 Mask:255.255.255.0
eth2 Link encap:Ethernet
inet addr:10.50.140.97 Bcast:10.50.140.255 Mask:255.255.255.0
eth0은 기존 인터페이스였으며 기본 경로가 있으므로 eth1과 eth2를 추가했습니다. eth1 및 eth2 세그먼트(둘 다 .1 주소)에 게이트웨이가 있습니다. 몇 가지 테스트를 수행하려면 eth1과 eth2 NIC 간에(각각의 게이트웨이를 통해) 일부 네트워크 흐름이 필요합니다. 그러면 이에 대한 정책 라우팅을 설정해야 할까요?
편집: 분명히 해서 죄송합니다. 두 개의 새로운 인터페이스 간에 패킷을 라우팅하려고 한다는 뜻은 아닙니다. 일부 인프라를 통해 eth1의 IP에서 eth2의 IP로 일부 패킷을 보내야 합니다(따라서 eth1의 VLAN과 eth2의 VLAN 간의 대화를 시뮬레이션함). 그래서 저는 이것을 eth1 -> eth1-vlan-router -> ???로 하고 싶습니다. -> eth2-vlan-router->eth2 그런 다음 역방향 경로를 사용하여 응답할 수 있습니다. 여기서 완전히 명확하지 않아서 안타깝습니다.
답변1
IPv4 라우팅을 수정 /etc/sysctl.conf
하고 활성화합니다.
net.ipv4.ip_forward = 1
그런 다음 실행 sysctl -p
하여 설정을 적용합니다.
의 현재 값을 표시하려면 net.ipv4.ip_forward
다음을 사용하십시오.
sysctl net.ipv4.ip_forward
답변2
표준 네트워킹 API를 사용하면 이 작업을 수행할 수 없습니다.
Linux 네트워크 스택은 소위 말하는 것을 사용합니다.약한 호스트 모델이는 특히 로컬 인터페이스에 할당된 모든 주소가 로컬로 간주됨을 의미합니다. 패킷을 로컬 인터페이스로 보내려고 하면 로컬에서 루프가 발생하고 네트워크에 도달하지 않습니다.
원시 소켓을 사용하여 무언가를 해킹할 수도 있지만 가장 좋은 솔루션은 아마도 가상 머신으로 구현된 두 번째 호스트를 사용하는 것입니다.