10

После многих часов поиска и устранения неисправностей, поиска потенциальных решений на этом и других сайтах, и я смирился с просьбой дать совет моим игрокам. Я работаю над маршрутизацией всего сетевого трафика на экземпляре Ubuntu через Cisco VPN в университете. Используя встроенный сетевой менеджер или vpnc, я могу успешно установить соединение с VPN и успешно перенаправить трафик на любой университетский IP через VPN. Однако, помимо этих конкретных диапазонов IP-адресов, я не могу придумать какой-либо маршрут, который успешно отобразит весь сетевой трафик через VPN.

До сих пор я пытался:

route add -net 0.0.0.0 gw homeportal dev tun0
route add -net 0.0.0.0 tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev eth0
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

И много других глупых, неэффективных вещей, которые я не могу вспомнить достаточно хорошо, чтобы транскрибировать точно.

Кроме того, я пробовал маршрутизировать меньшие диапазоны IP-адресов и конкретные IP-адреса, но безрезультатно. Я не совсем уверен, что происходит не так, как следствия, которые я смог наблюдать, это сбои разрешения имен и сбои маршрутизации трафика через VPN. Что я здесь не так делаю?

Редактировать-

Вот выходные данные ip route show после запуска VPN-соединения с VPNC:

default via 192.168.1.254 dev eth0  proto static 
10.0.0.0/8 dev tun0  scope link 
91.230.41.0/24 dev tun0  scope link 
128.122.0.0/16 dev tun0  scope link 
128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32 
128.122.253.46 dev tun0  scope link 
128.122.253.79 dev tun0  scope link 
172.16.0.0/12 dev tun0  scope link 
192.168.0.0/16 dev tun0  scope link 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1 
193.175.54.0/24 dev tun0  scope link 
193.205.158.0/25 dev tun0  scope link 
193.206.104.0/24 dev tun0  scope link 
195.113.94.0/24 dev tun0  scope link 
203.126.200.0/24 dev tun0  scope link 
203.174.165.128/25 dev tun0  scope link 
212.219.93.0/24 dev tun0  scope link 
216.165.0.0/17 dev tun0  scope link

Дополнительная информация-

Я успешно перенаправил произвольный трафик через этот VPN в MS Windows через клиент Cisco AnyConnect с конфигурацией по умолчанию. Вот как выглядит таблица маршрутизации, когда работает клиент AnyConnect (это другой компьютер за тем же маршрутизатором на 192.168.1.254).

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    192.168.1.254     192.168.1.13     30
         10.0.0.0        255.0.0.0    192.168.128.1  192.168.128.197      2
      91.230.41.0    255.255.255.0    192.168.128.1  192.168.128.197      2
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      128.122.0.0      255.255.0.0    192.168.128.1  192.168.128.197      2
   128.122.252.68  255.255.255.255    192.168.1.254     192.168.1.13     31
       172.16.0.0      255.240.0.0    192.168.128.1  192.168.128.197      2
      192.168.0.0      255.255.0.0    192.168.128.1  192.168.128.197      2
      192.168.1.0    255.255.255.0         On-link      192.168.1.13    286
     192.168.1.13  255.255.255.255         On-link      192.168.1.13    286
    192.168.1.254  255.255.255.255         On-link      192.168.1.13     31
    192.168.1.255  255.255.255.255         On-link      192.168.1.13    286
     192.168.31.0    255.255.255.0         On-link      192.168.31.1    276
     192.168.31.1  255.255.255.255         On-link      192.168.31.1    276
   192.168.31.255  255.255.255.255         On-link      192.168.31.1    276
    192.168.128.0    255.255.255.0         On-link   192.168.128.197    257
  192.168.128.197  255.255.255.255         On-link   192.168.128.197    257
  192.168.128.255  255.255.255.255         On-link   192.168.128.197    257
    192.168.203.0    255.255.255.0         On-link     192.168.203.1    276
    192.168.203.1  255.255.255.255         On-link     192.168.203.1    276
  192.168.203.255  255.255.255.255         On-link     192.168.203.1    276
     193.175.54.0    255.255.255.0    192.168.128.1  192.168.128.197      2
    193.205.158.0  255.255.255.128    192.168.128.1  192.168.128.197      2
    193.206.104.0    255.255.255.0    192.168.128.1  192.168.128.197      2
     195.113.94.0    255.255.255.0    192.168.128.1  192.168.128.197      2
    203.126.200.0    255.255.255.0    192.168.128.1  192.168.128.197      2
  203.174.165.128  255.255.255.128    192.168.128.1  192.168.128.197      2
     212.219.93.0    255.255.255.0    192.168.128.1  192.168.128.197      2
      216.165.0.0    255.255.128.0    192.168.128.1  192.168.128.197      2
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.1.13    286
        224.0.0.0        240.0.0.0         On-link     192.168.203.1    276
        224.0.0.0        240.0.0.0         On-link      192.168.31.1    276
        224.0.0.0        240.0.0.0         On-link   192.168.128.197  10000
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.1.13    286
  255.255.255.255  255.255.255.255         On-link     192.168.203.1    276
  255.255.255.255  255.255.255.255         On-link      192.168.31.1    276
  255.255.255.255  255.255.255.255         On-link   192.168.128.197  10000
