Система: ALT Virtualization Server 10 (Actinoform) Ядра: 5.10.131-std-def-alt1 и 5.10.88-std-def-alt1 dhcpcd 9.4.0 и isc-dhclient-4.4.2 Сисема управления настройками сети Etcnet Проблема касается сабинтерфейсов типа vlan, на родительском интерфейсе работает. dhcp клиент отправляет DHCPDISCOVER, на интерфейсе клиента виден входящий DHCPOFFER от сервера, но DHCPREQUEST не отсылается и через некоторое время цикл повторяется: [root@shaft boot]# tcpdump -vvvepnni eth0 udp tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 00:28:57.502079 40:b0:76:df:3d:97 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 40:b0:76:df:3d:97, length 300, xid 0x8d501d46, Flags [none] (0x0000) Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Discover Parameter-Request Option 55, length 11: Subnet-Mask, BR, Time-Zone, Classless-Static-Route Domain-Name, Domain-Name-Server, Hostname, NTP MTU, Option 119, Default-Gateway END Option 255, length 0 PAD Option 0, length 0, occurs 43 00:28:57.512652 a4:7b:2c:98:67:44 > 40:b0:76:df:3d:97, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0xc0, ttl 64, id 35360, offset 0, flags [none], proto UDP (17), length 328) 90.154.77.209.67 > 188.32.93.70.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x8d501d46, Flags [none] (0x0000) Your-IP 188.32.93.70 Server-IP 90.154.77.209 Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Offer Server-ID Option 54, length 4: 90.154.77.209 Lease-Time Option 51, length 4: 3600 Subnet-Mask Option 1, length 4: 255.255.248.0 BR Option 28, length 4: 188.32.95.255 Domain-Name-Server Option 6, length 8: 77.37.251.33,77.37.255.30 Default-Gateway Option 3, length 4: 188.32.88.1 END Option 255, length 0 PAD Option 0, length 0, occurs 16 00:29:03.368300 40:b0:76:df:3d:97 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 40:b0:76:df:3d:97, length 300, xid 0x8d501d46, secs 6, Flags [none] (0x0000) Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Discover Parameter-Request Option 55, length 11: Subnet-Mask, BR, Time-Zone, Classless-Static-Route Domain-Name, Domain-Name-Server, Hostname, NTP MTU, Option 119, Default-Gateway END Option 255, length 0 PAD Option 0, length 0, occurs 43 00:29:03.379304 a4:7b:2c:98:67:44 > 40:b0:76:df:3d:97, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0xc0, ttl 64, id 36715, offset 0, flags [none], proto UDP (17), length 328) 90.154.77.209.67 > 188.32.93.70.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x8d501d46, Flags [none] (0x0000) Your-IP 188.32.93.70 Server-IP 90.154.77.209 Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Offer Server-ID Option 54, length 4: 90.154.77.209 Lease-Time Option 51, length 4: 3600 Subnet-Mask Option 1, length 4: 255.255.248.0 BR Option 28, length 4: 188.32.95.255 Domain-Name-Server Option 6, length 8: 77.37.251.33,77.37.255.30 Default-Gateway Option 3, length 4: 188.32.88.1 END Option 255, length 0 PAD Option 0, length 0, occurs 16 00:29:10.438537 40:b0:76:df:3d:97 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 40:b0:76:df:3d:97, length 300, xid 0x8d501d46, secs 13, Flags [none] (0x0000) Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Discover Parameter-Request Option 55, length 11: Subnet-Mask, BR, Time-Zone, Classless-Static-Route Domain-Name, Domain-Name-Server, Hostname, NTP MTU, Option 119, Default-Gateway END Option 255, length 0 PAD Option 0, length 0, occurs 43 00:29:10.449387 a4:7b:2c:98:67:44 > 40:b0:76:df:3d:97, ethertype 802.1Q (0x8100), length 346: vlan 99, p 0, ethertype IPv4, (tos 0xc0, ttl 64, id 38681, offset 0, flags [none], proto UDP (17), length 328) 90.154.77.209.67 > 188.32.93.70.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x8d501d46, Flags [none] (0x0000) Your-IP 188.32.93.70 Server-IP 90.154.77.209 Client-Ethernet-Address 40:b0:76:df:3d:97 Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message Option 53, length 1: Offer Server-ID Option 54, length 4: 90.154.77.209 Lease-Time Option 51, length 4: 3600 Subnet-Mask Option 1, length 4: 255.255.248.0 BR Option 28, length 4: 188.32.95.255 Domain-Name-Server Option 6, length 8: 77.37.251.33,77.37.255.30 Default-Gateway Option 3, length 4: 188.32.88.1 END Option 255, length 0 PAD Option 0, length 0, occurs 16
Что интересно dhcpdump, в отличии от tcpdump, офферов не видит [root@shaft boot]# dhcpdump -i eth0.99 TIME: 2022-07-25 17:03:06.813 IP: 0.0.0.0 (40:b0:76:df:3d:97) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: e46aff31 SECS: 0 FLAGS: 0 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: 40:b0:76:df:3d:97:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) OPTION: 55 ( 11) Parameter Request List 1 (Subnet mask) 28 (Broadcast address) 2 (Time offset) 121 (Classless Static Route) 15 (Domainname) 6 (DNS server) 12 (Host name) 42 (NTP servers) 26 (Interface MTU) 119 (Domain Search) 3 (Routers) --------------------------------------------------------------------------- TIME: 2022-07-25 17:03:14.197 IP: 0.0.0.0 (40:b0:76:df:3d:97) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: e46aff31 SECS: 8 FLAGS: 0 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: 40:b0:76:df:3d:97:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) OPTION: 55 ( 11) Parameter Request List 1 (Subnet mask) 28 (Broadcast address) 2 (Time offset) 121 (Classless Static Route) 15 (Domainname) 6 (DNS server) 12 (Host name) 42 (NTP servers) 26 (Interface MTU) 119 (Domain Search) 3 (Routers) --------------------------------------------------------------------------- ^C [root@shaft boot]#
https://www.altlinux.org/Etcnet: Обратите внимание, что ISC DHCP сервер на интерфейсе VLAN, скорее всего, у вас не будет работать, пока вы не добавите опцию VLAN_REORDER_HDR=on в настройки vlan интерфейса. Если это оно, то не баг.
Да! Спасибо! Это оно! Однако вопрос: man ip-link, говорит о том что reorder_hdr { on | off } - specifies whether ethernet headers are reordered or not (default is on) - по умолчанию реордеринг включен, т.е. получается в пакете etcnet его по умолчанию специально отключают. Для чего был выбран такой подход? Тем более что в других дистрибутивах, к примеру: Fedora release 34 (Thirty Four) Slackware 14.2 Значение оставлено по умолчанию.
Тем более что дисрибутив ориентирован на виртуализацию, а получение ip по dhcp для виртуальных машин весьма вероятно.
В сизифе исправил. Отправил обновление в p10. Ждемс.
* Thu Jul 28 2022 Alexey Shabalin <shaba@altlinux.org> 0.9.26-alt1 - vlan: set default reorder_hdr=on (Closes: #43330).