Я работал на общей платформе RALINK (MT7621), и у меня были некоторые проблемы с получением портов Ethernet для приема пакетов, что, как я полагаю, является основной причиной, по которой они не могут получить IP-адрес от DHCP-сервера (DNSMASQ) на маршрутизаторе , С портами нет ничего плохого, и драйвер Ethernet правильно сообщает, что соединение идет вверх / вниз, когда кабель вставлен / удален.
Системная информация:
root@DD-WRT:~# uname -a
Linux DD-WRT 4.14.19 #946 SMP PREEMPT Wed Feb 14 11:25:30 MST 2018 mips GNU/Linux
К мостовому интерфейсу «br0» подключены три элемента: две беспроводные радиостанции и гигабитный коммутатор Ethernet:
Интерфейсы LAN(eth2)/WAN(eth3):
eth2: flags=4163 < UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 metric 1
inet6 fe80::7a32:xxxx:xxxx:96fd prefixlen 64 scopeid 0x20<link>
ether 78:32:xx:xx:96:fd txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 102 bytes 7444 (7.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 3
eth3: flags=4931 < UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,MULTICAST> mtu 1500 metric 1
inet6 fe80::7a32:xxxx:xxxx:9700 prefixlen 64 scopeid 0x20<link>
ether 78:32:xx:xx:97:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13 bytes 1006 (1006.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
мост:
bridge name bridge id STP enabled interfaces
br0 8000.7832xxxx96fd no eth2
ra0
rai0
редактировать: я должен упомянуть, что нет модема, подключенного к порту WAN (то есть я просто пытаюсь получить локальный DHCP). содержимое 'route', /etc/resolv.conf и /etc /hosts выглядит следующим образом:
root@DD-WRT:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
169.254.0.0 * 255.255.0.0 U 0 0 0 br0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
root@DD-WRT:~# cat /etc/hosts
127.0.0.1 localhost
192.168.1.1 DD-WRT
root@DD-WRT:~# cat /etc/resolv.conf
nameserver 192.168.1.1
Ни у одного из беспроводных интерфейсов нет проблем с назначением IP-адресов подключенным устройствам, и я полагаю, что это связано с некоторыми изменениями между ядром 3.x и 4.x в отношении маршрутизации.
Ниже я предоставил как можно больше информации об этой проблеме. Я также упомяну, что соответствующие функции для этого конкретного гигабитного коммутатора (MT7530) включены (NET_DSA_MT7530, CONFIG_BRIDGE_VLAN_FILTERING, CONFIG_BRIDGE_NETFILTER)
Чтобы убедиться, что проблема не связана с iptables, я скомпилировал ядро без каких-либо функций NAT/IPTABLES/NF, и у меня все еще есть эта проблема, которая заставляет меня думать, что я что-то упустил в отношении "тегов vlan". Я не отклонялся от сценария конфигурации RALINK.
root@DD-WRT:~# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth2.1 | 1 | eth2
eth2.2 | 2 | eth2
eth2.3 | 3 | eth2
eth2.4 | 4 | eth2
где каждый vlan имеет одинаковую конфигурацию, как указано ниже:
root@DD-WRT:~# cat /proc/net/vlan/eth2.1
eth2.1 VID: 1 REORDER_HDR: 1 dev->priv_flags: 1001
total frames received 0
total bytes received 0
Broadcast/Multicast Rcvd 0
total frames transmitted 14
total bytes transmitted 1076
Device: eth2
INGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
EGRESS priority mappings: 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
Дополнительное примечание: не имеет значения, добавляю ли я vlans (eth2.1, eth2.2, eth2.3, eth2.4) к мосту или нет, поведение не меняется (что, я подозреваю, является ожидаемым поведение).
Вот некоторая дополнительная информация для людей, знакомых с программой переключения RALINK, просто чтобы дать представление о том, как настроен переключатель:
root@DD-WRT:~# switch dump
hash port(0:6) fid vid age mac-address filter my_mac
724: ---1 ---- 0 4 146 406c8xxxx9d2 - -
found the last entry 1 (not ready)
root@DD-WRT:~# cat /proc/mt7621/port_status
Port0: LinkDown
Port1: LinkDown
Port2: LinkDown
Port3: LinkUp
Port4: LinkDown
устройство, указанное в vid 4, подключено к порту Ethernet 3 (четвертый порт, идет 0,1,2,3), что правильно при проверке соответствия VLAN ниже (eth2.4 vid 4, vlan для порта 3 на переключатель):
root@DD-WRT:~# switch vlan dump
vid fid portmap s-tag
1 0 1-----11 0
2 0 -1----11 0
3 0 --1---11 0
4 0 ---1--11 0
5 0 ----11-- 0
6 0 invalid
7 0 invalid
8 0 invalid
9 0 invalid
10 0 invalid
11 0 invalid
12 0 invalid
13 0 invalid
14 0 invalid
15 0 invalid
16 0 invalid
Если кому-то понадобится дополнительная информация, касающаяся конфигурации ядра и тому подобного, я буду рад ее предоставить. Как это, я не знаю, чего не хватает. Я признаю, что я не эксперт, когда дело доходит до сетей (хотя у меня есть некоторый опыт в области вычислений, но не в этом), поэтому я мог пропустить простой "echo 1> /proc /net /" или что-то вроде тот.
Для меня все выглядит правильно. Я просто понятия не имею, почему пакеты не принимаются!
редактировать (22 Фев 2018): Вот некоторые итоги школы. если это помогает, предполагается, что порт LAN имеет значение "TRGMII" (не уверен, отражено ли это в ethtool, а может быть и нет), а порт wan "RGMII":
root@DD-WRT:~# ethtool eth2
Settings for eth2:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Link detected: no
"Ван":
Settings for eth3:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 4
Transceiver: internal
Auto-negotiation: on
Link detected: no
и VLAN:
Settings for eth2.1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Link detected: yes
Я добавлю больше информации, когда буду играть с ethtool (новичок в этом. Извините!)