Linux 라우팅 테이블에 따라 내 패킷이 잘못된 인터페이스로 나가는 이유는 무엇입니까?

Linux 라우팅 테이블에 따라 내 패킷이 잘못된 인터페이스로 나가는 이유는 무엇입니까?

Wi-Fi 링크가 있는 Ubuntu Bionic 머신이 있습니다. 그리고 그 위에 와이어가드 터널을 설정했습니다:

# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 5502  bytes 545376 (545.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5502  bytes 545376 (545.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 10.0.0.3  netmask 255.255.0.0  destination 10.0.0.3
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 22980  bytes 2777236 (2.7 MB)
        RX errors 75  dropped 0  overruns 0  frame 75
        TX packets 23467  bytes 12255956 (12.2 MB)
        TX errors 0  dropped 362 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.218  netmask 255.255.0.0  broadcast 192.168.255.255
        ether dc:85:de:f3:3f:65  txqueuelen 1000  (Ethernet)
        RX packets 103227  bytes 54970550 (54.9 MB)
        RX errors 0  dropped 103695  overruns 0  frame 0
        TX packets 41654  bytes 15633577 (15.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

이전에는 Wireguard 터널을 통해 모든 트래픽을 리디렉션했지만 이제는 피어가 이 호스트를 통해 전달할 수 있도록 이를 반대로 했습니다. 그러나 내 패킷은 어떤 이유로든 여전히 터널을 통해 라우팅하려는 것 같습니다.

내 라우팅 테이블은 다음과 같습니다.

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    600    0        0 wlan0
10.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 wg0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.1.1     0.0.0.0         255.255.255.255 UH    600    0        0 wlan0
192.168.100.1   192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0

외부 주소를 ping하거나 컬링하려고 하면 항상 중단됩니다. Traceroute는 터널을 통해 패킷을 라우팅하려고 시도하고 있음을 보여줍니다(피어는 현재 해당 패킷을 삭제하도록 구성되어 있음).

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  10.0.0.1 (10.0.0.1)  68.393 ms  74.587 ms  74.328 ms^C

그러나 traceroute 8.8.8.8 -i wlan0위의 라우팅 테이블이 적용되어야 하는 것처럼 추적 경로가 wlan0을 사용하도록 강제하는 경우 작동합니다.

무슨 일이 일어날 수 있나요? 라우팅 테이블에는 8.8.8.8을 대상으로 하는 패킷이 전달을 위해 wlan0에서 192.168.1.1로 나가야 한다고 나와 있지 않습니까?

(중요한 경우 현재 내 유일한 iptable은 -A FORWARD -i wg0 -j ACCEPTand 입니다 -t nat -A POSTROUTING -o wlan0 -j MASQUERADE.)

답변1

또는를 wg-quick up사용하여 표시되지 않는 다른 테이블에 경로를 추가하는 것 같습니다 . 실행하시면 보실 수 있습니다. 이 경우에는 이라는 테이블에 있었고 기본 테이블보다 우선순위가 높았습니다.route -nip route showip route show table all51820

관련 정보