Puncte:0

Stivă Juniper EX4200 cu PFSense DHCP (buclă de descoperire/ofertă)

drapel cn

În prezent, mă lupt cu Juniper Switch Stack.

Topologia este așa Topologie

Porturile client de pe stivă sunt configurate ca acces etichetat cu dot1x (suplicant multiplu) și se comută în funcție de autentificarea Radius. Acest lucru funcționează fără probleme și VLAN-urile sunt alocate corect.

Cele 2 firewall-uri PFSense oferă o instanță DHCP pentru fiecare VLAN în configurație de failover cu un IP CARP pe aceeași subrețea ca și VLAN-ul. Deci nu este nevoie de DHCP Relay.

Clienții Windows pot obține un IP și pot funcționa corect, dar clienții Linux și boot PXE nu.

De la tcpdump și Wireshark vedem o buclă DHCP Discover/Offer pe clienții Linux. Oferta ajunge la client, dar acesta nu trimite o Solicitare DHCP. Am încercat mai multe derivate Linux și implementări PXE, dar fără succes. De asemenea, am comparat capturile Wireshark din Windows și Linux și nu există absolut nicio diferență.

Aveți sugestii despre cum să găsiți problema?

Mulțumesc anticipat.

Actualizați:

Doar pentru a adăuga mai multe informații.

Fluxul de atribuire a IP este astfel:

  1. Clientul pornește (NIC se conectează la stiva Switch)
  2. Switch autentifică clientul față de serverul Radius
  3. Radius Server răspunde cu Accept și VLAN ID 940
  4. Stiva de comutatoare atribuie VLAN 940 portului la care clientul îl conectează în modul de solicitant multiplu
  5. Clienții trimite DHCP Discover
  6. Serverul DHCP (ambele PFSense) răspund cu o ofertă.
  7. Clientul trimite o solicitare DHCP
  8. Serverul DHCP trimite un ACK DHCP

Deci, evident, 1-6 funcționează. Clientul este alocat la VLAN 940 prin Radius Server, trimite o descoperire DHCP, ambele PFSense au o instanță DHCP configurată pentru VLAN 940 (Interval IP 10.94.0.1-200/24) și trimit o ofertă.

Acesta este un tcpdump pe unul dintre firewall-urile PFsense în cazul în care ajută.

