3개의 네트워크 카드(전역 1개, 내부 2개)가 있는 라우터가 있고 라우터에서 nat.ipv4.ip_forward = 1을 활성화했는지 알고 싶습니다. 그러면 서브넷 1의 호스트가 서브넷 2의 호스트에 연결할 수 있습니까?
그렇다면 두 서브넷이 서로 보지 못하도록 비활성화하면서도 여전히 글로벌 인터넷에 연결할 수 있는 방법은 무엇입니까?
저는 리눅스를 사용하고 있습니다.
감사해요
답변1
일반적 net.ipv4.ip_forward=1
으로 에서 /etc/sysctl.conf
이를 활성화하면 제한되지 않는 한 라우터가 모든 네트워크에서 다른 네트워크로 라우팅할 수 있습니다.
필요한 제한을 달성하는 가장 쉬운 방법은 iptables
FORWARD 규칙을 사용하는 것입니다.
예를 들어, 서브넷 1의 네트워크 인터페이스가 subnet 1 eno1
및 subnet 2 인 경우 eno2
FORWARD 규칙 세트 시작 부분에 다음 두 개의 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
및 기타 여러 도구)에 통합하는 문제는 연습으로 남겨두어야 합니다. 리더.