1 (edytowany przez grabtom 2019-11-03 17:20:04)

Temat: Proxy do określonego interfejsu WAN

Na routerze mam skonfigurowane 2 interfejsy WAN:
WAN -> kabel z jednego modemu LTE 192.168.8.100 (adres modemu 192.168.8.1)
WAN_MODEM -> drugi modem LTE wpięty przez USB - 192.168.0.176 (adres modemu 192.168.0.1)

Interfejs LAN:
- LAN - 192.168.202.1

Obecnie mam to tak skonfigurowane, że hosty wpięte do sieci standardowo korzystają z WAN, ale jeden host łączy się z niektórymi domenami przez WAN_MODEM. Używam do tego mwan3 + ipset i odpowiednich reguł w mwan3.
Czasem jednak potrzebuję skorzystać z WAN_MODEM z innych komputerów w sieci. Robię to w ten sposób, że w mwan3 dodałem regułę, że wybrany adres z sieci lokalnej korzysta tylko z WAN_MODEM. Gdy chcę z tego skorzystać, zmieniam adres IP na komputerze, ale jest to nieco upierdliwe.
Wpadłem na pomysł aby postawić na routerze proxy, które kierowałoby do interfejsu WAN_MODEM. Wtedy mógłbym sobie aktywować takie proxy w dowolnym momencie na dowolnym hoście.

Probowałem to skonfugurować przez sockd:

#/etc/sockd.conf
logoutput: stdout

internal: 192.168.202.1 port = 1080
external: 192.168.0.176

clientmethod: none
method: none
user.privileged: root
user.notprivileged: nobody

client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}


client block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}

pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}

block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}

Proxy się uruchamia, łączę się z nim na porcie 1080, ale gdy sprawdzam IP (np. tutaj https://ifconfig.co) to okazuje się, że internet idzie przez interfejs WAN.

Wycinek z loga sockd:

Nov  3 17:18:21 (1572797901.457286) sockd[24907]: info: pass(1): tcp/accept [: 192.168.202.220.51493 192.168.202.1.1080
Nov  3 17:18:21 (1572797901.517281) sockd[24908]: info: pass(1): tcp/connect [: 192.168.202.220.51493 192.168.202.1.1080 -> 192.168.0.176.51493 ifconfig.co.443

Może trzeba ustawić jakiś dodatkowy routing, albo reguły iptables?
Nadmienię, że używam także dwóch sieci VPN, ale to chyba nie ma znaczenia.

W chwili obecnej routking wygląda tak:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.8.1     0.0.0.0         UG    0      0        0 eth0.2
default         192.168.0.1     0.0.0.0         UG    20     0        0 usb0
10.8.8.0        *               255.255.255.0   U     0      0        0 tun1
10.10.10.0      10.10.10.13     255.255.255.0   UG    0      0        0 tun0
10.10.10.13     *               255.255.255.255 UH    0      0        0 tun0
192.168.0.0     *               255.255.255.0   U     20     0        0 usb0
192.168.1.0     10.10.10.13     255.255.255.0   UG    0      0        0 tun0
192.168.8.0     *               255.255.255.0   U     0      0        0 eth0.2
192.168.202.0   *               255.255.255.0   U     0      0        0 br-lan

Jakieś pomysły?

2 (edytowany przez grabtom 2019-11-03 23:23:33)

Odp: Proxy do określonego interfejsu WAN

Metodą prób i błędów udało mi się osiągnąć zamierzony efekt.
Okazało się, że wystarczyło zmienić metrykę dla WAN_MODEM na 1 (wcześniej miałem 20) i proxy hula.
Nie wiem czy powyższa konfiguracja jest zgodna "ze sztuką" (np. to że obydwa WANy mają tę samą metrykę), ale wygląda, że działa jak należy.