서로 다른 망 접속 질문입니다.

seren0924의 이미지

첨부파일 된 그림에서.. C에서 A로 ping이 때려지는데요.. A에서 C로 핑을 때릴려니 Network is unreachable 이란 에려가 나옵니다.

게이트웨이 문제인가해서 알아봤더니.. A의 게이트웨이는 192.168.0.1 이고 C의 게이트웨이는 192.168.45.1 이었습니다.
제가 생각하기로는 C에서 A로도 ping이 안되야하는거같은데..

그리고 각각에 A,B에서 AP를 만들어서 공유한것인데요. 그때 들어오는 신호를 AP로 만들기 위해서
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
이런 iptables을 생성해습니다.

여기서 제가 A에서 C로 ping이 때려지기 위해서 A,B에
sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

이렇게 wlan0, wlan1의 순서를 바꿔서 했는데도 안되네요...
iptables에서 혹시 다른걸 더 추가하면 ping이 날아 갈수있을까요?

File attachments: 
첨부파일 크기
Image icon ap.png8.25 KB
red10won의 이미지

젤 좋은건 다 동일 gw를 쓰는것이고,

그게 안된다면 c 게이트 웨이에 포트포워딩을 해야될겁니다.

seren0924의 이미지

같은 gw로 여러 AP를 만들 수 있는지 궁금합니다.
그렇게 해보았더니 잘 안되더라구요. 된다면 제가 잘못한것같아서 다른방법으로 해보려고합니다.

red10won의 이미지

AP란건,,

Access Point 단순 중계 역활입니다
ip를 넣을수도 있고 안넣고 무선 신호만 쎄게 할수도 있습니다.

환경이 무선인지 유선이지 말씀해주시고
무선이라면 GW하나로 묶어서 세컨더리 게이트웨이를 따서 쓰는게 편합니다.

192.168.43.1
192.168.44.1
둘다 물리적으로 하나의 백본에서 관리되면 서로 통신됩니다.

seren0924의 이미지

A,B,C 모두 무선환경에서 사용하고있구요, A에 있는 신호를 C까지, C에있는 신호를 A까지 보내는 것이 목적입니다.
하나의 GW로 묶어서 사용하려면 어떻게 사용해야 하는지 궁금합니다.
저는 하나의 AP당
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
이렇게 사용하고 있습니다.
A에서는 42.0을, B에서는 43.0을 subnet으로 했습니다.

http://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software
이 사이트를 참조했습니다.

seren0924의 이미지

default gateway를추가 했습니다.
그랬더니 A에서 원래 안되던 ping 192.168.44.1까지 ping test가 되었습니다.
하지만 44.11로는 Destination Host Unreachable 에러가 나네요... 어떻게해야하는지 도통 모르겠습니다.ㅜㅜ

익명 사용자의 이미지

조금 다른 이야기입니다만, A <--> B <--> C 에서 B는 AP로 A,C는 일반 무선랜으로 구성해서, A가 B에 접속되어 있고 C가 B에 접속되어 있다면, A,B,C 간에 서로 접속이 가능하지 않나요. 이런 구성이라면 굳이 B가 wireless card를 두개 가질 필요도 없구요. 다만 A <-> C 간에 무선 대역폭은 반으로 줄어들겠네요. C가 A를 경우해서 인터넷이 되어야 하는 상황이 아니라, A,B,C 간의 통신만 필요한 상황이라면 이런 구성도 가능할 듯합니다.

원래 질문에 대해서는, 제 생각에 마스커레이딩을 쓸게 아니라, wlan0과 wlan1을 브릿지로 연결하시면 간편하게 해결될 거 같습니다. 제가 유선만 이렇게 brctl로 묶어본 경험으로 말씀드리는 거라 무선의 경우 다를 수 있겠습니다.
하지만, 제가 아는 선에서는 무선에서 wpa_sullicant, iwconfig, iw, hostapd 등이 기능만 다르지 결국 하는 역활이 유선에서 케이블을 연결해 둔 상태에 이르게 하는 겁니다. 따라서 이런 프로그램으로 wlan0과 wlan1을 셋팅해 둔 상태에서는 wlan0과 wlan1을 유선에서 다루듯이 하면 되는 걸로 알고 있습니다. ip 또는 ifconfig, dhcpcd, dhclient, brctl 등을 똑같이 쓰면 되는 거지요. 때문에 아마 마스커레이딩이 아닌 brctl 명령을 써도 될 걸로 생각합니다.

