Jump to content

    

RNDIS usb0 + eth0 network interfaces одновременное использование

Добрый день! Запускаю на arm64 imx8 board сеть с использованием RNDIS интерфейса и eth0.

 

root@imx8m-var-dart:~# ifconfig

eth0      Link encap:Ethernet  HWaddr f8:dc:7a:1b:f1:ae
          inet addr:192.168.2.33  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::fadc:7aff:fe1b:f1ae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3917 errors:0 dropped:0 overruns:0 frame:0
          TX packets:945 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:300204 (293.1 KiB)  TX bytes:233024 (227.5 KiB)

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:65536  Metric:1
          RX packets:138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:138 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:12968 (12.6 KiB)  TX bytes:12968 (12.6 KiB)

usb0      Link encap:Ethernet  HWaddr 26:16:ff:7d:bb:80
          inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2416:ffff:fe7d:bb80/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:52 errors:0 dropped:0 overruns:0 frame:0
          TX packets:587 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3416 (3.3 KiB)  TX bytes:131753 (128.6 KiB)

Включаю интерфейсы по отдельности, пинг проходит.

как только запускаю два интерфейса одновременно, то пингуется только тот, который был запущен первым

Роут у них общий

root@imx8m-var-dart:~# ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.33
192.168.1.0/24 dev usb0 proto kernel scope link src 192.168.1.99

разносил на разные подсети, проблема не решилась.

Что необходимо для корректной работы двух интерфейсов одновременно?
 

Share this post


Link to post
Share on other sites
inet addr:192.168.2.33  Bcast:192.168.2.255  Mask:255.255.255.0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.33

во второй строке не ошиблись?

Share this post


Link to post
Share on other sites

Представляю, какие черти в ARP пляшут...

Share this post


Link to post
Share on other sites
7 minutes ago, Jury093 said:

inet addr:192.168.2.33  Bcast:192.168.2.255  Mask:255.255.255.0

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.33

во второй строке не ошиблись?

изменил IP и скопировал. правильно 192.168.2.0/24 

Я понимаю, что что-то неправильно делаю при реализации двух сетевых интерфейсов под linux.

Обязательно должно быть: 

- разные роут для каждого интерфейса

Share this post


Link to post
Share on other sites

Выложите полный вывод команд

netstat -rn

ip route

 

6 минут назад, Alexey_Rostov сказал:

Обязательно должно быть: 

- разные роут для каждого интерфейса

Не обязательно, может быть и один, но  роутер должен знать куда отправлять пакет и откуда его принимать.

Share this post


Link to post
Share on other sites
5 minutes ago, magvrn said:

Выложите полный вывод команд

netstat -rn

ip route

 

 

 

root@imx8m-var-dart:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 usb0

 

root@imx8m-var-dart:~# ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.33
192.168.1.0/24 dev usb0 proto kernel scope link src 192.168.1.99


Интерфейс usb0 имеет статический ip 192.168.1.99 для соединения с сервером с ip 192.168.1.100 port 0x5555, интерфейс eth0 используется пока для удаленной компиляции на плате imx8 c ПК.

После reboot и назначения ip для usb0 и eth0 пинг проходит только по интерфейсу eth0. При дебаге кода (тестовый tcp клиент), программа не выполняет connect() для usb0 интерфейса

Share this post


Link to post
Share on other sites

Выкладывайте как прописывали адресацию, и как и где дефолтрут. В таблице маршрутизации ничего нет.

Share this post


Link to post
Share on other sites
8 minutes ago, magvrn said:

Выкладывайте как прописывали адресацию, и как и где дефолтрут. В таблице маршрутизации ничего нет.

Спасибо, проблему решил.

Подсети на imx8 разные выставил:

root@imx8m-var-dart:~# ip route
192.168.1.0/24 dev usb0 proto kernel scope link src 192.168.1.99
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.33

На ПК IP выставил 192.168.2.2.

Теперь пинг проходит по каждому интерфейсу

 

root@imx8m-var-dart:~# ping -I eth0 192.168.2.2
PING 192.168.2.2 (192.168.2.2) from 192.168.2.33 eth0: 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=128 time=2.44 ms

--- 192.168.2.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

root@imx8m-var-dart:~# ping -I usb0 192.168.1.100
PING 192.168.1.100 (192.168.1.100) from 192.168.1.99 usb0: 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.699 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.641 ms

--- 192.168.1.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1028ms


 

Share this post


Link to post
Share on other sites

Странно всё это ))

разобрались и ладно )

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now