![1:1 고정 NAT를 사용하여 SSH 크랙](https://linux55.com/image/15129/1%3A1%20%EA%B3%A0%EC%A0%95%20NAT%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20SSH%20%ED%81%AC%EB%9E%99.png)
따라서 IP 주소가 192.168.200.2인 192.168.200.0/24의 개인 내부 네트워크에 VM이 있습니다.
외부 네트워크 주소는 192.168.1.0/24입니다. 외부 IP의 모든 트래픽을 192.168.200.2의 VM으로 전달하고 싶습니다. 이게 내가 한 일이야...
먼저 인터페이스에 보조 IP를 추가합니다.
ip addr add 192.168.1.111 dev eno1
그런 다음 이 2개의 iptables 명령을 사용하여 nat를 설정합니다.
iptables -t nat -A PREROUTING -d 192.168.1.111 -j DNAT --to-destination 192.168.200.2
iptables -t nat -A POSTROUTING -s 192.168.200.2 -j SNAT --to-source 192.168.1.111
이것은 실제로 작동합니다. 이제 192.168.1.111로 SSH를 통해 연결할 수 있으며 IP 192.168.200.2를 사용하는 kvm 인스턴스에 있게 됩니다.
그러나 내 문제는 때때로 SSH에서 전체 연결이 정지된다는 것입니다. top
이것은 항상 다음과 같은 명령을 실행할 때 발생합니다. 또는 전체 콘솔을 잠그기 전의 출력 예 systemctl
는 다음과 같습니다.man ip
top
top - 19:45:58 up 2 days, 23:56, 3 users, load average: 0.00, 0.00, 0.05
Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3936.3 total, 2479.2 free, 150.1 used, 1307.0 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3505.6 avail Mem
이보다 더 많은 출력이 있어야 합니다 ^^^ 여기서는 에 있는 동안 ctrl C, ctrl Z 또는 q를 사용할 수 없습니다 man
. 192.168.1.111을 사용하지 않고 192.168.200.2를 사용하여 연결하면 문제가 사라집니다. 이 문제는 192.168.1.111을 사용하여 연결할 때만 발생한다는 것을 알고 있습니다.
문제가 MTU 조각화일 수 있습니까?
어떤 도움이라도 대단히 감사하겠습니다.
ping -s 1472 192.168.1.111
편집: 방금 1472가 넘는 것은 모두 폐기된다는 것을 배웠습니다 .
답변1
그래서 내 문제는 전적으로 MTU에 있습니다. 호스트 물리적 인터페이스의 mtu는 1500이고 가상 장치의 mtu는 1450입니다(vxlan 캡슐화용). 이 외에도 호스트의 VM에는 1500의 mtu가 있어 전체 문제가 발생합니다.
리눅스에서 mtu 수정
ip link set dev eth0 mtu 1500