1

В настоящее время я пытаюсь направить весь входящий и исходящий сетевой трафик в / из приложений, прослушивающих туннель OpenVPN tun1 через указанный туннель.

Вот мои устройства: tun0 - это сервер OpenVPN, работающий на машине, который обеспечивает доступ к локальной сети машины для удаленных машин. tun1 - это клиент OpenVPN для удаленного сервера.

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:d7:98:1c  
          inet addr:192.168.178.9  Bcast:192.168.178.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fed7:981c/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:103987444 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161412265 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:583178850 (556.1 MiB)  TX bytes:1006632339 (959.9 MiB)
          Interrupt:43 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:505197 errors:0 dropped:0 overruns:0 frame:0
          TX packets:505197 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:91836367 (87.5 MiB)  TX bytes:91836367 (87.5 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.9.8.1  P-t-P:10.9.8.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:272 (272.0 B)  TX bytes:960 (960.0 B)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:588 (588.0 B)  TX bytes:588 (588.0 B)

Вот текущие активные маршруты:

# ip route show table main
default via 192.168.178.1 dev eth0 
10.8.0.1 via 10.8.0.9 dev tun1 
10.8.0.9 dev tun1  proto kernel  scope link  src 10.8.0.10 
10.9.8.0/24 via 10.9.8.2 dev tun0 
10.9.8.2 dev tun0  proto kernel  scope link  src 10.9.8.1 
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.9 

После некоторых исследований я узнал, что мне пришлось использовать "политику маршрутизации" для направления всего трафика на tun1 через другой шлюз (10.8.0.1). Поэтому я создал новую таблицу "tun1" и попытался ее настроить.

# echo "1 tun1tbl" >> /etc/iproute2/rt_tables
# ip route add 10.8.0.0/24 dev tun1 src 10.8.0.10 table tun1tbl
# ip route add default via 10.8.0.1 dev tun1 table tun1tbl
RTNETLINK answers: No such process

Почему я не могу установить маршрут по умолчанию для этого устройства / таблицы?

- edit: я только что нашел другое потенциальное решение, использующее только route , но оно терпит неудачу с похожей ошибкой:

# route add default gw 10.8.0.1 dev tun1
SIOCADDRT: No such process

1 ответ1

1

В вашей команде вы запрашиваете отправку пакетов через tun1 через следующий 10.8.0.1:

ip route add default via 10.8.0.1 dev tun1 table tun1tbl

Но этот сетевой интерфейс не находится в подсети, которая будет содержать целевой адрес:

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255

При этом команды отказываются добавлять такой маршрут.

Поскольку tun1 является интерфейсом точка-точка, вам не нужен шлюз для отправки пакетов. Просто удалите via часть из вашей команды:

ip route add default dev tun1 table tun1tbl

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