1

У меня есть ситуация с сервером Debian Jessie, когда я вручную создаю IP-маршрут, и после первого использования он перестает работать.

В моей сети у меня есть подсети 192.168.2.0/24 и 192.168.1.0/24, которые в основном изолированы. Однако в моем маршрутизаторе Cisco RV325 я допускаю исключение для трафика 192.168.2. * Для хостов 192.168.1. * (Но не наоборот). Это прекрасно работает для всех других клиентов (MacOS, Win10) в моей подсети 192.168.2. *, Без дополнительной настройки.

Тем не менее, на моем 192.168.2.* Сервер Debian, я не могу подключиться к 192.168.1. * Хостам. Итак, я попытался вручную добавить маршрут (в окне Debian) через

root@debian$ route -v 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
default         router          0.0.0.0         UG    1024   0        0 eth1
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

root@debian$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1

root@debian$ route -v
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         router          0.0.0.0         UG    1024   0        0 eth1
192.168.1.0     router          255.255.255.0   UG    1      0        0 eth1
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

На этом этапе я могу успешно подключиться к узлу HTTP в другой виртуальной локальной сети:

root@debian$ telnet 192.168.1.24 80
Trying 192.168.1.24...
Connected to 192.168.1.24.
Escape character is '^]'.

Например, я могу вручную запросить веб-страницу, и содержимое будет возвращено. Затем соединение закрывается, и любая последующая попытка завершается неудачей:

Trying 192.168.1.24...
telnet: Unable to connect to remote host: No route to host

route -v прежнему показывает маршрут, который я добавил, но он по сути непригоден. Что здесь не так? Возможно, какое-то другое программное обеспечение активно отключает незаконные маршруты?

Я видел этот связанный вопрос и попробовал все три текущих ответа, ни один из которых не работал для меня.

Я попытался отключить Network Manager, но это нарушило мой маршрут по умолчанию, что является гораздо более серьезной проблемой. Итак, я задаю этот вопрос как « как добавить маршрут в другую подсеть в системе с помощью Network Manager »? Вручную или автоматически при загрузке, оба в порядке.

Обновить

В соответствии с приведенными ниже вопросами, iptables показывает:

root@debian$ iptables -vnL
Chain INPUT (policy ACCEPT 5376 packets, 1052K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2490  184K fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3041 packets, 1187K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain fail2ban-ssh (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   13  1016 REJECT     all  --  *      *       154.8.139.43         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       192.99.122.172       0.0.0.0/0            reject-with icmp-port-unreachable
 2477  183K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0       

Ни один из этих IP-адресов не кажется актуальным. Прежде чем задать вопрос, я попытался отключить сервис fail2ban, но безрезультатно.

ip addr на хосте debian показывает:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:26:55:db:36:fa brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:26:55:db:36:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.34/24 brd 192.168.2.255 scope global eth1
       valid_lft forever preferred_lft forever

Примечание: у меня есть второй сетевой адаптер (eth2) на машине, но он отключен и ВНИЗ. Нет в таблице маршрутизации.

1 ответ1

1

Скорее всего, это не проблема маршрутизации на вашем клиенте, скорее это проблема брандмауэра или проблемы на сервере.

Я предполагаю, что будет неправильная маршрутизация на сервере из-за неправильной сетевой маски (может быть, 255.255.0.0, которая довольно распространена), в сочетании с фильтрацией обратного пути на клиенте. Вы можете проверить это, например, отключив фильтрацию обратного пути на клиенте с помощью команды, например echo "1"> /proc /sys /net /ipv4 /conf /default /rp_filter - но решение состоит в том, чтобы исправить сеть на сервер, потому что пакеты не отправляются обратно на маршрутизатор. (Это может также включать разрешение "СВЯЗАННОГО" трафика обратно в маршрутизатор).

Если это не помогло, посмотрите правила iptables, чтобы убедиться, что они там заблокированы - вы можете увидеть их, набрав iptables -vnL. (Возможно, вы захотите опубликовать их для нас, чтобы посмотреть). Это также может быть связано с маршрутизатором, возможно, даже с проблемой NAT.

Как правило, где это возможно, следующим шагом является анализ пакетов, чтобы увидеть, что покидает компьютер и что получает веб-сервер и vv. Вы можете использовать tcpdump (в отдельном окне и затем сделать запрос) с такой командой

tcpdump -n -i eth1 tcp src or dst 192.168.1.24

(Отмечу, что добавленная вами команда маршрута избыточна, и я подозреваю, что вы неправильно понимаете ее назначение. Это не причина вашей проблемы, хотя. Если проблема связана с фильтрацией обратного пути, вы можете полностью обойти маршрутизатор с помощью такой команды, как route add -net 192.168.1.0 netmask 255.255.255.0 eth1)

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