저는 이더넷 링크를 통해 Pi를 집에 있는 컴퓨터에 연결합니다. 내 컴퓨터는 무선 연결을 통해 인터넷에 연결되어 있습니다. 내 Pi의 모든 인터넷 트래픽을 내 컴퓨터를 통해 라우팅하고 싶습니다.
이더넷 링크에 /30 서브넷을 설정하고 두 서브넷에 경로를 추가하여 서로 핑할 수 있도록 했습니다.
이것이 내 구성입니다.
내 컴퓨터:
# IP addresses
eth0 192.168.1.1/30
wlan0 192.168.0.13/24
# IP routes
default via 192.168.0.254 dev wlan0 proto static metric 600
169.254.0.0/16 dev wlan0 scope link metric 1000
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.13 metric 600
192.168.1.0/30 dev eth0 scope link
내 파이:
# IP address
eth0 192.168.1.2/30
# IP routes
default via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0 proto static metric 1024
169.254.0.0/16 dev wlan0 scope link metric 1000
192.168.1.0/30 dev eth0 scope link
내 컴퓨터에서 모든 트래픽을 eth0에서 wlan0으로 라우팅하려면 일부 경로만 추가해야 합니까? 아니면 NAT를 사용해야 합니까 iptables
?
편집하다:
Henrik의 답변 이후 위장에 대해 검색해 본 결과 다음과 같은 사실을 발견했습니다.이 튜토리얼.
/proc/net
이 기사에서 그는 디렉토리에서 2.2x 커널을 찾아 가짜 커널 지원이 활성화되어 있는지 확인하라고 말합니다.
내 4.2.x 커널에서는 그가 언급한 파일을 찾지 못했지만 *masquerade*.ko
. 이는 내 커널에서 매스커레이딩이 지원된다는 의미입니까?
그렇지 않은 경우 커널을 다시 컴파일하지 않고 이를 설정할 수 있는 방법이 있습니까?
튜토리얼이 끝나면 그는 위장을 위한 몇 가지 방화벽 규칙을 제공합니다.
첫 번째는 다음과 같습니다
/sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 67 -d 0/0 68 -p udp
이는 DHCP 요청이 "숨겨진" 컴퓨터를 통과하도록 하기 위한 것입니다. 그런데 PI에서 IP를 수동으로 고쳐서 필요없게 됐죠?
따라서 두 가지 규칙이 있습니다.
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 10.1.199.0/24 -j MASQ
왜 하나가 있나요 DENY
?
내 서브넷의 경우
/sbin/ipchains -A forward -s 192.168.1.0/30 -j MASQ
옳은?
편집 2:
더 새로운 것을 찾았습니다지도 시간헨리크가 제안한 대로. 내가 추가한 파일
에서 :/etc/rc.local
iptables -t nat -A POSTROUTING -s 192.168.1.0/30 -o wlan0 -j MASQUERADE
이제 변장은 작동하는 것 같지만 완전히 작동하는 것은 아닙니다.
실제로 IP 주소(8.8.8.8)를 사용하여 google.com에 ping을 시도하면 제대로 작동하지만 URL을 사용하려고 하면 작동하지 않습니다.
DNS 문제 때문인 줄 알고 /etc/resolv.conf
파일에 DNS IP를 추가했습니다. 그러나 그것은 아무것도 바꾸지 않습니다.
그래서 Firefox의 IP 주소를 사용하여 DuckDuckgo에 액세스하려고 시도했지만 성공하지 못했습니다.
ICMP 트래픽만 전달되는 것 같습니다. 나는 Wireshark를 사용하여 무엇이 오고 eht0
무엇이 살아남는지 확인했습니다 wlan0
.
답변1
전달을 켜고(아마도 기본적으로 켜져 있음) 매스커레이딩을 설정해야 합니다(특수 유형의 NAT에 대한 멋진 단어이지만 검색할 내용을 아는 데 도움이 될 수 있음).