LINUX.ORG.RU
решено ФорумAdmin

Не корректно работает route add в windows

 , , ,


1

1

Вечер добрый!

Не могу разобраться с добавление статического маршрута в windows 10. Ситуация:

  1. Есть хостовая машина на базе Windows 10 со след. таблицей маршрутизации.
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.243     35
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         On-link     192.168.1.243    291
    192.168.1.243  255.255.255.255         On-link     192.168.1.243    291
    192.168.1.255  255.255.255.255         On-link     192.168.1.243    291
    192.168.170.0    255.255.255.0         On-link     192.168.170.1    291
    192.168.170.1  255.255.255.255         On-link     192.168.170.1    291
  192.168.170.255  255.255.255.255         On-link     192.168.170.1    291
    192.168.221.0    255.255.255.0         On-link     192.168.221.1    291
    192.168.221.1  255.255.255.255         On-link     192.168.221.1    291
  192.168.221.255  255.255.255.255         On-link     192.168.221.1    291
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link     192.168.170.1    291
        224.0.0.0        240.0.0.0         On-link     192.168.221.1    291
        224.0.0.0        240.0.0.0         On-link     192.168.1.243    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link     192.168.170.1    291
  255.255.255.255  255.255.255.255         On-link     192.168.221.1    291
  255.255.255.255  255.255.255.255         On-link     192.168.1.243    291
===========================================================================
  1. На винде запущенна VMWare с ОС Ubuntu 20.04 c IP 192.168.1.22.

  2. Я добавляю роут в таблицу маршрутизации windows route add 10.99.99.20 192.168.1.22 добавляется все норм. После этого таблица выглядит след. образом. Часть таблицы.

Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.243     35
      10.99.99.20  255.255.255.255     192.168.1.22    192.168.1.243     36
  1. Делаю tracert 10.99.99.20 и вижу.
Трассировка маршрута к 10.99.99.20 с максимальным числом прыжков 30

  1     *        *        *     Превышен интервал ожидания для запроса.
  2

192.168.1.22 пингуется все нормально.

  1. На ubuntu я пытаюсь поймать куда приходит пакет с ip 10.99.99.20 расставив правила в iptables таблице mangle.
