Ubuntu 12.04를 사용하여 라우터를 설정하고 있습니다. 인터넷 모뎀과 IP 주소가 부여된 클라이언트 네트워크 사이를 라우팅하려면 라우터가 필요합니다.
상자에는 3개의 인터페이스가 있습니다.
- eth0 - 클라이언트 네트워크의 포트입니다. 고정 IP 구성을 사용하십시오.
- eth1 - 우리의 LAN. 고정 IP 192.168.1.1로 구성되어 DHCP/DNS 서비스를 제공합니다.
- eth2 - 3G 라우터 모뎀으로의 업링크. DHCP 클라이언트로 구성합니다.
내 /etc/network/interfaces는 다음과 같습니다:
# The primary network interface
auto eth2
iface eth2 inet dhcp
# LAN point to our client's network
auto eth0
iface eth0 inet static
address 10.198.250.171
#gateway 10.198.0.4
netmask 255.255.0.0
network 10.198.0.0
broadcast 10.198.255.255
hwaddress ether 00:1E:EC:72:ED:92
# eth1 acts as our LAN's router IP
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
eth1을 DHCP로 사용하도록 구성하고 /etc/rc.local에서 LAN에서 인터넷으로 NAT를 다음과 같이 구성했습니다.
# IP forwarding script from our LAN to internet
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth2 -j MASQUERADE
내 클라이언트의 LAN(개인 클래스 A 네트워크)에 액세스하기 위해 다음과 같이 정적 경로를 구성했습니다.
up route add -net 10.0.0.0/8 gw 10.198.250.171 dev eth0
지금까지는 라우터 자체에서 클라이언트의 LAN에 ping을 보내고 액세스할 수 있지만 어떤 LAN 클라이언트에서도 라우터가 클라이언트의 LAN으로 라우팅하도록 할 수 없습니다.
또 무엇을 해야 하는지 말해 줄 수 있는 사람이 있나요? eth0 및 eth2에 대해 아웃바운드 NAT를 설정해야 합니까?
어떤 조언이라도 대단히 감사하겠습니다.
답변1
제 생각에는 클라이언트 LAN에서 응답을 받는 것이 문제인 것 같습니다. 따라서 클라이언트 LAN에도 NAT를 사용해야 합니다.
설명하겠습니다.
LAN의 노드는 게이트웨이를 기본 게이트웨이로 사용합니다.
따라서 클라이언트 네트워크(10.0.0.0/8) 또는 더 넓은 세계(0.0.0.0/8)로 향하는 모든 트래픽이 해당 네트워크로 이동합니다.
더 넓은 세계로의 트래픽은 NAT를 통해 인터넷으로 전달됩니다.
클라이언트 LAN으로의 트래픽은 있는 그대로 전달됩니다(여기서 전달이 작동한다고 가정하고 NAT 작동이 이를 나타냅니다).
따라서 내부 LAN의 노드(IP가 192.168.1.200이라고 가정)에서 들어오는 패킷은 게이트웨이로 전송되어 클라이언트 LAN으로 전달됩니다. 그러나 소스 주소는 여전히 192.168.1.200입니다.
클라이언트 컴퓨터는 이 메시지를 수신하고 192.168.1.200으로 응답을 시도합니다.
클라이언트 LAN 컴퓨터는 라우팅이 192.168.1.0/24로 설정되어 있지 않거나 기본 게이트웨이가 패킷을 게이트웨이로 전달할 수 없으면 라우팅할 수 없습니다.
게이트웨이에서 NAT가 활성화되면 소스 주소 192.168.1.200은 클라이언트 LAN 게이트웨이 주소로 NAT로 변환되고 클라이언트 LAN 노드는 해당 주소에 응답할 수 있으며 게이트웨이는 해당 주소를 다시 지정하고 반환합니다.