Я работал на общей платформе 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 (новичок в этом. Извините!)

0