세 네트워크 사이의 라우터로서의 Linux(하나는 인터넷)

세 네트워크 사이의 라우터로서의 Linux(하나는 인터넷)

나는 두 개의 네트워크 XX3.0과 XX4.0 사이를 라우팅하는 Linux 상자를 가지고 있는데, 이 네트워크를 인터넷에 연결할 수 있기를 원합니다.

내가 읽고여기그렇게 하려면 iptables를 의미하는 NAT를 사용해야 한다는 @Kevin의 훌륭한 답변에 대해 현재 내 서버는 iptables를 사용하지 않으므로 이를 활성화하려면 올바른 명령을 찾아야 합니다.

내 네트워크는 다음과 같이 설명할 수 있습니다. Internet <-(eth0) Linux Router <-[1](eth1) 192.168.3.0 <--[2](eth2) 192.168.4.0 eth2는 라우터에 직접 연결됩니다.

두 로컬 네트워크는 서로 통신할 수 있지만 누구도 공용 IP 주소로 핑을 보낼 수 없습니다. .3.x 네트워크에 있는 한 컴퓨터의 공용 IP 주소에 ping 명령을 실행할 때 라우터에서 패킷을 스니핑하려고 시도했지만 내가 알 수 있는 한 문제가 있는 것 같습니다. 3.x IP 주소를 가진 사람에 대한 eth0 int의 끝없는 ARP 요청이 필요합니다. NAT처럼 작동하려면 라우터에서도 활성화해야 하는 것 같습니다. 검색을 했는데 언급된 명령을 시도했지만 iptables에 실행해야 하는 올바른 명령을 찾을 수 없습니다.여기그리고여기. 나는 iptables를 전혀 사용하지 않고 두 로컬 네트워크 사이를 라우팅할 수 있어야 했고, 그것이 필요하지 않기 때문에 그것 없이는 NAT를 수행하는 것이 불가능하지 않는 한 그것을 사용하지 않는 것을 선호합니다(이 경우 나는 iptable을 선호합니다) 다른 프로그램).

질문을 요약하자면: 1. 세 네트워크가 모두 서로 통신할 수 있어야 합니다. 2. 나는 iptables(가능한 경우)나 다른 추가 프로그램을 사용하지 않는 것을 선호합니다. 3. 그게 다야.

감사해요.

답변1

두 로컬 네트워크가 서로 통신할 수 있다는 것은 ip_forward가 활성화되었음을 의미합니다. 로컬 네트워크가 공용 IP 주소를 ping할 수 없으면 매스커레이딩을 수행해야 함을 의미합니다.

이 Linux 상자에서 공용 IP 주소를 ping할 수 있습니까? 그렇지 않다면 다른 문제가 있을 것입니다. 아마도 라우터를 브리지 모드로 설정해야 할 수도 있습니다(추측일 뿐입니다).

귀하의 Linux 시스템이 공개 IP를 핑할 수 있고 eth0에 공개 IP가 구성되어 있다고 가정합니다. 따라서 내부 네트워크 기기는 사설 IP 주소로는 인터넷 외부로 나갈 수 없으므로 반드시 채팅을 하셔야 합니다. 매우 간단하므로 iptables를 사용해 보십시오.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

시스템에 iptables가 설치되어 있지 않은 경우. 기본적으로 일부 방화벽이 설치되어 있어야 합니다. 어떤 배포판을 사용하고 있나요?

답변2

개인 IP 주소는 인터넷 사용에 유효하지 않으며 라우팅할 수 없습니다. 로컬에서만 사용할 수 있습니다.

인터넷 액세스를 활성화하려면 설명에 따르면 IP 전달을 활성화해야 합니다. 둘째, NATing을 사용해야 합니다. 대부분의 경우 ISP가 NAT를 대신 수행합니다. 이는 연결 유형 및 할당된 IP에 따라 변경될 수 있습니다.

도구의 경우 Linux에서 iptables보다 더 나은 도구는 없다고 생각합니다.

답변3

여러분의 사람들로부터 몇 가지 조사와 추천을 받은 후, 저는 iptable이 NATing(마스큐레이팅)을 수행하는 가장 좋은 방법이라는 결론에 도달했습니다. 그래서 저는 다음과 같이 했습니다:

#다음을 사용하여 현재 iptables 설정을 모두 플러시합니다.

$>iptables -F그리고 $>iptables -t nat -F

그런 다음 로컬 네트워크 간에 ping을 시도하면 다음과 같이 입력되지 않는 경우 iptables의 기본값으로 작동해야 합니다.

$>iptables -P INPUT ACCEPT

$>iptables -P FORWARD ACCEPT

$>iptables -P OUTPUT ACCEPT

그런 다음 @Sachin Divekar에서 위 명령을 실행합니다(ethX를 인터넷 연결 인터페이스로 교체).

$>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

테스트해 보세요. 제대로 작동할 것입니다. 그런 다음 이 설정을 다음과 같이 저장해야 합니다.

$>iptables-save > /etc/sysconfig/iptables

완료.

관련 정보