Почему мои пакеты отправляются не в том интерфейсе в соответствии с таблицей маршрутизации Linux?

У меня есть машина Ubuntu Bionic с подключением к Wi-Fi; и я установил на нем туннель для защиты от проводов:

# 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

Если я пытаюсь пропинговать или скрутить внешний адрес, он всегда зависает. 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 чтобы заставить traceroute использовать wlan0 в соответствии с приведенной выше таблицей маршрутизации, тогда это сработает.

Что могло происходить? Разве в таблице маршрутизации не сказано, что пакеты, нацеленные на 8.8.8.8, должны выходить с wlan0 на 192.168.1.1 для пересылки?

(Если это важно, мои единственные iptables сейчас -A FORWARD -i wg0 -j ACCEPT и -t nat -A POSTROUTING -o wlan0 -j MASQUERADE)

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *