Portál AbcLinuxu, 10. května 2025 16:43

Dotaz: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server

16.2.2015 21:34 relay
dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Přečteno: 477×
Odpovědět | Admin
Ahoj. Mám DHCP server pro několik subnetů. Pro většinu z nich dělá dhcp relay switch - to funguje parádně. Nicméně pro jeden je potřeba, aby to dělal router/firewall. Zjednodušené schéma:


    -----------------eth0-router-eth1----------
    |      |                                  |
klient1 klient2 ...                      DHCP server
                      

Na routeru běží dhcrelay démon. Pokud klient poprvé žádá IP adresu, proběhne to v pohodě. Jenže když klient posílá DHCPREQUEST, pak se ve skutečnosti posílá toto (z wiresharku na DHCP serveru):
DHCPREQUEST: source "IP": klient1, destination "IP": DHCP server
--- Bootp flags: Client IP: ip adresa klient1

DHCPREQUEST: source "IP": router(eth0), destination "IP": DHCP server
--- Bootp flags: Client IP: ip adresa klient1, Relay agent IP: ip adresa router(eth1)

DHCPREQUEST: source "IP": router(eth0), destination "IP": DHCP server
--- Bootp flags: Client IP: ip adresa klient1, Relay agent IP: ip adresa router(eth0)

DHCPACK: source "IP": DHCP server, destination "IP": klient1

DHCPACK: source "IP": DHCP server, destination "IP": router(eth1)

DHCPACK: source "IP": DHCP server, destination "IP": router(eth0)
Proč se dhcrelay vměšuje do přímé konverzace klient-dhcp server? Je toto normální chování? Samozřejmě, dhcp server na ten přidaný request loguje "wrong network".

Tohoto chování jsem si všiml proto, že občas jsou někteří klienti nedostupní právě po tom, co proběhla tato konverzace. Je to tak 50:50, že to souvisí s tímto problémem, ale z jakého důvodu to dhcrelay provádí? Špatná konfigurace to asi nebude (prakticky není co konfigurovat).
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.2.2015 22:21 NN
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak se dostal DHCPREQUEST broadcast se zdrojovou IP klienta za router? Mohl by jsi ten vystup poslat v nejakem citelnejsim formatu?(tcpdump,pcap..). Jinak ma to probihat asi takto.
16.2.2015 22:35 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Jak se dostal DHCPREQUEST broadcast se zdrojovou IP klienta za router?
No to jsem taky nepochopil. To tam nepotřebuje dhcrelay, když si to žvaní se serverem napřímo.
16.2.2015 22:46 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
DHCPREQUEST se dostal za router snadno, protože v tu chvíli už měl klient někdy z minula přidělenou IP adresu a proto znal IP adresu dhcp serveru, tzn. jednalo se o renewal. Proto by do toho neměl dhcrelay vůbec zasahovat. Když zanalyzuji provoz přímo z routeru:
  1. Klient pošle DHCPREQUEST dhcp serveru
  2. Router udělá to samé s tím, že zde figuruje jako relay - prakticky router obešle všechny 2 dhcp servery v síti. Tady router použije jako IP adresu relay agenta ip adresu ze subnetu klienta
  3. Router udělá to samé s tím, že zde figuruje jako relay - prakticky router obešle všechny 2 dhcp servery v síti. Tady router použije jako IP adresu relay agenta ip adresu ze subnetu dhcp serveru - na tyto žádosti pak dostane NAK
16.2.2015 22:26 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak to nespouštěj s volbou -a, když to DHCP server nesnáší.
16.2.2015 22:51 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
dhcrelay je spuštěný takto:
dhcrelay -i eth0 -i eth1 ip.adresa.dhcp.1 ip.adresa.dhcp.2
16.2.2015 23:14 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
dhcrelay je spuštěný takto:
dhcrelay -i eth0 -i eth1 ip.adresa.dhcp.1 ip.adresa.dhcp.2
Hodně štěstí s dvěma DHCP servery... to bude velká paráda. *roll* Jinak to zkus třeba takhle:

dhcrelay -i eth0 -i eth1 -a -m replace ip.adresa.dhcp.1 ip.adresa.dhcp.2
16.2.2015 23:44 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Zkoušel jsem to s "-a -m discard" a ani to neudělalo žádný rozdíl. Přepínač -m by se na to neměl vůbec vztahovat. Teď jsem zkusil nahradit ISC dhcrelay programem dhcp-helper a vypadá to, že ten se chová očekávatelně a hlavně funkčně. Uvidím po čase, jak si povede.

... mimochodem co je špatné na 2 DHCP serverech (tedy kromě bugů v ISC dhcpd)
17.2.2015 12:06 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
... mimochodem co je špatné na 2 DHCP serverech (tedy kromě bugů v ISC dhcpd)

to je ako auto s volantom na pravej aj lavej strane a obaja by soferovali naraz...
17.2.2015 16:21 Ivan
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Pokud oba DHCP servery pouzivaji jako backend stejnou databazi, tak to neni problem.

Mnohem vetsi problem je synchronizace leases pres omapi rozhrani.
17.2.2015 23:18 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
No ta synchronizace zdá se z dlouhodobého provozu funguje.
18.2.2015 11:41 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
netvrdim, ze to nie je mozne, sami pouzivame viacero dhcp serverov v jednej lan, ale vyzaduje to uz jemnejsiu konfiguraciu.
18.2.2015 01:40 ET
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
OT: mi pripomnelo :-D
17.2.2015 23:22 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Tak ačkoliv dhcp-helper funguje korektně, ukázalo se, že v síti je jedno zařízení, které očekává spíše to nekorektní chování (pouze jedno, ostatní fungují dobře). Totiž po půlce lease time pošle unicast dotaz a dostane unicast odpověď - to zkouší každou půl minutu a po nějaké době pošle broadcast dotaz a teprve s touto odpovědí je spokojené. Takže dhcrelay se možná chován blbě proto, že některé implementace dhcp klientů nepracují s "korektním" chováním dobře ...
17.2.2015 23:33 NN
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
Take by to mohlo byt tim, ze DHCP server z nejakeho duvodu odmitne prodlouzeni lease unicastem a vyprsi oba casovace(T1,T2), ale to je cira spekulace..
18.2.2015 00:02 relay
Rozbalit Rozbalit vše Re: dhcrelay nefunguje správně - vměšuje se do konverzace klient-server
To asi ne, dělá to problém pouze u jednoho zařízení v síti. Možná to zařízení očekává odpověď od relay agenta, od kterého to dostalo původně. Až budu moci, tak to zařízení restartuji a uvidím.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.