18:55:25.538580 IP (to 0x0, ttl 20, id 3, offset 0, steaguri [niciunul], proto UDP (17), lungime 576)
        0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Solicitare de la 00:19:99:f7:3d:23 (oui Necunoscut), lungime 548, xid 0x99f73d23, steaguri [19:99:f7:3d:23 Difuzare] (0x8000)
              Client-Ethernet-Adresa 00:19:99:f7:3d:23 (oui Necunoscut)
              Extensii Vendor-rfc1048
                Cookie magic 0x63825363
                DHCP-Message Opțiunea 53, lungime 1: Discover
                Opțiunea de solicitare a parametrilor 55, lungime 36:
                  Subnet-Mask, Time-Zone, Default-Gateway, Time-Server
                  IEN-Name-Server, Domain-Name-Server, RL, Hostname
                  BS, nume de domeniu, SS, RP
                  EP, RSZ, TTL, BR
                  YD, YS, NTP, Opțiune de furnizor
                  Solicitat-IP, Lease-Time, Server-ID, RN
                  RB, Clasa furnizor, TFTP, BF
                  Opțiunea 128, Opțiunea 129, Opțiunea 130, Opțiunea 131
                  Opțiunea 132, Opțiunea 133, Opțiunea 134, Opțiunea 135
                MSZ Opțiunea 57, lungime 2: 1260
                Opțiunea GUID 97, lungime 17: 0.72.178.216.253.99.205.17.226.190.154.221.134.53.14.178.59
                Opțiunea ARCH 93, lungime 2: 0
                Opțiunea NDI 94, lungime 3: 1.2.1
                Opțiunea 60 din clasa furnizorului, lungimea 32: „PXEClient:Arch:00000:UNDI:002001”
                END Opțiunea 255, lungime 0
                Opțiunea PAD 0, lungimea 0, apare 200
    
    18:55:26.546900 IP (to 0x10, ttl 128, id 0, offset 0, flags [niciun], proto UDP (17), lungime 334)
        10.94.0.253.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Răspuns, lungime 306, xid 0x99f73d23, secunde 18, Indicatori [Broadcast] (0x8000)
              IP-ul dvs. 10.94.0.5
              Server-IP 10.91.0.1
              Client-Ethernet-Adresa 00:19:99:f7:3d:23 (oui Necunoscut)
              fișierul „pxelinux.0”
              Extensii Vendor-rfc1048
                Cookie magic 0x63825363
                DHCP-Message Opțiunea 53, lungime 1: Oferta
                Server-ID Opțiunea 54, lungime 4: 10.94.0.253
                Opțiunea de închiriere 51, lungime 4: 600
                Subnet-Mask Opțiunea 1, lungime 4: 255.255.255.0
                Opțiunea de gateway implicită 3, lungime 4: 10.94.0.254
                Opțiunea Domain-Name-Server 6, lungime 8: 10.0.2.1,10.0.2.2
                Opțiunea Domain-Name 15, lungimea 9: „domain.intra”
                Opțiunea NTP 42, lungime 4: 10.94.0.254
                Opțiunea TFTP 66, lungime 9: „10.91.0.1”
                END Opțiunea 255, lungime 0
                
    18:55:26.547180 IP (to 0x10, ttl 128, id 0, offset 0, flags [niciun], proto UDP (17), lungime 334)
        10.94.0.252.bootps > 255.255.255.255.bootpc: [suma udp ok] BOOTP/DHCP, Răspuns, lungime 306, xid 0x99f73d23, secunde 18, Indicatori [Broadcast] (0x8000)
              IP-ul dvs. 10.94.0.104
              Server-IP 10.91.0.1
              Client-Ethernet-Adresa 00:19:99:f7:3d:23 (oui Necunoscut)
              fișierul „pxelinux.0”
              Extensii Vendor-rfc1048
                Cookie magic 0x63825363
                DHCP-Message Opțiunea 53, lungime 1: Oferta
                Server-ID Opțiunea 54, lungime 4: 10.94.0.252
                Opțiunea de închiriere 51, lungime 4: 600
                Subnet-Mask Opțiunea 1, lungime 4: 255.255.255.0
                Opțiunea de gateway implicită 3, lungime 4: 10.94.0.254
                Opțiunea Domain-Name-Server 6, lungime 8: 10.0.2.1,10.0.2.2
                Opțiunea Domain-Name 15, lungimea 9: „domain.intra”
                Opțiunea NTP 42, lungime 4: 10.94.0.254
                Opțiunea TFTP 66, lungime 9: „10.91.0.1”
                END Opțiunea 255, lungime 0

Clientul vede exact același lucru, dar pur și simplu îl ignoră. Arată greșit?

Funcționează doar dacă fac același lucru cu o mașină virtuală Linux pe comutatoarele din partea serverului (unde este conectat serverul Radius). Deci sunt destul de sigur că problema este undeva în Juniper Switch Stack.

Actualizare 2:

Presupunerea mea despre o problemă în Switch Stack a fost corectă. Se pare că modul de port „acces-etichetat” nu se comportă așa cum ar trebui. Trecerea la modul port „acces” a rezolvat problema. Dar nu are prea mult sens pentru mine, deoarece modul „acces” nu ar trebui să poată gestiona mai mulți solicitanți în VLAN-uri diferite, dar, evident, are.

Puncte:0
drapel za
Pat

Multe distribuții Linux folosesc klibc ipconfig atunci când configurați interfețele de rețea (vă rugăm să luați în considerare că acesta este un instrument diferit de cel folosit în Windows cu același nume)

https://kernel.googlesource.com/pub/scm/libs/klibc/klibc/+/klibc-0.130/ipconfig/README

Vă rugăm să vedeți variabila

-c proto    

care poate fi specificat ca BOOTP sau DHCP

Am descoperit că, în funcție de serverul DHCP utilizat, clientul DHCP ignoră total ofertele DHCP bine conformate, dar când setează corect -c parametrul clientului acceptă oferta.

La pornire, adică Ubuntu, puteți specifica acest parametru adăugând IP=DHCP sau IP=BOOTP în linia de comandă a nucleului. În Debian este diferit și folosesc nucleul IP variabilă în scopuri diferite, în acest caz trebuie să editați initrd-ul de pornire și să modificați manual linia ipconfig în scriptul corespunzător (de obicei /lib/live/boot/9990-networking.sh).

drapel cn
Bună. Mulțumesc pentru indiciu, dar cred că problema este undeva în configurația stivei de comutare.
drapel za
Pat
Puteți rula o captură Wireshark promiscuă în portul în oglindă al switch-urilor dvs. și ar trebui să vedeți tot traficul. Dar dacă funcționează pentru Windows și nu pentru Linux, nu cred că comutatorul tău este de vină.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.