특정 트래픽에 대한 WIFI 및 LAN 라우팅


12

맥북 프로에는 두 개의 네트워크 장비가 있습니다.

  1. WIFI (en1) : 일반 트래픽에 사용됩니다. DHCP를 통해 192.168.19. *의 IP에 연결
  2. LAN (en0) : 특정 트래픽에 사용됩니다. 고정 IP로 192.168.2.10의 IP에 연결합니다. 라우터에 연결하지 않고 직접 라우팅 연결을 위한 스위치 만 연결하십시오.

LAN에서 액세스해야하는 4 개의 IP 주소가 있습니다.

  1. 192.168.2.1
  2. 192.168.2.21
  3. 192.168.2.20
  4. 192.168.2.30

나머지 트래픽은 WIFI로 이동해야합니다. 특정 IP 주소에 대한 라우팅 테이블을 설정하려고 시도했지만 네트워크를 엉망으로 만들었습니다. 나는 네트워킹의 세계로 너무 자주 나가지 않지만 이것은 내가 시도한 가장 최근의 명령이었습니다.

sudo route add -host 192.168.2.30 -interface en0

이 명령으로 ping을 사용할 수 없었습니다. 그것은 핑이 메모리를 할당 할 수 없다고 나에게 말했다. 또한 Wi-Fi 액세스가 중단되었습니다. 로그 아웃했다가 다시 문제를 해결했습니다. 나는이 솔루션을 영구적으로 만드는 것을 좋아하지 않으므로 임시 라우팅으로 괜찮습니다.

편집하다:

내가 현재 노력하고 있다면 :

sudo route flush
sudo route add default 192.168.19.1

약 1 분 동안 모든 것이 작동합니다. 그러나 그 시간이 지나면 LAN의 (en0) 라우팅을 유지하면서 WiFi 로의 라우팅을 "잊습니다". LAN (en0) 케이블을 분리했다가 다시 연결하면 1 분 동안 프로세스가 작동합니다.

편집 2 :

이들은 d34dh0r53에 의해 요청으로 입력 된 명령 중 일부입니다.

$ netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.2.1        UGSc            4        0     en0
default            192.168.19.1       UGScI           0        0     en1
127                127.0.0.1          UCS             0        1     lo0
127.0.0.1          127.0.0.1          UH              5  1429023     lo0
169.254            link#4             UCS             0        0     en0
192.168.2          link#4             UCS             4        0     en0
192.168.2.1        0:27:22:2e:5f:1a   UHLWIi          2        0     en0   1199
192.168.2.10       127.0.0.1          UHS             0        0     lo0
192.168.2.30       90:a2:da:0:f5:63   UHLWIi          1     1433     en0   1191
192.168.2.255      ff:ff:ff:ff:ff:ff  UHLWbI          0        7     en0
192.168.19         link#5             UCS             2        0     en1
192.168.19.1       3e:d0:f8:aa:28:56  UHLWIi          0        2     en1   1192
192.168.19.3       127.0.0.1          UHS             1        0     lo0
192.168.19.255     ff:ff:ff:ff:ff:ff  UHLWbI          0        5     en1

Internet6:
Destination                             Gateway                         Flags         Netif Expire
::1                                     link#1                          UHL             lo0
fe80::%lo0/64                           fe80::1%lo0                     UcI             lo0
fe80::1%lo0                             link#1                          UHLI            lo0
fe80::%en0/64                           link#4                          UCI             en0
fe80::226:4aff:fe00:b68a%en0            0:26:4a:0:b6:8a                 UHLI            lo0
fe80::%en1/64                           link#5                          UCI             en1
fe80::226:bbff:fe03:cbd%en1             0:26:bb:3:c:bd                  UHLI            lo0
ff01::%lo0/32                           fe80::1%lo0                     UmCI            lo0
ff01::%en0/32                           link#4                          UmCI            en0
ff01::%en1/32                           link#5                          UmCI            en1
ff02::%lo0/32                           fe80::1%lo0                     UmCI            lo0
ff02::%en0/32                           link#4                          UmCI            en0
ff02::%en1/32                           link#5                          UmCI            en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
 1  192.168.2.1  2.499 ms  3.392 ms  3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com

OS는 하드웨어가 아닌 라우팅을 처리합니다.
Ignacio Vazquez-Abrams

LAN의 모든 것이 192.168.2.X입니까? 그렇다면 솔루션을 훨씬 간단하게 만듭니다.
LawrenceC

@ultrasawblade 예, 해당 네트워크의 모든 것은 192.168.2입니다.
jakebird451

답변:


11

통신하려는 모든 192.168.2.x 주소가 192.168.2.x 주소와의 인터페이스 아래에 있으면 해당 구성에 대해 수동으로 라우팅 규칙을 작성할 필요가 없습니다.

  1. 시스템 환경 설정-> 네트워크로 이동하십시오
  2. 이더넷 장치를 선택하고 "IPv4 구성"이 "수동"으로 설정되어 있고 서브넷 마스크가 255.255.255.0으로 설정되어 있고 라우터 상자가 비어 있는지 확인하십시오.

이 작업이 완료되면 netstat -rn두 서브넷 모두에 대한 경로를 표시해야하지만 192.168.2.1을 통한 기본 경로 대신 "link # 4"경로 만 표시해야합니다.

기본 경로를 원하지 않으면 라우터 상자를 비워 두십시오. 라우터 상자의 값은이 네트워크 인터페이스를 통한 기본 경로를 설정하는 데만 사용되며 다른 용도로는 사용되지 않습니다.


