
질문
iptable 규칙에 다음 조건을 사용하면 어떤 효과가 있나요? 나 자신을 대상으로 연결을 지정하는 것과 동일한가요?
! -d 127.0.0.0/8 -p tcp -m addrtype --dst-type LOCAL
배경
특히 저는 이를 사용하여 호스트(공용 IP, 예를 들어 150.200.30.40)의 포트를 LXC 컨테이너(IP 10.0.3.202) 중 하나로 리디렉션합니다. 이러한 규칙은 내 호스트의 공용 IP 주소로 주소가 지정되는 트래픽과 동일한 것으로 보입니다.
## IPTABLE RULE FOR INCOMING CONNECTIONS??
iptables -t nat -A PREROUTING ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -p tcp --dport 2222 -j DNAT --to-destination 10.0.3.202:22
## EQUIVALENT RULE?? (for connections directed at 150.200.30.40)
iptables -t nat -A PREROUTING -d 150.200.30.40 -p tcp --dport 2222 -j DNAT --to-destination 10.0.3.202:22
답변1
이 둘이 동일하지 않은 경우도 있습니다. 이유는 다음과 같습니다(여기서는 프로토콜 및 포트와 같은 다른 일치 항목에 대해 논의하지 않습니다).
- 첫 번째 규칙은 패킷이 로컬 주소(127.0.0.0 범위 제외)를 대상으로 하는 경우 일치합니다.
- 두 번째 규칙은 패킷이 특정 IP 주소(언급한 대로 이 시스템에 할당됨)로 향할 때 일치합니다.
이 시스템에 150.200.30.40이라는 주소가 하나만 할당된 경우에도 동일합니다. 둘 다 127.0.0.0 범위와 일치하지 않는 로컬 주소로 향하는 패킷과 일치합니다.
언급된 공용 IP(물론 특수 개인 범위 127.0.0.0 제외) 이외의 인터페이스에 하나 이상의 주소가 할당된 경우 주소가 달라집니다.
언급된 공용 IP가 이 컴퓨터에 할당되지 않은 경우에는 확실히 다릅니다.