Это конфигурация моей домашней сети:
Устройства / ПК / Смартфон ---> DD-WRT Router ---> Интернет-маршрутизатор ---> Интернет / Мир
IP маршрутизатора DD WRT: 192.168.1.1 (gw по умолчанию 192.168.1.254)
Интернет-маршрутизатор IP: 192.168.1.254
IP-адрес устройств с 192.168.1.2 на 192.168.1.253
Я хотел бы настроить маршрутизатор с прошивкой DD WRT с запущенным клиентом PPTP VPN. Виртуальное устройство PPTP VPN называется ppp0.
затем :
Когда я запускаю VPN-клиент на DD WRT, моя таблица маршрутов
0.0.0.0 via 192.168.1.254 dev eth0
default via 192.168.120.10 dev ppp0 scope link
8.8.8.8 via 192.168.1.254 dev eth0
62.101.93.101 via 192.168.1.254 dev eth0
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.132
192.168.1.254 via 192.168.1.254 dev eth0
192.168.120.10 dev ppp0 scope link
Теперь я думаю, что мне нужно заменить
с участием
поэтому ВСЕ ip проходят через стандартный интернет-шлюз (без PPTP vpn) ... затем добавьте правило, например
чтобы разрешить ТОЛЬКО ip 192.168.1.40 для выхода с использованием PPTP.
Но .. это не работает!
Итак, мой последний вопрос:
Большое спасибо!
Сетевой маршрут не принимает во внимание исходный IP-адрес, только IP-адрес назначения. Это похоже на высказывание «если кто-то хочет перейти в сеть 1.2.3.4, используйте 192.168.1.xx в качестве шлюза».
Вы хотите сказать: «Трафик, исходящий с этого IP-адреса, идет в Интернет через этот конкретный шлюз».
Это немного сложнее. Стандартным решением для этого в Linux является использование функций пакета iproute2.
ip route add table 55 default via 192.168.20.10 dev ppp0
iptables -t mangle -I PREROUTING 1 -s 192.168.1.40 -j MARK --set-mark 55
ip rule add fwmark 55 table 55
На этом этапе, если вы запустите tcpdump на интерфейсе ppp0 и отправите некоторый трафик со своего устройства 192.168.1.40, вы должны увидеть некоторый трафик.
Теперь у вас наверняка будут 2 проблемы: