여러 노드가 있는 작은 클러스터가 있습니다. 노드는 하나뿐입니다(이를 호출하겠습니다).뿌리), 인터넷에 연결할 수 있습니다. 모든 노드가 연결되어 있으므로 한 노드에서 다른 노드로 ping할 수 있지만 공개 노드(예: 루트가 아닌 노드)에서는 인터넷에 액세스할 수 없습니다.
루트 노드 ifconfig
출력:
eth0 Link encap:Ethernet HWaddr b8:27:eb:d8:53:25
inet addr:192.168.10.10 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4084 errors:0 dropped:1295 overruns:0 frame:0
TX packets:841 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:249141 (243.3 KiB) TX bytes:87110 (85.0 KiB)
eth1 Link encap:Ethernet HWaddr b8:8d:12:54:75:aa
inet addr:158.184.27.129 Bcast:158.184.27.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1647 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:229772 (224.3 KiB) TX bytes:68634 (67.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:260 (260.0 B) TX bytes:260 (260.0 B)
wlan0 Link encap:Ethernet HWaddr 00:0f:13:39:02:c3
inet addr:158.196.122.94 Bcast:158.196.123.255 Mask:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:127 errors:0 dropped:0 overruns:0 frame:0
TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37269 (36.3 KiB) TX bytes:27150 (26.5 KiB)
루트 노드 route -n
출력
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 158.184.27.1 0.0.0.0 UG 0 0 0 eth1
158.184.27.0 * 255.255.255.0 U 0 0 0 eth1
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
공개 노드 ifconfig
출력:
eth0 Link encap:Ethernet HWaddr b8:27:eb:b3:ed:0e
inet addr:192.168.10.11 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5078 errors:0 dropped:2249 overruns:0 frame:0
TX packets:1502 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:287740 (280.9 KiB) TX bytes:179477 (175.2 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3590 (3.5 KiB) TX bytes:3590 (3.5 KiB)
공개 노드 route -n
출력:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.10 0.0.0.0 UG 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
일반 노드에서 루트 노드를 거쳐 인터넷에 접속하는 방법을 아시나요? 저는 네트워킹에 대해 아는 바가 거의 없으므로 자세히 설명해주세요.
편집하다:
Richard Neumann의 답변을 고려하여 루트 노드에서 IP 전달을 활성화했습니다. 루트 노드가 기본 게이트웨이로 설정된 것 같습니다(공용 노드 route -n
출력 참조).
그런데 아직도 인터넷이 안되네요...
편집 2:
> traceroute 8.8.8.8
1 permonik0 (192.168.10.10) 0.972ms 0.957ms 0.922ms
2 * * *
...
30 * * *
편집 3:
나는 다음과 같이 NAT를 설정했습니다.이 기사이제 8.8.8.8에도 성공적으로 ping을 실행할 수 있습니다. 하지만 여전히 웹사이트를 핑할 수 없습니다. 현재 DNS 문제가 있는 것 같습니다.
답변1
@Richard Neumann의 답변이 작동하지 않으면 아마도 DNS 문제일 것입니다.
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
IP 전달 및 위장을 설정합니다.
iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables --table nat --append POSTROUTING --jump MASQUERADE --source 192.168.10.10/24
iptables-save > /root/clients.fw
echo "/sbin/iptables-restore < /root/clients.fw" >> /etc/rc.local
위 명령을 사용하면 IP 전달이 활성화되고 방화벽이 설정되어 iptables
클라이언트에서 인터넷에 액세스할 수 있습니다.
답변2
당신의루트 노드으로 행동해야 할 것이다라우터다른 노드의 경우.
IPv4의 경우 IP 전달을 활성화해야 합니다.라우터:
sysctl -w net.ipv4.ip_forward = 1
지속적으로 만들려면 다음을 편집 /etc/sysctl.conf
하고 설정하세요.
net.ipv4.ip_forward=1
당신은 또한하고 싶을 수도 있습니다라우터상대방의 기본 게이트웨이마디.
만약에다음 홉당신의 너머라우터네트워크 192.168.10.10/24에 대해 잘 모르는 경우 구현해야 합니다.네트워크 주소 해석(네트워크 주소 변환). 옵션 을
확인하세요 .iptables
MASQUERADE
가능한 DNS 문제는 @Hunter.S.Thompson의 답변을 참조하세요.