Fórum Root.cz

Hlavní témata => Windows a jiné systémy => Téma založeno: Logik 27. 12. 2014, 12:15:44

Název: DHCP ve FreeBSD jailu
Přispěvatel: Logik 27. 12. 2014, 12:15:44
Ahoj,
snažím se rozchodit dnsmasq ve Freebsd jailu. DNS jsem už rozchodil, ale DHCP mi nefunguje.
Síťovou konfiguraci mám následující:

cloned_interfaces="bridge0 lo1"
ifconfig_igb0="inet 192.168.1.198 netmask 255.255.255.0 up"
ifconfig_bridge0="inet 192.168.6.200 netmask 255.255.255.0 addm igb1 up"
ifconfig_igb1="up"
...
jail_dhcp_ip="bridge0|192.168.6.210/24"

DNS normálně funguje (teda funguje poté, co jsem do dnsmasq.conf dal
bridge-interface=bridge0,lo0 a povolil bpf sockety pro jail)

DHCP request z hostitele se k dnsmasq dostane (dle tcdumpu projde přes lo0 interface - proč,
když todle interface jail nemá?), odpověď není žádná. DHCP request z jiného stroje na
síti 192.168.6.1/24 dnsmasq vůbec nepřijme.

Nevíte, kde by moh bejt zakopanej pes?
Název: Re:DHCP in Freebsd jail
Přispěvatel: dkghjv 27. 12. 2014, 12:41:12
http://dan.langille.org/2013/08/18/creating-a-freebsd-jail-to-run-dhcp-and-dns/
Název: Re:DHCP in Freebsd jail
Přispěvatel: Logik 27. 12. 2014, 13:26:51
Ten návod znám, jenže to bych musel nastavovat bind, kterej je daleko větší moloch než dnsmasq - rád bych zůstal u tohodle jednoduchýho řešení. A taky bych rád pochopil proč to nefunguje a ne něco "naklikal".
Název: Re:DHCP in Freebsd jail
Přispěvatel: Mirek Prýmek 27. 12. 2014, 21:10:23
Popisuješ tu situaci nějak zmateně. Příklad: pokud jail nevidí lo1, tak k němu packet prostě z principu nemůže doputovat.

Střelba do tmy: máš security.jail.allow_raw_sockets=1 ?

Pokud to není ono, tak by asi nejlepší bylo, kdybys mohl dodat výpisy ifconfig uvnitř a vně jailu a výpisy tcpdumpu ve stejným okamžiku na fyzickým rozhraní a na rozhraní, který máš přístupný v jailu.
Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Logik 30. 12. 2014, 17:46:55
Ahoj,
byl jsem chvíli mimo, tak omluva za zdržení. Raw sockety povolený mam.
Citace
Příklad: pokud jail nevidí lo1, tak k němu packet prostě z principu nemůže doputovat.
Jo, to jsem si myslel taky :-)

Reakce na dhcping (platyz je hostitel, dhcp je jail), je tcdump je stejný v jailu i mimo, na bridge0
žádná reakce není.

Kód: [Vybrat]
[root@platys ~]# tcpdump -i lo0                               
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
16:47:31.398271 IP 192.168.6.200.bootpc > 192.168.6.210.bootps: BOOTP/DHCP, Request from 00:00:00:00:00:00 (oui Ethernet), length 250

[root@dhcp /]# dnsmasq --no-daemon
dnsmasq: started, version 2.72 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt no-DBus i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect
dnsmasq-dhcp: DHCP, IP range 192.168.6.100 -- 192.168.6.199, lease time 12h
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 8.8.8.8#53
dnsmasq: using nameserver 213.46.172.36#53
dnsmasq: using nameserver 213.46.172.37#53
dnsmasq: read /etc/hosts - 2 addresses
dnsmasq-dhcp: DHCP packet received on lo0 which has no address

Ifconfigy:
Kód: [Vybrat]
[root@dhcp /]# ifconfig
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
    ether 60:a4:4c:ea:6d:ce
    media: Ethernet autoselect
    status: no carrier
igb1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
    ether 60:a4:4c:ea:6d:cf
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 02:fe:4a:c8:9c:00
    inet 192.168.6.210 netmask 0xffffff00 broadcast 192.168.6.255
    id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
    maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
    root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
    member: igb1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
            ifmaxaddr 0 port 2 priority 128 path cost 2000000
lo1: flags=8008<LOOPBACK,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>

[root@platys ~]# ifconfig
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
    ether 60:a4:4c:ea:6d:ce
    inet 192.168.1.198 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet autoselect
    status: no carrier
igb1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=403bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO>
    ether 60:a4:4c:ea:6d:cf
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 02:fe:4a:c8:9c:00
    inet 192.168.6.200 netmask 0xffffff00 broadcast 192.168.6.255
    inet 192.168.6.214 netmask 0xffffff00 broadcast 192.168.6.255
    inet 192.168.6.210 netmask 0xffffff00 broadcast 192.168.6.255
    nd6 options=9<PERFORMNUD,IFDISABLED>
    id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
    maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
    root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
    member: igb1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
            ifmaxaddr 0 port 2 priority 128 path cost 2000000
lo1: flags=8008<LOOPBACK,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Mirek Prýmek 30. 12. 2014, 18:35:44
Ha! No tak to je zajímavý, to jsem nevěděl, že je možný :) Že by za to mohly ty raw sockety?! Já jsem v jailech vždycky provozoval jenom TCP/UDP služby, takže tohle jsem netušil.

Přijde mi, že to máš celý nějak zašmodrchaný. Bridge imho vůbec nepotřebuješ, prostě nastav 192.168.6.200 na tom igb1 a zpřístupni ji v jailu, ne? Máš tam na tom bridge0 tři IP adresy ze stejnýho rozsahu, to je špatně. Skoro mi to přijde, jakoby se nějaký interface snažil nastavit pomocí DHCP a adresa z nějakýho důvodu skončila na bridgi (není to tím, že tam nemáš konfiguraci pro lo1?)

No prostě je to jakýsi zašmodrchaný, s tím asi nepomůžu, nechci tě zmást ještě víc ;) vyzkoušený to nemám. Doporučoval bych obrátit se do konfery http://www.cz.freebsd.org/listserv/listinfo/users-l/ tam jsou jiní machři než já, kteří ti určitě poradí správně.
Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Logik 31. 12. 2014, 11:25:41
Ahoj,
bridge nepotřebuju zatím, ale plánuju tam přidat wifinu, a pak ho potřebovat budu, tak jsem si ho tam přidal hned, abych to pak nemusel celý překopávat. Ty DHCP requesty jsou cíleně vyvolaný pomocí dhcping, těma testuju, jestli je ten DHCP server v jailu dostupnej.

V každym případě díky za snahu poradit, i to se cení :-)
Hezkej Novej rok,
Logik
Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Mirek Prýmek 31. 12. 2014, 12:38:40
Ty DHCP requesty jsou cíleně vyvolaný pomocí dhcping, těma testuju, jestli je ten DHCP server v jailu dostupnej.
Aha - a jak presne to volas - jestli neni problem v tom...
Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Logik 04. 01. 2015, 17:10:45
Takhle:

Kód: [Vybrat]
dhcping -s 192.168.6.210 -c 192.168.6.200
Název: Re:DHCP ve FreeBSD jailu
Přispěvatel: Mirek Prýmek 04. 01. 2015, 17:28:12
Chtělo by to celej výpis toho commandu i s jeho výstupem, předtím a potom ifconfig + routovani ("netstat -nr").