Я использую 2 интерфейса Ethernet на моей системной плате, eth0 / eth1 (usb to ethernet), как показано ниже.
root@E3-RDP:~# ifconfig
eth0 Link encap:Ethernet HWaddr ae:a1:99:48:86:79
inet addr:10.10.0.171 Bcast:10.10.0.255 Mask:255.255.255.0
inet6 addr: fe80::aca1:99ff:fe48:8679/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:532 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36510 (36.5 KB) TX bytes:972 (972.0 B)
Interrupt:114
eth1 Link encap:Ethernet HWaddr 00:0e:c6:87:72:01
inet addr:10.10.0.176 Bcast:10.10.0.255 Mask:255.255.255.0
inet6 addr: fe80::20e:c6ff:fe87:7201/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:94 (94.0 B)
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:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3336 (3.3 KB) TX bytes:3336 (3.3 KB)
Когда я проверяю системный Mac-адрес (eth0 / eth1) на компьютере, этот адрес такой же, как следующий.
C:\Users\andy>arp -a IP MAC ADDR Type
10.10.0.1 90-9f-33-a8-20-14 dynamic
10.10.0.171 ae-a1-99-48-86-79 dynamic
10.10.0.176 ae-a1-99-48-86-79 dynamic
10.10.0.186 60-a4-4c-35-1a-dd dynamic
Что я должен проверить при этой проблеме?
В моей системе тест ping (eth1) не прошел.
root@E3-RDP:~# ping -I eth1 10.10.0.173
PING 10.10.0.173 (10.10.0.173) from 10.10.0.176 eth1: 56(84) bytes of data.
From 10.10.0.176 icmp_seq=1 Destination Host Unreachable
From 10.10.0.176 icmp_seq=2 Destination Host Unreachable
From 10.10.0.176 icmp_seq=3 Destination Host Unreachable
From 10.10.0.176 icmp_seq=4 Destination Host Unreachable
From 10.10.0.176 icmp_seq=5 Destination Host Unreachable
From 10.10.0.176 icmp_seq=6 Destination Host Unreachable
^C
--- 10.10.0.173 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6007ms
pipe 3
Но тест ping от eth0 в порядке.
root@E3-RDP:~# ping 10.10.0.173
PING 10.10.0.173 (10.10.0.173) 56(84) bytes of data.
64 bytes from 10.10.0.173: icmp_seq=1 ttl=128 time=2.40 ms
64 bytes from 10.10.0.173: icmp_seq=2 ttl=128 time=0.327 ms
64 bytes from 10.10.0.173: icmp_seq=3 ttl=128 time=0.459 ms
64 bytes from 10.10.0.173: icmp_seq=4 ttl=128 time=0.727 ms
64 bytes from 10.10.0.173: icmp_seq=5 ttl=128 time=0.403 ms
64 bytes from 10.10.0.173: icmp_seq=6 ttl=128 time=0.528 ms
^C
--- 10.10.0.173 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.327/0.808/2.406/0.725 m
Я думаю, что неправильно распознанный MAC-адрес вызывает ошибку теста ping (eth1).
И я хочу реализовать TCP-клиент с eth1.
Спасибо.
Оба интерфейса находятся в одной подсети 10.10.0.0/24. Если вы проверите таблицу маршрутизации с route -n
вы увидите 2 записи для одной и той же подсети с разными интерфейсами для использования. Интерфейс eth0
будет до eth1
в списке. Таким образом, даже если пакеты отправляются на этот хост через eth1
IP-адрес, пакеты с этого хоста возвращаются в эту подсеть через интерфейс eth0
. Это причина, по которой вы видите arp
в таблице одинаковый MAC-адрес для обоих IP-адресов.
Думаю, вы можете попробовать использовать для этого статические маршруты или IP-таблицы.
Проверить статус интерфейса можно с помощью ethtool
команда.
eth1
на самом деле не "годен к употреблению". Не запутайтесь, увидев "UP" в выводе команды с фактическим состоянием вашего интерфейса. Вы должны увидеть RUNNING
, как и в eth0
.
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
ИМО, такие команды, как ip link show
и ip addr show
обеспечить более четкое состояние ваших сетевых интерфейсов.
Вот - довольно хорошее объяснение того, что происходит:
IFF_RUNNING
должен отражать рабочее состояние сетевого интерфейса, а не его административный. В качестве примера можно привести интерфейс Ethernet.UP
администратором (например,ifconfig eth0 up
), но он не будет считаться работоспособным (т.е.RUNNING
согласно RFC2863), если кабель не подключен.
Все равно нужно перепроверить eth1
как кажется, не работает. ip link show
было бы хорошим началом, но, скорее всего, в настоящее время он не работает или у вас проблема с кабелем, особенно. что у вас, кажется, есть физическая машина.