Add an DHCP relay on OpenWrt

HI,

I'm configuring a network and i need to add a DHCP relay and I don't know how to configure it.
I have lan network and a wan network, and these are bind with a NAT.
And I nead my device that are connected to the lan to obtain an address from a DHCP server that are present on the wan network.

Why don't you just use your openwrt router as a dumb switch then?

Usually when you nat, you have one IP on your wan port and the router provides DHCP for all clients attached.

Connect the wan connection to a LAN port and your clients to the other LAN ports, this should work.

On tihis switch i have also 2 DHCP on other Vlans so all the DHCP are installed on one Computer.
And I don't have only one switch i have multiple switch.
I need to know how to configure a DHCP relay

I have tried but it does'nt work for me, I don't know what i'm missing.
So i will share the config maybe it will help you.

I need my lan to access to the DHCP that is connected to the wan.
The server DHCP is on VLAN 100 with an ip 192.168.100.100 .

uci show network :

network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fdca:6d3f:b97::/48'
network.lan_dev=device
network.lan_dev.name='eth0.1'
network.wan_dev=device
network.wan_dev.name='eth0.2'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.vlanLan=switch_vlan
network.vlanLan.device='switch0'
network.vlanLan.vlan='1'
network.vlanLan.vid='1'
network.vlanLan.ports='0 1 2 3 6t'
network.lan=interface
network.lan.type='bridge'
network.lan.proto='static'
network.lan.ipaddr='192.168.10.30'
network.lan.netmask='255.255.255.0'
network.lan.gateway='192.168.10.30'
network.lan.dns='8.8.8.8'
network.lan._orig_ifname='eth0.1 ra0 rai0 ra0 rai0'
network.lan._orig_bridge='true'
network.lan.ifname='eth0.1'
network.vlanWan=switch_vlan
network.vlanWan.device='switch0'
network.vlanWan.vlan='2'
network.vlanWan.vid='2'
network.vlanWan.ports='4 6t'
network.wan=interface
network.wan.type='bridge'
network.wan.ifname='eth0.2'
network.wan.proto='dhcp'
network.vlan111=switch_vlan
network.vlan111.device='switch0'
network.vlan111.vlan='111'
network.vlan111.vid='111'
network.vlan111.ports='0t 1t 2t 3t 4t 6t'
network.brvlan111=interface
network.brvlan111.type='bridge'
network.brvlan111.proto='static'
network.brvlan111.ifname='eth0.111 rai1 ra1'
network.brvlan111.ipaddr='192.168.111.30'
network.brvlan111.netmask='255.255.255.0'
network.vlan110=switch_vlan
network.vlan110.device='switch0'
network.vlan110.vlan='110'
network.vlan110.vid='110'
network.vlan110.ports='0t 1t 2t 3t 4t 6t'
network.brvlan110=interface
network.brvlan110.type='bridge'
network.brvlan110.proto='static'
network.brvlan110.ifname='eth0.110 rai2 ra2'
network.brvlan110.ipaddr='192.168.110.30'
network.brvlan110.netmask='255.255.255.0'

uci show firewall:

firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood='1'
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].network='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].network='wan' 'wan6'
firewall.@zone[1].input='REJECT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='REJECT'
firewall.@zone[1].masq='1'
firewall.@zone[1].mtu_fix='1'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fc00::/6'
firewall.@rule[3].dest_ip='fc00::/6'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@include[0]=include
firewall.@include[0].path='/etc/firewall.user'

uci show dhcp

dhcp.@dnsmasq[0]=dnsmasq
dhcp.@dnsmasq[0].domainneeded='1'
dhcp.@dnsmasq[0].boguspriv='1'
dhcp.@dnsmasq[0].filterwin2k='0'
dhcp.@dnsmasq[0].localise_queries='1'
dhcp.@dnsmasq[0].rebind_protection='1'
dhcp.@dnsmasq[0].rebind_localhost='1'
dhcp.@dnsmasq[0].local='/lan/'
dhcp.@dnsmasq[0].domain='lan'
dhcp.@dnsmasq[0].expandhosts='1'
dhcp.@dnsmasq[0].nonegcache='0'
dhcp.@dnsmasq[0].authoritative='1'
dhcp.@dnsmasq[0].readethers='1'
dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases'
dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.@dnsmasq[0].nonwildcard='1'
dhcp.@dnsmasq[0].localservice='1'
dhcp.wan=dhcp
dhcp.wan.interface='wan'
dhcp.wan.ignore='1'
dhcp.odhcpd=odhcpd
dhcp.odhcpd.maindhcp='0'
dhcp.odhcpd.leasefile='/tmp/hosts/odhcpd'
dhcp.odhcpd.leasetrigger='/usr/sbin/odhcpd-update'
dhcp.odhcpd.loglevel='4'

and I have added this line in the file /etc/dnsmasq.conf
dhcp-relay=192.168.10.30,192.168.100.100 (local,wanDHCP)

But I am unable to get an IP adress when I try to connect to the lan network.
I don't know what I'm missing.

Can you provide a network diagram? I'm a bit confused about what you're trying to achieve.

Even if you have many vlans on this network, you could just add the ports to vlan100 and they'd get DHCP addresses.