감사합니다! 그거였다! 라우터 필드를 제외한 모든 것이 올바르게 설정되었습니다. 192.168.2.1랜 필드의 "라우터"와 일치하도록 라우터 필드에 IP 주소 를 입력했습니다. 필요하다고 생각했지만 이제는 일반 트래픽의 기본 경로를 인계 받았습니다.
jakebird451

감사합니다! 같은 문제가 있었고 완벽하게 나를 위해 일했습니다.
BaronVonKaneHoffen

4

문제는 en0인터페이스가 802.11 인터페이스에 의해 설정된 기본 경로보다 우선하는 기본 경로를 추가하고 있다는 것 입니다. 왜 그런지 잘 모르겠지만 BSD가 무선 인터페이스보다 유선 인터페이스를 선호하거나 동적으로 구성된 인터페이스보다 정적으로 구성된 인터페이스를 선호한다는 사실입니다. en0기본 경로가 Refs열 에서 사용되고 있음을 알 수 있습니다 . Refs는 경로의 현재 활성 사용 횟수를 나타내는 측정 항목이므로 모든 트래픽을 받고 있음을 알 수 있습니다.

해결 방법은 로컬 네트워크의 호스트 이외의 호스트로 향하는 트래픽이 DHCP on에 의해 설정된 기본 게이트웨이를 통과하도록 라우팅 테이블에서 해당 경로를 영구적으로 제거하는 것입니다 en1. 가장 먼저 확인해야 할 것은 구성 패널 en0에서 router필드 에 아무 것도 입력하지 않았는지 확인하는 것 입니다. 해당 필드의 정보는 기본 게이트웨이로 추가됩니다. 그래도 작동하지 않으면 수동으로 경로를 삭제해야합니다. route flush작동하지 않는 이유 는 OS X에 인터페이스 구성 파일에서 라우팅 정보를 다시로드하도록 지시하기 때문에 짧은 시간 후에 변경 사항을 되돌릴 수 있기 때문입니다. 다음 명령은 기본 경로를 제거해야합니다.en0 네트워킹이 다시 시작되거나 시스템이 IPL 될 때까지 인터페이스 :

sudo route delete -net 0.0.0.0 192.168.2.1

이 변경 사항을 영구적으로 유지하려면 /Library/StartupItemsa) 나에게 너무 많은 작업으로 보이는 서비스를 만들 거나 b) /etc/rc.local다음과 같은 명령으로 해당 줄을 추가하십시오 .

echo 'route delete -net 0.0.0.0 192.168.2.1' >> /etc/rc.local

인터페이스가 완전히 설정되고 라우팅 테이블이 설정되기 전에 명령을 실행하지 않으려면 sleep <number_of_seconds>해당 라인 앞에 명령 을 추가해야 할 수도 있습니다 /etc/rc.local.

이것이 도움이되고 행운이 있기를 바랍니다!


답변 해 주셔서 감사합니다. 기본 경로 192.168.2.1는 문제 였지만 @rakslice는 en0 연결에 대한 라우팅 정보를 입력하는 중에 실수를 한 것으로 나타났습니다. 192.168.2.1라우터 필드에 IP 주소 를 넣어야 한다고 생각합니다. 기본 라우터 ip를 제거한 후 잘못된 기본 경로를 제거했습니다 192.168.2.1. 다시 한 번 도와 주셔서 감사합니다.
jakebird451

1
종류의 현상금을 얻지 못했습니다. "먼저 확인해야 할 것은 en0의 구성 패널에서 라우터 필드에 아무 것도 입력하지 않았는지 확인하십시오. 해당 필드의 정보는 기본 게이트웨이로 추가됩니다. " 그러나 결국 모두 훌륭합니다. 작동하게되어 기쁩니다.
d34dh0r53

0

Wifi IP를 기본 게이트웨이로 설정하고 LAN 또는 192.168.2.0/24에 연결된 기본 게이트웨이 (또는 0.0.0.0으로 라우팅)를 제거하려고합니다.

en1을 Wi-Fi와 작동하는 고정 IP로 설정할 수 있다면 물론 더 쉽습니다.

192.168.2.0/24 네트워크에 대한 경로로 192.168.2.10을 추가해야 할 수도 있습니다. 그러나 인터페이스에 할당 한 것을 가상으로 192.168.2.0/24가 직접 연결되어 있음을 알 수 있으므로 자동이어야합니다.

따라서 192.168.2.X로가는 트래픽은 192.168.2.10에서 나가고 다른 곳으로가는 트래픽은 en1의 IP 주소에서 나갑니다.


네트워크 시스템 환경 설정을 통해 WiFi 주문을 맨 위로 설정했습니다. 그러나 어떻게 해야할지 모르겠습니다 remove any default gateway connected to the LAN.
jakebird451

어쩌면 sudo route del default 192.168.2.10?, freebsd / mac osx에서 어떻게 해야하는지 확실하지 않지만 비슷해야합니다.
LawrenceC

mac의 명령은 sudo route delete default 192.168.2.10입니다. 핑은 여전히 ​​활성화되어 있습니다. 그러나 라우터 IP를 제외한 Wi-Fi 트래픽에 대한 액세스는 종료됩니다.
jakebird451

LAN을 통해 연결하지 않고 Wi-Fi 만 연결하면 Google과 같은 외부 사이트에 연결할 수 있습니까?
LawrenceC

예, WiFi는 google.com과 같은 일반적인 트래픽을위한 것입니다 (주로 Google 맵 API의 경우)
jakebird451
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.