1

мой провайдер дает мне до двух адресов ipv4. У меня Raspberry Pi с Archlinux подключен к модему. первый интерфейс - eth0, а IP-адрес получен через dhcp.

я создал виртуальное устройство с

ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan

и дал этому устройству IP с

dhcpcd eth0.1

моя таблица маршрутизации теперь выглядит следующим образом (я изменил публичные адреса на 10.0.xx):

[root@core ~]# ip route
default via 10.0.26.1 dev eth0  metric 204 
default via 10.0.24.1 dev eth0.1  metric 206 
10.0.24.0/23 dev eth0.1  proto kernel  scope link  src 10.0.24.195  metric 206 
10.0.26.0/24 dev eth0  proto kernel  scope link  src 10.0.26.219  metric 204 
192.168.178.0/24 dev eth1  proto kernel  scope link  src 192.168.178.1

с брандмауэром и все отключено я попробовал

ping -I eth0.1 www.google.de

но это не сработало.

я изменил метрику со 2-го маршрута с 206 на 100, и тогда это сработало. но теперь пинги из eth0 не работают.

что касается понимания сети, я ожидаю, что пинг с обоих устройств должен работать.

Моим следующим действием было сбросить трафик (я изменил свой публичный ip на 10.0.xx)

[root@core ~]# ping -I eth0.1 www.google.de (no output was shown here)
[root@core ~]# tcpdump -i eth0.1 icmp
11:32:18.344731 IP  10.0.24.195 > ham02s11-in-f23.1e100.net: ICMP echo request, id 1841, seq 1, length 64
11:32:18.368186 IP ham02s11-in-f23.1e100.net > 10.0.24.195: ICMP echo reply, id 1841, seq 1, length 64

Я также посмотрел на свалку в Wireshark, для меня это выглядело совершенно круто. Были использованы arp и ip адреса eth0.1. (00:11:11:11:11:11 и 10.0.24.195)

вот вывод информации моего интерфейса

[root@core ~]# ip addr
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group   default qlen 1000
link/ether b8:27:eb:fe:e6:87 brd ff:ff:ff:ff:ff:ff
inet 10.0.26.219/24 brd 10.0.26.255 scope global eth0
   valid_lft forever preferred_lft forever
6: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
link/ether 00:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff
inet 10.0.24.195/23 brd 10.0.25.255 scope global eth0.1
   valid_lft forever preferred_lft forever

я заметил некоторые вещи, которые кажутся мне странными, но я не уверен.

  • состояние eth0.1 НЕИЗВЕСТНО
  • Маска сети eth0.1 - это /23, а не /24
  • brd of eth0.1 составляет 10.0.25.255, по сравнению с eth0 я бы ожидал 10.0.24.255

Я надеюсь, что кто-нибудь может дать мне несколько советов.

0