
머신 A가 게이트웨이로 있다고 가정합니다. 머신 A에는 2개의 IP가 있는 하나의 인터페이스가 있습니다.
머신 A의 netplan 구성은 다음과 같습니다.
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.1/24
- 192.168.1.2/24
이제 머신 B가 게이트웨이를 192.168.1.1 또는 192.168.1.2로 설정했는지 여부에 따라 iptables의 REDIRECT 규칙이 다르게 작동하기를 원합니다.
이것은 머신 A에서 실행하려는 iptables 명령입니다.
iptables --table nat --append PREROUTING --some-parameter 192.168.1.1 --protocol tcp --jump REDIRECT --to-ports 9991
iptables --table nat --append PREROUTING --some-parameter 192.168.1.2 --protocol tcp --jump REDIRECT --to-ports 9992
위 의 정확한 이름이 무엇인지 알려주실 수 있나요 --some-parameter
?
답변1
게이트웨이의 동일한 네트워크 인터페이스에서 192.168.1.1 및 192.168.1.2를 사용하여 이 작업을 수행할 수 없으므로 동일한 MAC 주소로 확인됩니다. 에서 구현되지 않은 기능이 아닙니다.iptables구현할 수는 있지만 IP 네트워킹의 작동 방식 때문에 구현할 수 없는 기능입니다.
192.168.1.1 또는 192.168.1.2를 게이트웨이로 사용하는 클라이언트는 인터넷으로 패킷을 내보낼 때 192.168.1.1 또는 192.168.1.2가 포함된 단일 IPv4 패킷을 절대 보내지 않습니다. 그것은:
- 특정 대상에 대한 라우팅 테이블을 참조하세요.
- 이 목적지로 향하는 관문이 있다는 걸 알아내세요
- 사용ARP또는 게이트웨이에 도달하는 데 필요한 L2 주소(이더넷 MAC 주소)를 확인하기 위한 캐시된 항목입니다.
마지막 단계에는 이더넷 대상이 하나만 있습니다. 게이트웨이의 NIC 고유 MAC 주소는 게이트웨이 192.168.1.1이 있는 클라이언트 또는 게이트웨이 192.168.1.2가 있는 다른 클라이언트와 동일합니다.
따라서 각 클라이언트는 이제 IPv4 소스 주소를 사용하여 게이트웨이로 패킷을 보냅니다. 두 경우 모두 동일한 대상 이더넷 MAC 주소를 갖는 이더넷 프레임의 의도된 IPv4 대상입니다. 192.168.1.1/192.168.1.2가 루프에서 벗어났습니다.
이제 게이트웨이는 라우팅할 두 개의 패킷을 확인합니다. 어떤 경우에도 이러한 패킷은 게이트웨이 192.168.1.1
로 사용 중인지 더 이상 암시하지 않습니다 192.168.1.2
. 정보는 회선에 표시되지 않으므로 게이트웨이 어디에서도 알 수 없습니다. 시스템에 사례를 구별할 수 있는 정보가 없는 경우iptables존재하지 않는 정보도 가질 수 없습니다.
해결 방법 제안:
하나는맥블랜별도의 MAC 주소가 있는 두 번째 NIC를 갖고 대신 192.168.1.2/24를 할당하면 192.168.1.2를 게이트웨이로 사용하는 클라이언트의 패킷이 대신 이 NIC에 도착하게 됩니다. 이 경우는 구별하기 쉽습니다.iptables: 다른 -i NIC
필터입니다.
그러나 이로 인해 동일한 LAN에 여러 NIC가 있는 라우팅 문제가 발생하고 다음 중 하나가 필요합니다.
이 문제를 적절하게 해결하기 위한 고급 정책 라우팅 규칙
따라서 라우팅 동작이나 방화벽 규칙에 영향을 줄 수 있는 잘못된 NIC를 통해 응답이 전송되지 않습니다.
- 또한 192.168.1.2(192.168.1.1이 기본값인 경우)에서 쿼리된 모든 UDP 서비스는 올바른 소스 주소 192.168.1.2(기본값 192.168.1.1 대신)로 응답하는 방법을 알아야 합니다. 멀티홈이어야 합니다. 알고 있는. TCP에는 특별한 주의가 필요하지 않습니다.
또는 추가된 인터페이스를 분리하기 위한 추가 네트워크 네임스페이스입니다. 그러나 REDIRECT 규칙을 사용하면 포트 9992의 서비스가 대신 추가 네트워크 네임스페이스에서 실행되어야 함을 의미합니다. 그리고 이 네트워크 네임스페이스는 아마도 초기 네트워크 네임스페이스를 사용하여 인터넷과 통신해야 할 것입니다. 또한 다양한 위치에서 계획할 추가 구성도 있습니다.