어떻게 다른 애플 리케이션이 와이파이 대 이더넷을 사용하게하려면?


5

WiFi를 통해 일부 앱을 라우팅하고 이더넷을 통해 다른 앱과 연결하고 싶습니다. OSX에는 다양한 시스템 도구와 유틸리티는 물론 생태계가 풍부한 앱이 있기 때문에 어떻게해야합니까? *


기본적으로 나는 불량 아메바 제품군과 같은 것을 찾고 있지만 오디오 대신 네트워킹을 처리한다.
— Walrus the Cat

답변:


2

WiFi 및 기타 앱을 통해 일부 앱을   이더넷.

불행하게도, 이것은 (네트워킹) 방식이 아닙니다. Safari가 하나의 네트워크 포트를 통해 가고 iTunes가 다른 네트워크 포트를 통과하기를 원한다고 말할 수는 없습니다. 이 문제는 응용 프로그램 자체가 네트워크 연결을 만들지 않는다는 사실에 달려 있습니다. 네트워킹에 대한 호출을합니다 ( 버클리 소켓 ) 연결을 만들고 프로세스를 소켓 자체에 바인드하는 API.

가장 간단한 용어로, 흐름은 다음과 같습니다.

enter image description here

로컬 프로세스 (문제의 응용 프로그램)가 연결을 원할 때 소켓을 만들 것을 요청합니다. 그 요청의 일부는 IP 주소를 포함하고, 연결이 이루어지며, 앱이 바인딩됩니다. 그런 다음 해당 소켓을 통해 데이터를 보내고받습니다.

여기서 기억해야 할 중요한 점은 응용 프로그램이 네트워크 주소를 기반으로 소켓을 요청한다는 것입니다. (하나의 세그먼트가있는 네트워크에 있다고 가정 할 때) 이외에는 두 가지 경로 만 있습니다.

  • 로컬 네트워크
  • 그 외 모든 항목 (예 : 인터넷)

이 단일 네트워크에 연결된 두 개의 인터페이스가있는 경우 경로가 중복되고 우선 순위가있는 인터페이스가 기본 인터페이스가됩니다.

실행중인 응용 프로그램이 무엇이든 관계없이 다음과 같이 말합니다. "나는 가고 싶습니다. foo.bar.com IP 주소와 소켓으로 변환 될 경로가 만들어 질 것입니다. 요점은 앱이이 문제에 대해 아무런 통제력이 없다는 것입니다.

그러나 두 개의 서로 다른 네트워크에 연결되어 있다고 가정 해 보겠습니다.

  • Ethernet (en0) -> 1.2.3.0
  • WiFi (en1) -> 5.6.7.0

IP가 1.2.3.4 인 파일 서버가있는 경우 해당 주소에 바인딩 된 모든 트래픽은 이더넷을 통과합니다. WiFi가 인터넷 액세스 용으로 구성된 경우 1.2.3.0에 대한 모든 호출 과 다른 모든 주소는 en1을 통과합니다. 다시 말하지만 앱에는 문제에 대한 의견이 없으며 소켓은 대상을 기반으로 만들어집니다.

응용 프로그램이 특정 네트워크 인터페이스를 사용할 수 있습니까?

예, 물론 가능하지만 API 호출을하기 때문에 애플리케이션의 소스 레벨에서 수행되는 작업입니다. 특정 인터페이스를 사용하도록 코딩하면 그렇게 할 것입니다 (어떤 의미에서는 실용적이지 않지만 능력이 있습니다).

결론 : 사용하는 응용 프로그램에 따라 트래픽을 다시 라우팅하는 외부 응용 프로그램의 경우 응용 프로그램과 OS의 프로토콜 스택 사이에 자체를 삽입해야하며 그렇게되지 않을 것입니다.


0

그것은 우리가 말하는 애플 리케이션과 당신이 성취하고자하는 것에 달려 있습니다. 어떤 경우에는 앱의 소스 포트 또는 대상 포트를 기반으로 pf 및 정책 기반 라우팅 (소스 라우팅)을 사용하여 얻을 수 있습니다. 그러나 이는 일반적으로 네트워크가 "단순한"앱에서만 가능합니다 (예를 들어 단일 serveR에만 연결).

제네릭 솔루션은 특별한 전문 지식없이 다운로드하여 사용할 수있는 깔끔하게 패키지화 된 형태로 아직 존재하지 않습니다.

이러한 솔루션을 구현하려면 응용 프로그램을 시작할 때 DYLD_INSERT_LIBRARIES 환경 변수를 사용하여 자신의 공유 라이브러리를 프로세스에 삽입해야합니다. 그 공유 라이브러리는 bind () 호출을 오버라이드하여 앱에 따라 프로세스가 WiFi 또는 이더넷 인터페이스의 IP에 바인딩되도록합니다.


0

내가 생각할 수있는 가장 가까운 것은 패킷 우선 순위라고 불리우며 (어플 리케이션은 서로 간섭하는 동일한 이더넷 연결에 있지 않을 것입니다) 마더 보드 "Fatal1ty Z370 Professional Gaming i7"에서 사용할 수 있지만 $ 200 보드이며 하드웨어 솔루션입니다, 나는이 소프트웨어가 가능하다고 생각하지 않지만 잘못 될 수 있습니다. 이것이 도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.