이더넷 인터페이스에서 다른 인터페이스로 트래픽을 라우팅하는 방법은 무엇입니까?

이더넷 인터페이스에서 다른 인터페이스로 트래픽을 라우팅하는 방법은 무엇입니까?
                 ---------------------------------
                 |                               |
                 |                               |
-----> eth2 (WAN)  --------> WG0-->------->----->  eth0 LAN 192.168.220.2
   192.168.14.7  |       |                       |
                 |       |   eth2 to eth1        |  
                 |       ->---->---------->----->  eth1 LAN  192.168.50.2
                  --------------------------------

나는 3개의 이더넷 인터페이스와 1개의 Wireguard 클라이언트 인터페이스 wg0을 갖춘 컴퓨터를 가지고 있습니다.

eth2 (WAN) 192.168.14.7 (internet traffic comes from here)
eth0 (LAN) 192.168.220.2
eth1 (LAN) 192.168.50.2

wg0 (wireguard client) 10.125.146.2

내 장치는 wg0의 wireguard 클라이언트로 작동합니다. Wireguard 서버는 VPS에 있습니다. wg0 to eth0LAN에서 트래픽을 전달하기 위해 iptables를 사용했습니다 . 그래서 내 노트북은 에 연결되어 있습니다 eth0 192.168.220.2 with public IP from wg0.

다른 노트북도 연결하면 eth1 the public IP is from wg0. 나는 그것을 원하지 않습니다. 다른 노트북을 연결하고 싶어요eth1 192.168.50.2 wg0의 IP가 없습니다.. eth1이 eth2 WAN의 공용 IP를 갖기를 원합니다.

이것이 가능합니까?

경로-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.14.1    0.0.0.0         UG    204    0        0 eth2
10.125.146.0    0.0.0.0         255.255.255.0   U     0      0        0 wg0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     203    0        0 eth1
192.168.14.0    0.0.0.0         255.255.255.0   U     204    0        0 eth2
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.220.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

IP 라우팅

default via 192.168.14.1 dev eth2 proto dhcp src 192.168.14.7 metric 204 
10.125.146.0/24 dev wg0 proto kernel scope link src 10.125.146.2 
169.254.0.0/16 dev eth0 scope link src 169.254.50.120 metric 202 
169.254.0.0/16 dev eth1 scope link src 169.254.231.124 metric 203 
192.168.14.0/24 dev eth2 proto dhcp scope link src 192.168.14.7 metric 204 
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.2 
192.168.220.0/24 dev eth0 proto kernel scope link src 192.168.220.2 

IP 규칙 표시

0:  from all lookup local
32764:  from all lookup main suppress_prefixlength 0
32765:  not from all fwmark 0xca6c lookup 51820
32766:  from all lookup main
32767:  from all lookup default

ip -4 -br 주소

lo               UNKNOWN        127.0.0.1/8 
eth0             UP             192.168.220.2/24 169.254.50.120/16 
eth1             UP             192.168.50.2/24 169.254.231.124/16 
eth2             UP             192.168.14.7/24 
wg0              UNKNOWN        10.125.146.2/24 

IP 라우팅 표시 테이블 51820

default dev wg0 scope link 

IP 경로 표시 테이블 마스터

default via 192.168.14.1 dev eth2 proto dhcp src 192.168.14.7 metric 205 
10.125.146.0/24 dev wg0 proto kernel scope link src 10.125.146.2 
169.254.0.0/16 dev eth0 scope link src 169.254.50.120 metric 202 
192.168.14.0/24 dev eth2 proto dhcp scope link src 192.168.14.7 metric 205 
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.2 linkdown 
192.168.220.0/24 dev eth0 proto kernel scope link src 192.168.220.2 

답변1

귀하의 eth2IP 주소는 192.168로 시작합니다.아니요먼저 공개IP입니다. 인터페이스 eth2는 세그먼트 그룹에 고유한 비VPN 공용 IP 주소가 있는 라우터, 방화벽 또는 기타 NAT 지원 장치에 연결되어야 합니다.

귀하의 시스템에는 Wireguard VPN에 의해 ​​생성된 일부 고급 라우팅 규칙이 적용되어 있습니다.

0:  from all lookup local                      <- default rule
32764:  from all lookup main suppress_prefixlength 0
32765:  not from all fwmark 0xca6c lookup 51820
32766:  from all lookup main                   <- default rule
32767:  from all lookup default                <- default rule

가장 왼쪽 열의 숫자는 각 행에 지정된 라우팅 규칙의 우선순위입니다.

  • 우선순위 0 규칙은 표준이며 본질적으로 다음을 의미합니다. "이 시스템의 자체 주소로 전송된 모든 트래픽은 적절한 소스 주소를 사용하여 로컬로 처리됩니다."
  • 우선순위 라인 32764는 다음을 의미합니다: "다른 모든 것에는 표준 기본 라우팅 테이블을 사용하십시오.그러나 기본 게이트웨이 항목은 무시됩니다."이 규칙은 기본적으로 기본 게이트웨이로 이동하지 않는 모든 트래픽을 처리하는 것으로 보입니다.
  • 우선순위 라인 32765는 다음을 의미합니다. "표시되지 않은 모든 트래픽은 fwmark 0xca6c처리됩니다.라우팅 테이블 51820 사용. "이는 기본 게이트웨이를 통해 나가지만 아직 Wireguard에서 처리되지 않은 모든 트래픽을 의미할 가능성이 높습니다.
  • 우선순위 32766은 기본적으로 "지금까지 성공적으로 라우팅되지 않은 모든 항목에 대해 표준 기본 라우팅 테이블을 그대로 사용하십시오"라고 말하는 또 다른 기본 규칙입니다. 이는 Wireguard가 활성화된 경우 VPS Wireguard 서버에 대한 암호화된 Wireguard 트래픽에만 사용됩니다.
  • 우선순위 32767은 기본 라우팅 테이블에서 다루지 않는 모든 항목을 이라는 다른 테이블로 보내는 또 다른 기본 규칙입니다 default. 이 테이블은 일부 사용자 정의 후처리가 필요하지 않는 한 일반적으로 비어 있습니다.

