DHCP ve FreeBSD jailu

Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
DHCP ve FreeBSD jailu
« kdy: 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?
« Poslední změna: 28. 12. 2014, 23:02:30 od Petr Krčmář »


dkghjv


Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:DHCP in Freebsd jail
« Odpověď #2 kdy: 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".

Re:DHCP in Freebsd jail
« Odpověď #3 kdy: 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.

Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:DHCP ve FreeBSD jailu
« Odpověď #4 kdy: 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>



Re:DHCP ve FreeBSD jailu
« Odpověď #5 kdy: 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ě.

Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:DHCP ve FreeBSD jailu
« Odpověď #6 kdy: 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

Re:DHCP ve FreeBSD jailu
« Odpověď #7 kdy: 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...

Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:DHCP ve FreeBSD jailu
« Odpověď #8 kdy: 04. 01. 2015, 17:10:45 »
Takhle:

Kód: [Vybrat]
dhcping -s 192.168.6.210 -c 192.168.6.200

Re:DHCP ve FreeBSD jailu
« Odpověď #9 kdy: 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").