seren0924의 이미지

wlan0과 wlan1을 브릿지로 연결하려면 둘다 인터넷이 되야하는거 아닌가요? 제가 잘못알고있는건지 잘 모르겠어서요...
wlan0에서 신호를 받아서 wlan1으로 새로운 신호를 만들어(AP) 내보내서 지금까지는 썼습니다..

익명 사용자의 이미지

인터넷 연결 여부, ip 할당 여부와는 상관없습니다. 그 아래 단계에 해당합니다. wlan0과 wlan1을 브릿지로 묶게 되면, wlan0으로부터의 신호가 그대로 wlan1을 통과해서 전달될걸로 생각합니다.
이후에는 "그냥 A.wlan, B.br0, C.wlan 이 하나의 허브에 물려 있다고 생각"하고 하나의 서브넷으로 해서 ip 지정하시면 됩니다. 서브넷을 분리할 필요도 없고, 라이팅 복잡하게 구성할 필요도 없습니다. B.wlan0과 B.wlan1은 iwconfig, wpa_supplicant, hostapd 에서만 필요하고, brctl로 묶은 후에는 따로 건드리지 않습니다.

그런데, 아마 아래처럼 라우팅 테이블을 조작하는 방법을 쓰실 거 같네요. 하지만 너무 과한 구성으로 보입니다.

익명 사용자의 이미지

주말에 살짝 테스트해 보았는데, Managed 모드에 있는 wifi 인터페이스는 브릿지에 붙지 않는군요. AP 모드에 있을 경우에만 브릿지에 붙는군요. 왜 그런지는 좀더 공부해 보아야 하겠습니다.
확인되지 않은 정보를 사실인양 주장한 점, 정말 죄송합니다.

익명 사용자의 이미지

https://wiki.debian.org/BridgeNetworkConnections#Bridging_with_a_wireless_NIC

제가 가진 네크워크 장비가 이걸 테스트하기에는 적절하지 못해서 테스트해보지는 못했습니다. 제 취향에는 적용을 시도해 보겠습니다만, 애초에 내세운 간편한 설정과는 거리가 있고 제대로 검증도 되지 않았기 때문에, 지금 사례에 추천해 드리지는 못하겠습니다.

익명 사용자의 이미지

도배가 되어버렸네요... 위에서도 그렇지만, 검증되지 않은 내용을 쓰는 것이 조심스럽습니다.

wireless repeater는 저도 관심을 두고 있던 거라 이것 저것 생각해 보게 됩니다.

WDS란 것도 조사해 보시기 바랍니다. 처음 생각에 WDS는 대역폭이 절반이 된다고 점 때문에 관심 대상에서 제외했는데, 대역폭이 줄어드는 것은 하나의 무선랜 장치로 WDS용도와 wireless client connection용도를 겸하는 경우에 네트워크 프레임이 같은 무선 공간을 공유하기 때문이고, 용도를 분리하는 경우에는 대역폭이 줄어드는 문제는 피할 수 있을 걸로 생각합니다.
때문에, A.wlan1 과 B.wlan0에 WDS 설정을 하고, B.wlan1을 AP로 해서 C.wlan0을 접속하게 하면, 대역폭이 절반으로 줄어드는 문제없이 B를 wireless repeater로 만들 수 있어 보입니다. WDS 설정도 AP모드를 이용하는 것이기 때문에, B.wlan0, B.wlan1 모두 브릿지에 붙일 수 있을 테구요. 자꾸 브릿지에 엃매이는 것은 A, B, C를 같은 서브넷으로 구성하고 싶기 때문입니다.

필요한 환경이 갖추어진다면 테스트해 보고 싶군요.

익명 사용자의 이미지

좋은 글이 있어 소개합니다. 누군가에게는 도움이 되길 바라며, 기록해 둡니다.

http://wiki.openwrt.org/doc/howto/clientmode
마스커레이딩, 라우팅, WDS, 드라이버 확장에 의한 방법 등에 대한 개념이 설명되어 있습니다.

