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


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.