
내 트래픽이 어떤 인터페이스를 통해 라우팅되는지 파악하고 해당 인터페이스와 연결된 로컬 IP 주소를 얻으려고 합니다. 이로 인해 VPN 액세스가 비활성화된 경우(모두 wlan0을 통과 -> 해당 인터페이스에서 IP 읽기) 또는 VPN이 활성화된 경우(모두 tun0을 통과하고 해당 인터페이스의 IP 가져오기)가 달라집니다.
나는 Route 명령을 알고 있지만 필요한 정보를 추출하기 위해 이를 어떻게 구문 분석할지 실제로 알 수 없습니다.
VPN이 없는 내 IP 경로 목록은 다음과 같습니다.
default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600
그리고 VPN 연결 후
default via 192.168.31.1 dev tun0 proto static metric 50
default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600
10.0.0.0/8 via 192.168.31.1 dev tun0 proto static metric 50
13.224.73.0/24 via 192.168.31.1 dev tun0 proto static metric 50
18.135.151.3 via 192.168.31.1 dev tun0 proto static metric 50
40.114.41.40 via 192.168.31.1 dev tun0 proto static metric 50
52.95.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50
104.18.4.20 via 192.168.31.1 dev tun0 proto static metric 50
104.18.5.20 via 192.168.31.1 dev tun0 proto static metric 50
104.18.25.245 via 192.168.31.1 dev tun0 proto static metric 50
104.27.148.109 via 192.168.31.1 dev tun0 proto static metric 50
104.27.149.109 via 192.168.31.1 dev tun0 proto static metric 50
143.204.190.0/24 via 192.168.31.1 dev tun0 proto static metric 50
149.11.92.90 via 192.168.26.1 dev wlp0s20f3 proto static metric 600
150.2.20.0/24 via 192.168.31.1 dev tun0 proto static metric 50
150.2.22.0/24 via 192.168.31.1 dev tun0 proto static metric 50
150.2.34.0/24 via 192.168.31.1 dev tun0 proto static metric 50
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.16.0.0/12 via 192.168.31.1 dev tun0 proto static metric 50
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600
192.168.26.1 dev wlp0s20f3 proto static scope link metric 600
192.168.31.0/24 dev tun0 proto kernel scope link src 192.168.31.56 metric 50
최상위 기본 경로가 사용되는 경로라고 가정하는 것이 안전합니까?
답변1
이 데이터를 찾는 데는 두 부분이 있습니다. 첫째, 특정 인터페이스를 통해 직접 나가는 서브넷을 확인하는 것입니다. 둘째, 인터넷으로 향하는 트래픽의 '기본 경로'를 결정합니다.
(귀하의 경로 출력을 분석하려면 귀하의 경로 섹션으로 건너뛰십시오)
두 경우 모두 출력이 필요 ip route list
하지만 내 경우에는 내 노트북을 살펴보겠습니다(홈 네트워크에 있기 때문에 현재 VPN이 연결되어 있지 않음).
default via 172.18.0.1 dev wlp59s0 proto dhcp metric 600
10.10.0.0/16 dev static-local proto kernel scope link src 10.10.0.1
10.73.252.0/24 dev InternalDHCP proto kernel scope link src 10.73.252.1
10.74.0.0/24 dev docker0 proto kernel scope link src 10.74.0.1 linkdown
169.254.0.0/16 dev docker0 scope link metric 1000 linkdown
172.18.0.0/16 dev wlp59s0 proto kernel scope link src 172.18.2.0 metric 600
보시다시피 내 네트워크에는 여러 가지 다른 항목이 있습니다. 두 개의 도커 서브넷, 두 개의 다른 네트워크( static-local
및 InternalDHCP
내 LXD 컨테이너용), 무선 인터페이스 wlp59s0
및 상단에 '기본 경로'가 있습니다 .
이것을 구성 요소로 분해해 보겠습니다. 기본이 아닌 경로를 살펴보는 것부터 시작하세요. 이는 다음과 같이 읽혀질 것입니다:
- 10.10.0.0/16(10.10.0.0-10.10.255.255)에 대한 모든 트래픽은
static-local
소스 IP 10.10.0.1을 사용하는 네트워크 링크를 통해 직접 이동합니다. - 10.73.252.0/24(10.73.252.0-10.73.252.255)에 대한 모든 트래픽은
InternalDHCP
소스가 10.73.252.1인 네트워크 링크를 통해 직접 이동합니다. - 10.74.0.0/24(10.74.0.0-10.74.0.255)에 대한 모든 트래픽은
docker0
소스가 10.74.0.1인 네트워크 링크를 통해 직접 이동합니다. 동일한 네트워크 링크는 에 대한 트래픽도 허용169.254.0.0/16
하지만 이 링크는 오프라인 상태이며 작동하지 않습니다. - 172.18.0.0/16(172.18.0.0-172.18.255.255)에 대한 모든 트래픽은
wlp59s0
소스 IP 172.18.2.0을 사용하는 네트워크 링크를 통해 직접 이동합니다.
이제 기본 경로는 다음과 같습니다.
wlp59s0
앞서 언급한 다른 경로 중 하나와 일치하지 않는 다른 모든 트래픽은 장치 (내 Wi-Fi 카드)를 통해 게이트웨이/라우터 주소 172.18.0.1을 통해 라우팅됩니다 .
이것이 ip route list
위와 같은 출력을 분석하는 방법입니다. ip route list
원하는 경우 출력을 분석하는 데 도움을 드릴 수 있지만 출력을 읽는 방법은 다음과 같습니다.
귀하의 경로
이것은 VPN이 연결되어 있을 때와 연결되어 있지 않을 때의 경로를 분석한 것입니다.
먼저, VPN을 사용하지 않는 경우:
- 192.168.26.0/23(192.168.26.0-192.168.27.255)에 대한 트래픽은 wlp0s20f3(wifi) 인터페이스 링크를 통해 직접 나갑니다. 여기에는 192.168.26.1(기본 경로)로 직접 이동하는 것이 포함됩니다.
- 149.11.92.90으로의 트래픽은 Wi-Fi 인터페이스 링크를 통해 직접 182.168.26.1을 통해 나갑니다.
- 172.17.0.0/16(172.17.0.0-172.17.255.255)에 대한 트래픽은 소스 IP 주소 172.17.0.1을 사용하여 docker0 네트워크 링크를 통해 직접 이동합니다.
- 네트워크 링크에 문제가 발생하여 169.254.0.0/16(169.254.0.0-169.254.255.255)이 링크상의 Wi-Fi 장치를 통해 나갑니다.
- VPN을 사용하지 않을 때 다른 서브넷 지정의 경우 트래픽은 게이트웨이 IP 192.168.26.1(라우터)을 통해 Wi-Fi 인터페이스를 통해 흘러나옵니다.
이제 VPN을 사용하면 테이블에 의미가 없는 많은 경로가 추가되지만 이를 규칙을 평가하는 하나의 쉬운 방법으로 압축할 수 있습니다. VPN에 연결되지 않은 이전 규칙은 계속 적용됩니다.
VPN에 연결되면 이전 온링크 규칙(VPN을 사용하지 않을 때의 규칙 포함)으로 처리되지 않은 모든 트래픽은 터널을 통해 192.168.31.1을 통해 tun0 장치 및 VPN 링크를 통해 라우팅됩니다. . 따라서 인터넷으로의 모든 트래픽(위에 지정된 온링크 주소 제외)은 먼저 VPN 터널을 통과합니다. VPN 터널 링크가 실패하고 트래픽이 해당 터널을 통과할 수 없는 경우 표준 Wi-Fi 연결을 사용하게 됩니다(단, VPN 터널이 실패하고 다시 연결되지 않는 경우에만 발생하므로 인터페이스는
tun0
사라집니다).시스템과 VPN 엔드포인트 간의 트래픽은 기본 Wi-Fi 링크를 통과하여 원격 VPN 서버에 도달합니다. (이것은 기본 Wi-Fi 링크를 사용하는 VPN 서버에 연결하는 '기본' 동작입니다.)