
한 서브넷에서 다른 서브넷으로 한 홉 이상 떨어진 패킷을 가져오려고 합니다. 예를 들면 다음과 같습니다.
[ 192.168.0.4 ] - - - > [ 192.168.10.11 ] - - - > [ 172.23.100.13 ]
192.168.0.4를 172.23.100.13에 연결하고 싶지만 문제는 다음과 같습니다.
# ip route add 172.23.100.13/32 via 192.168.10.11
Error: Nexthop has invalid gateway.
제가 이해하는 바에 따르면, Error: Nexthop has invalid gateway.
"192.168.10.11이 귀하가 사용 중인 네트워크인 192.168.0.0/24 네트워크에 없기 때문에 그렇게 할 수 없습니다."라는 뜻입니다.
내 질문은 이것이 iptables 규칙으로 가능한지 여부입니다. 가능하다고 생각하지만 아직 작업을 수행할 수 없습니다. 몇 가지 내용을 읽은 후 172.23.100.13으로 가는 패킷을 192.168.10.11로 보내도록 PREROUTING nat 규칙을 설정하려고 했습니다.
# iptables -t nat -A PREROUTING -d 172.23.100.13 -j DNAT --to-destination 192.168.10.11
불행히도 아무 일도 일어나지 않습니다. 디버깅 방법을 잘 모르겠습니다. 나는 시도했다:
# iptables -t nat -A PREROUTING -d 172.23.100.13 -j LOG
하지만 로그에는 아무 것도 나타나지 않습니다
나는 또한 tcpdump를 시도했습니다:
tcpdump -i <interface> -vv | egrep '(172.23.109.13|192.168.10.11)’ &
하지만 다음과 같은 반복 줄만 얻습니다.
192.168.0.4.43898 > 172.23.100.13.8000: Flags [S], cksum 0x2374 (incorrect -> 0xa00f), seq 573960788, win 62727, options [mss 8961,sackOK,TS val 1537225626 ecr 0,nop,wscale 7], length 0
이것이 올바른 접근 방식입니까? 무엇을 확인해야 할지에 대한 단서가 있나요?
감사합니다!
답변1
나는 이 퍼즐에서 빠진 조각을 발견했습니다. 네트워크용 VXLAN 인터페이스가 있기 때문에 기계 192.168.10.11
는 패킷을 보낼 수 있습니다 . 따라서 두 네트워크로 라우팅하려면 두 네트워크를 머신에 연결해야 한다는 기본 요구 사항으로 돌아갑니다.172.23.100.13
172.23.100.0/24