"Problem using standard client mode" 을 보시면, 왜 managed mode 의 wireless interface 을 브릿지에 추가하는 것을 막아 버렸는지, 4-address format을 쓰는 WDS 모드에서는 어떻게 그것이 되는지 등을 이해할 수 있습니다.

seren0924의 이미지

덧글 정말 감사합니다. 또한 이렇게까지 알아봐주시고 신경써주셔서 정말 감사드려요!
참고자료보고 저도 공부를 더 해봐야겠네요.ㅎㅎ 정말정말 감사합니다^-^

red10won의 이미지

전산실 네트워크 장비 백본(Gateway)에
192.168.43.1에 추가 해놓고,

A IP : 192.168.43.11
B IP : 192.168.43.12
C IP : 192.168.43.13

AP는 단순 무선 신호를 쎄게하는 증폭기? 중계기로만 사용하십시오.
AP는 AP끼리 Mac address인증만 해놓으면 됩니다.

백본에 설정값만 추가하면 되는데 OS세팅으로 바꿀려구 하니 계속 일이 이상하게 되는거 같습니다.
쉽게 단순하게 생각하시면 됩니다.

seren0924의 이미지

A,B,C 모두 라즈베리파이이고, A도 결국 어떠한 무선 신로르 받아서 다른 동글을 통해 새로운 무선신호를 만들어서 사용하고 있었습니다. 하나의 망을 사용하고 싶은데 멀리 떨어져 있을시 그 신호를 사용하기 위해서 쓸려고 했던거구요..
백본에서 설정한다는 것이 무슨의미인지를 제가 잘 모르겠어서..ㅜㅜ 맨 처음 들어오는 신호의 장비를 건들일 수 는 없는 입장입니다.ㅜㅜ

red10won의 이미지

A에 들어오는 원선에 iptime공유기 같은걸 설치합니다.
192.168.43.1

공유기(gateway)가 되는것이고 해당 IP를 넣어두고
AP는 무선AP역활만하면 될거 같습니다.

dgkim의 이미지

masquerade는 최종 인터넷 사용시점에만 필요하고, 나머지는 라우팅으로 처리하면 될 것 같습니다만, 어렵게 가고 계신 것 같습니다.

A의 라우트 테이블
route add -net 192.168.44.0/24 gw 192.168.43.11

B의 라우트 테이블은 인터넷이 필요하다면,
route add -net 0.0.0.0/0 gw 192.168.43.1
B에서는 forward 되어야 합니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables의 FORWARD룰이 forward를 허용하는 것이 아니며, 제어하는 기능을 가집니다.
기본적으로는 모두 forward가능하도록 룰을 정의하지 않은 상태로 ip_forward 허용만 하면 된다는 것입니다.

C의 라우트 테이블은 A까지 오는 단일 경로만 있다면(정확히는 B만 경유한다라면)
route add -net 0.0.0.0/0 gw 192.168.44.1

인터페이스 종류를 정확히 다시 정리해주면 좀 더 도움이 될 수 있습니다.

iptables -t nat를 최종 인터넷 접근 호스트에서만 하고,
나머지 호스트는 망이 다르더라도, masquerade할 필요 없이 라우팅만 하면 됩니다.
(가장 간단하고 이해하기 쉽게하는 법으로)

--
http://www.dgkim.net/

seren0924의 이미지

말씀하신것처럼 해봤더니 A에서 C까지 핑은 날아갑니다.
이제 C에서 스트리밍하고있는 주소인 http://192.168.44.11:8080으로 접속해봤더니 접속은 안되네요.
이게 외부망이라 결국 포트포워딩이 필요한건가요?

dgkim의 이미지

A호스트에서는 정상적으로 될 것이고,
A 호스트 밖에서 한다라고 하면, A 호스트에서 port forwarding 설정을 해주어야 합니다.

--
http://www.dgkim.net/

dgkim의 이미지

추가로 서로다른 2개 이상의 IP 대역에 대해서, masquerade는 하나의 정책으로 하고,
(outbound)

실제로 찾아가는 것은 라우팅으로 처리되도록 하면 될 것입니다
(returning packet)

--
http://www.dgkim.net/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.