Linux는 두 개의 서브넷 연결을 끊습니다.

Linux는 두 개의 서브넷 연결을 끊습니다.

3개의 네트워크 카드(전역 1개, 내부 2개)가 있는 라우터가 있고 라우터에서 nat.ipv4.ip_forward = 1을 활성화했는지 알고 싶습니다. 그러면 서브넷 1의 호스트가 서브넷 2의 호스트에 연결할 수 있습니까?

그렇다면 두 서브넷이 서로 보지 못하도록 비활성화하면서도 여전히 글로벌 인터넷에 연결할 수 있는 방법은 무엇입니까?

저는 리눅스를 사용하고 있습니다.

감사해요

답변1

일반적 net.ipv4.ip_forward=1으로 에서 /etc/sysctl.conf이를 활성화하면 제한되지 않는 한 라우터가 모든 네트워크에서 다른 네트워크로 라우팅할 수 있습니다.

필요한 제한을 달성하는 가장 쉬운 방법은 iptablesFORWARD 규칙을 사용하는 것입니다.

예를 들어, 서브넷 1의 네트워크 인터페이스가 subnet 1 eno1및 subnet 2 인 경우 eno2FORWARD 규칙 세트 시작 부분에 다음 두 개의 iptables 규칙을 추가할 수 있습니다.

iptables -I FORWARD 1 -i eno1 -o eno2 -j DROP
iptables -I FORWARD 2 -i eno2 -o eno1 -j DROP

번역하다:

  • 패킷 전달을 위한 규칙 #1: 패킷이 들어오고 eno1나갈 예정 이면 eno2해당 패킷을 삭제합니다.
  • 패킷 전달을 위한 규칙 #2: 패킷이 들어왔다 eno2가 나갈 예정 이면 eno1해당 패킷을 삭제합니다.

라우터에 사용되는 Linux 배포판을 지정하지 않기 때문에 iptables이러한 기본 형태의 규칙을 보유하고 있는 고급 방화벽 관리 도구( firewalld, ufw및 기타 여러 도구)에 통합하는 문제는 연습으로 남겨두어야 합니다. 리더.

관련 정보