===========================================================================

2 ответа2

2

Во всех ваших командах route отсутствуют сетевые маски, поэтому они соответствуют только конкретному адресу 0.0.0.0 , а не всему Интернету. Поэтому замените 0.0.0.0 на 0.0.0.0/0 в первой команде, которую вы попробовали:

ip route add -net 0.0.0.0/0 gw homeportal dev tun0

Может быть одно предупреждение, которое я не уверен, решит ли ваш VPN-клиент сам по себе: конечную точку туннеля нужно исключить из маршрутизации через VPN, она должна быть направлена через ваш интерфейс eth0 . Поэтому, если добавление этого маршрута по умолчанию нарушает вашу VPN, добавьте конкретный маршрут для вашей конечной точки VPN:

ip route add <ENDPOINT>/32 dev eth0

1

Ваша локальная сеть - 192.168.1.0/24, как показано этой строкой в вашей таблице маршрутизации:

 192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1

Ваша сеть VPN 10.0.0.0/8, как показано этой строкой:

 10.0.0.0/8 dev tun0  scope link 

В настоящее время ваш маршрутизатор по умолчанию:

 default via 192.168.1.254 dev eth0  proto static 

это, конечно, то, что вы не хотите, потому что оно принадлежит вашей локальной сети: таким образом, все ваши вещи маршрутизируются через ваш локальный шлюз, как будто VPN не существует.

 You do have however, the all-important statement

 128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32  

какой маршрут к вашему VPN-провайдеру.

РЕДАКТИРОВАТЬ:

Я не понял, что таблица маршрутизации - это просто таблица, полученная из вашего VPN, без вашего вмешательства. Это может указывать (косвенно), что ваш поставщик услуг желает пересылать только трафик, явно разрешенный в вашей таблице, через интерфейс tun0, и, возможно, предпринял дальнейшие шаги для блокировки всего другого трафика, и в этом случае ваши усилия будут тщетными.

Однако, если ваш провайдер готов перенаправить весь ваш трафик, вам нужно сделать следующее.

Во-первых, вам нужно выяснить, есть ли шлюз, который может принять ваше соединение, с другой стороны, потому что нам нужен его IP-адрес. Я дам вам четыре способа сделать это.

1) Когда компьютер подключен к VPN, попробуйте следующую команду:

   sudo dhclient -v tun0

Если все идет хорошо, вы должны увидеть ответ, содержащий следующую строку:

 DHCPOFFER of a.b.c.d from x.y.w.z

xywz - это IP-адрес локального шлюза. Возможно, вам придется отключить VPN после этого теста и, возможно, даже перезагрузить компьютер, потому что мы только что испортили таблицу маршрутизации.

2) В качестве альтернативы вы можете попробовать перейти на один из разрешенных сайтов (те, которые отображаются в вашей таблице маршрутизации как проходящие через интерфейс tun0 ), а затем выполнить команду:

  ip neigh show

Вы должны получить список единиц, с которыми связались по протоколу ARP, с MAC и IP-адресом; скорее всего, вы получите либо ноль, либо один ответ. Если вы получите один ответ, то это ваш роутер.

3) Если вы не получили такой ответ, вы можете попробовать с

  sudo nmap -sn 10.0.0.0/8

(что будет очень медленно). Ваш шлюз будет одним из перечисленных, скорее всего, с адресом, оканчивающимся на .1 или .254, если таковой существует.

4) Используйте команду tcpdump:

  sudo tcpdump -n -i tun0

и увидеть IP-адреса, выбрасываемые командой.

Если вы также не получили правильного ответа на этот тест, это означает, что кто-то действительно затянул винты в своей сети.

Но давайте будем оптимистичны и предположим, что теперь у вас есть кандидатский IP-адрес xwyz для удаленного маршрутизатора. Вам нужно будет удалить шлюз по умолчанию (как sudo!):

  ip route del default via 192.168.1.254

добавить новый:

  ip route add default via x.w.y.z 

и попробуйте ориентироваться.

Позвольте мне повторить: поскольку ваш провайдер разрешил трафик только на несколько выбранных IP-адресов через свою VPN, возможно, он предпринял дополнительные меры (= брандмауэр), чтобы предотвратить использование интеллектуальным пользователем своего общего трафика через свою VPN. В этом случае вы ничего не можете сделать. Но если он этого не сделал, вышеуказанные шаги должны помочь вам найти решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .