시작 시 다른 네트워크 장치를 시작하기 전에 한 네트워크 장치가 시작될 때까지 기다리시겠습니까?

시작 시 다른 네트워크 장치를 시작하기 전에 한 네트워크 장치가 시작될 때까지 기다리시겠습니까?

나는 Raspbian을 실행하는 Raspberry Pi를 대학의 무선 네트워크(WPA2 기업 인증 필요)와 개인 무선 라우터(WAN 포트를 통해) 사이의 브리지로 설정하고 있습니다.

여기서 놀라운 도움을 받았습니다. wlan0과 eth0 사이의 트래픽을 가장 쉽고 투명하게 연결하려면 어떻게 해야 합니까?

대부분의 경우 설정이 예상대로 작동합니다. 유일한 문제는 eth0을 자동으로 설정하거나 Raspberry Pi에서 핫플러그를 허용하면(부팅 시 모든 것이 헤드리스로 나타나도록 하고 싶기 때문에) 모든 인터넷 트래픽이 eth0을 통해 라우팅되는 것 같습니다. 이것은 올바르지 않습니다. 내 인터넷 연결은 wlan0에 있고 eth0은 내 개인 라우터와 해당 연결을 공유합니다.

eth0이 자동으로 나타나지 않도록 하여 이 문제를 해결할 수 있었습니다. /etc/network/interfaces에서 eth0의 자동 또는 allowed-hotplug를 그대로 두고 Raspberry Pi가 부팅되도록 허용한 다음 "ifup eth0"을 수동으로 실행하면 예상된 동작을 얻습니다.

부팅 시 eth0을 시작하기 전에 wlan0이 완전히 시작되었는지 확인하는 방법이 있습니까(eth0이 시작하는 데 더 빠른 인터페이스임에도 불구하고)? 아니면 실패할 경우 어떻게 인터넷 트래픽(eth0에서 오는지 확인)이 wlan0을 통해서만 이동하도록 강제할 수 있습니까?

편집: 현재 해결 방법으로 부팅 시 eth0을 시작하는 스크립트를 실행하고 있으며 wlan0이 먼저 시작될 수 있도록 30초의 지연을 두고 있습니다. 이 솔루션은 우아하지도 않고 신뢰할 수도 없지만(wlan0 인증에 30초 이상 걸리면 어떻게 될까요?) 지금은 그 방법을 사용하는 것 같습니다. 그래도 여전히 더 나은 솔루션을 찾고 있습니다!

답변1

흠..그냥 생각이에요. 그러나 Wi-Fi 네트워크에서 DHCP를 사용하고 있다고 가정합니다. 따라서 네트워크가 완전히 가동될 때까지 IP 주소를 가질 수 없습니다.

그럼 잠시 루프를 만들어 보겠습니다.

while [ "$(ifconfig wlan0 | grep inet | grep 192.168.)" = "" ];  do sleep 1; done

192.168. 표준 범위로 교체해야 합니다. 이제 연결되어 있으면 매초 확인하고 Wi-Fi를 통해 연결되면 ifup eth0으로 직접 후속 조치를 취할 수 있습니다.

답변2

가능성:

  • eth0의 정적 설정에서는 기본 게이트웨이를 설정하지 마십시오. (이게 진짜 문제인 것 같아요)
  • 성공적인 구성 후 다른 인터페이스를 시작하려면 dhcp 클라이언트 구성에 후크를 추가하십시오.

관련 정보