route -n및 명령 모두 라우팅 테이블을 ip route표시합니다 . main다음 명령의 전체 형식을 사용하여 이를 확인할 수 있습니다 ip route.ip route show table main

ip route show table 51820Wireguard가 라우팅에 미치는 영향을 완전히 이해하려면 출력도 살펴봐야 합니다.

연결된 장치가 eth1Wireguard VPN을 우회하고 VPN이 아닌 공용 IP를 사용하도록 하려면 다음 세 가지를 구성해야 합니다.

  • Wireguard 클라이언트가 이를 덮어쓰지 않도록 네트워크 192.168.50.0/24에서 나가는 트래픽에 대한 라우팅 규칙을 구성하는 방법을 찾아야 합니다. 출력을 알지 못하면 ip route show table 51820여기서 정확한 명령을 제안할 수 없다고 생각합니다.
  • 구성해야합니다eth2연결되어 있는 라우터동등 ip route add 192.168.50.0/24 via 192.168.14.7하므로 장치가 다른 네트워크 세그먼트 뒤에 있음을 알 수 있습니다. 그렇지 않으면 연결된 장치에서 시작된 연결에 대한 응답으로 무엇을 해야 할지 알 수 없으며 eth1단순히 거부할 것입니다.
  • 구성해야합니다eth2연결되어 있는 라우터동시에 네트워크 세그먼트 에서 192.168.50.0/24NAT를 수행합니다 . 운이 좋으면 라우터가 모든 개인용 192.168.168.168.3을 NAT로 연결한다는 것을 알 수 있습니다..기본 네트워크 세그먼트. 아니면.

라우터를 구성할 수 없거나 라우터가 이러한 방식으로 구성할 만큼 유연하지 않은 소비자급 장치인 경우 라우팅을 사용하여 이 작업을 수행할 수 없습니다.


또 다른 접근 방식은 보다 안정적이고, 이해하고 문제를 해결하기 쉬우며, 라우터 구성 기능과 크게 독립적일 수 있습니다.

  1. 적절한 속도 등급과 추가 네트워크 케이블을 갖춘 네트워크 스위치를 구입하세요. 다른 요구 사항이 없다면 저렴하고 관리하기 어려운 5포트 스위치가 적합합니다.
  2. eth2장치 인터페이스 에서 WAN 케이블을 분리 하고 스위치의 첫 번째 포트에 연결합니다.
  3. 새 네트워크 케이블을 스위치의 두 번째 포트에 연결하고 케이블의 다른 쪽 끝을 eth2장치에 연결합니다.
  4. eth1장치 에서 다른 노트북을 분리 하고 스위치의 세 번째 포트에 연결합니다.
  5. 완벽한.

라우터에 사용되지 않는 네트워크 포트가 있으면 스위치도 필요하지 않습니다. "eth1 노트북"을 라우터에 직접 연결하기만 하면 됩니다.

분명히 이 솔루션을 변형하면 "eth1 노트북"이 라우터에서 192.168.14.* 주소를 획득하게 되어 192.168.50.0/24 세그먼트가 완전히 제거됩니다. 장치의 인터페이스는 eth1사용되지 않은 상태로 유지됩니다.

또한 VPN 트래픽과 비 VPN 트래픽을 분리해야 하는 엄격한 보안 요구 사항이 있는 경우 이것이 제가 권장하는 유일한 솔루션 유형입니다.


트래픽이 "eth1 laptop"으로 가는 경우~ 해야 하다장치를 통해 업스트림 라우터를 구성할 수 없는 경우 eth2고려해 볼 수 있습니다.브리징eth1eth2라우팅 문제를 해결하기 위해 헛되이 노력하는 대신 네트워크 인터페이스를 사용합니다 .

그러면 장치의 기본 게이트웨이가 단일 인터페이스가 아닌 브리지 장치와 연결되며 이를 사용하여 라우팅 사례 처럼 "eth1 노트북"에 대한 트래픽을 필터링 eth2할 수 있습니다 . 별도의 192.168.50.0/24 세그먼트는 여전히 제거되고 "eth1 노트북"은 라우터의 192.168.14.0/24 세그먼트에서 로컬 IP 주소를 가져옵니다.ebtablesiptables

하지만 Wireguard 클라이언트가 브리지로 구성된 시스템에서 작동할지는 모르겠습니다. 왜 그렇게 하면 안 되는지 모르겠지만 클라이언트가 VPN이 "유출"되는 것을 방지하도록 프로그래밍된 경우 원하는 작업(라우팅 또는 브리징을 통해)을 수행하는 것은 Wireguard에 대해 의도적인 "유출"처럼 보입니다.


또한 이중 NAT와 관련된 솔루션을 간략하게 고려하고 거부했습니다. 저는 개인적으로 이러한 솔루션이 현재는 어느 정도 편리함을 가져다 주지만 미래에는 예측할 수 없는 문제 해결 문제를 가져올 수도 있다고 믿습니다. 이것은 나쁜 거래입니다. 그냥 아니라고 말해".

관련 정보