가상 인터페이스를 통해 IP 라우팅

가상 인터페이스를 통해 IP 라우팅

Linux에서는 가상 인터페이스를 통해 라우팅되도록 특정 IP에 대한 모든 요청을 수행하여 다른 쪽 끝에는 호스트의 기본 IP 주소와 다른 IP 주소가 표시되도록 할 수 있습니까? eth0IP 주소가 1.1.1.1이고 eth0:1주소가 1.1.1.2라고 가정합니다 . 1.2.3.4에 대한 모든 요청이 에서 오는 것처럼 보이도록 하려면 어떻게 해야 합니까 eth0:1? 다음을 시도하고 있지만 작동하지 않는 것 같습니다.

route add 1.2.3.4 dev eth0:1

답변1

예.

이를 수행하는 한 가지 방법은 IPTABLES를 사용하여 여러 IP 주소가 있는 머신에서 나가는 패킷을 다시 작성하여 해당 패킷이 가상 인터페이스에서 왔다고 말하는 것입니다. 노력하다

/sbin/iptables -t nat -I POSTROUTING -d DEST.IP -j SNAT --to VIRTUAL.IP

(물론 생각한 대로 가상 IP를 설정해야 합니다. 즉, 트래픽이 머신으로 돌아갈 수 있도록 eth0:1 또는 이에 상응하는 항목이 존재해야 합니다)

답변2

명령을 사용해야 할 수도 있습니다.

ip route add 1.2.3.4 dev eth0:1 src 1.1.1.2

또는 비슷한 옵션으로 경로를 지정하세요. 예상대로 작동하지 않으면 고급 라우팅이 필요할 수 있습니다. /etc/iproute2/rt_tables에서 이 대상에 대한 추가 라우팅 테이블을 생성하고 위 항목을 이 테이블에 유일한 항목으로 두고 이 테이블을 활성화합니다.

ip rule add to 1.2.3.4 priority 100 table to__1_2_3_4
ip route flush cache

절박한 최후의 수단 솔루션은 netfilter입니다. POSTROUTING 체인의 iptables와 함께 SNAT를 사용하여 이 대상에 대한 패킷의 소스 주소를 다시 쓸 수 있습니다.

관련 정보