Chain PREROUTING (policy ACCEPT 14330 packets, 4624K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0            all  --  *      *       10.99.99.20          0.0.0.0/0           
2        0     0            all  --  *      *       0.0.0.0/0            10.99.99.20         

Chain INPUT (policy ACCEPT 14320 packets, 4622K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0            all  --  *      *       0.0.0.0/0            10.99.99.20         
2        0     0            all  --  *      *       10.99.99.20          0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0            all  --  *      *       0.0.0.0/0            10.99.99.20         
2        0     0            all  --  *      *       10.99.99.20          0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 11496 packets, 6840K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0            all  --  *      *       0.0.0.0/0            10.99.99.20         
2        0     0            all  --  *      *       10.99.99.20          0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT 11566 packets, 6844K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0            all  --  *      *       0.0.0.0/0            10.99.99.20         
2        0     0            all  --  *      *       10.99.99.20          0.0.0.0/0 

Пакетов на ubuntu не вижу вообще. Не подскажете в чем может быть проблема и что я делаю не так? Может я что то не так понимаю?

Ответ на: комментарий от anc

Может я что то не понимаю, но зачем в данном случае знать что это за IP? Как я понимаю в таблице mangle должно быть видно приходящие пакеты на этот адрес даже если его вообще нет в системе ubuntu. Поэтому я не постчитал нужным его описать, что это и зачем туда идут пакеты. А вообще это сеть VPN с 10.99.99.0/24 кот. пингуется тоже нормально из ubuntu. Я в дальнейшем хотел построить маршрут этим пакетам уже в ubuntu, но к сожалению я этих пакетов там не вижу вообще. ((

alekseyd ()
Ответ на: комментарий от alekseyd

Как я понимаю в таблице mangle должно быть видно

«Как я понимаю» смотреть надо запустив tcpdump

Показывайте из бубунты выхлопы:

ip a s
ip r s 
iptables-save 
выпонять от рута.

anc ★★★★★ ()

Потренировался по вашей схеме (почти).

Win10->HyperV->ArchLinux.

В ArchLinux:

sudo ip tuntap add mode tun tun0
sudo ip a add 10.99.99.20/32 dev tun0

В Win10:

route add 10.99.99.20 192.168.97.95

И всё чудненько пингуется. С net.ipv4.ip_forward = 0.

Может дело в VMWare?

Просто я тут позавчера вдруг обнаружил, что для вложенных виртуалок в Hyper-V нужно включать mac address spoofing, когда бридж на бридже. Может в VMWare тоже какой-то фокус есть.

Toxo2 ★★ ()
Последнее исправление: Toxo2 (всего исправлений: 1)

Не корректно работает route add в windows

windows

Чего блин?

Где забаньсядебил когда он так нужен?!

anonymous ()
Ответ на: комментарий от anc

«Как я понимаю» смотреть надо запустив tcpdump

Это я сделал перво наперво и не получив пакетов в tcpdump я от безысходности настроил правила в таблице кот. проходит через всю маршрутизацию, потому что на что думать я даже не знаю.

ip a s

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:26:dd:87 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::6cf4:970d:35d6:257b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:8f:6e:0c:26 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:8fff:fe6e:c26/64 scope link 
       valid_lft forever preferred_lft forever
6: veth14ef396@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 5a:6b:07:08:74:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::586b:7ff:fe08:74bc/64 scope link 
       valid_lft forever preferred_lft forever
16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 172.16.99.75/24 brd 172.16.99.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::fe59:2fe7:46dd:886e/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

ip r s

default via 192.168.1.1 dev ens33 proto static metric 100 
10.70.9.0/24 via 172.16.99.1 dev tun0 
10.91.0.0/16 via 172.16.99.1 dev tun0 
10.99.0.0/16 via 172.16.99.1 dev tun0 
10.111.0.0/16 via 172.16.99.1 dev tun0 
10.177.0.0/16 via 172.16.99.1 dev tun0 
169.254.0.0/16 dev ens33 scope link metric 1000 
172.16.99.0/24 dev tun0 proto kernel scope link src 172.16.99.75 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.22 metric 100

sudo iptables-save

# Generated by iptables-save v1.8.4 on Wed Dec  1 10:31:29 2021
*mangle
:PREROUTING ACCEPT [56871:20379554]
:INPUT ACCEPT [56861:20378290]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [48777:31446058]
:POSTROUTING ACCEPT [49306:31503929]
-A PREROUTING -s 10.99.99.20/32
-A PREROUTING -d 10.99.99.20/32
-A INPUT -d 10.99.99.20/32
-A INPUT -s 10.99.99.20/32
-A FORWARD -d 10.99.99.20/32
-A FORWARD -s 10.99.99.20/32
-A OUTPUT -d 10.99.99.20/32
-A OUTPUT -s 10.99.99.20/32
-A POSTROUTING -d 10.99.99.20/32
-A POSTROUTING -s 10.99.99.20/32
COMMIT
# Completed on Wed Dec  1 10:31:29 2021
# Generated by iptables-save v1.8.4 on Wed Dec  1 10:31:29 2021
*filter
:INPUT ACCEPT [63030:23429158]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [54962:32984234]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8080 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Wed Dec  1 10:31:29 2021
# Generated by iptables-save v1.8.4 on Wed Dec  1 10:31:29 2021
*nat
:PREROUTING ACCEPT [4346:630366]
:INPUT ACCEPT [4261:619606]
:OUTPUT ACCEPT [4857:367052]
:POSTROUTING ACCEPT [4857:367052]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 8080 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 85 -j DNAT --to-destination 172.17.0.2:8080
COMMIT
# Completed on Wed Dec  1 10:31:29 2021

Только все равно не пойму чем это может помочь, так как мне кажется дело не самой системе, а в ее сетевом окружении или винде.

alekseyd ()
Ответ на: комментарий от alekseyd

Поднял еще одну OC ubuntu c IP 192.168.1.59.

Добавляю роут на взятый из головы адрес на старой ubuntu 192.168.1.22. sudo route add 10.53.53.53 gw 192.168.1.59 metric 1

На новой ubuntu 192.168.1.59 слушаю tcpdump

sudo tcpdump | grep 10.53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
10:48:48.768928 IP 192.168.1.22.41723 > 10.53.53.53.33434: UDP, length 32
10:48:48.768983 IP 192.168.1.22.38948 > 10.53.53.53.33435: UDP, length 32
10:48:48.768990 IP 192.168.1.22.44268 > 10.53.53.53.33436: UDP, length 32

пакеты доходят все нормально. Делаю тоже самое на Windows (т.е. добавляю роут и запускаю tracert) пакеты не доходят.

alekseyd ()
Ответ на: комментарий от Toxo2

Да проблема оказалась в самой VMWare. Установив в Hyper-V новую ОС debian прописав маршрут на хостовой машине Windows роутинг заработал отлично. Вирт. машина стала пинговаться. Т.е. это говорит о 100% проблеме в vmware и ее каких то хитрых настройках адаптеров. Правда в чем там проблема я пока не разобрался. Но в любом случае есть куда копать. Большое спасибо за помощь.

alekseyd ()
Ответ на: комментарий от alekseyd

При чем это только для VMWare. Для VirtualBox, Hyper-V все нормально работает.

alekseyd ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.