Dhcp client/server question

i have rb5009 with css610 switch and wap-ax. i am testing with the rb as a client to my tp-link router and all is fine with dhcp client on the rb lan.bridge.

but, when i try to connect the rb eth1 directly to my isp i cannot figure out the dhcp setup. i tried dhcp client on the wan, eth1, and dhcp server on the lan.bridge, all ports, minus eth1, but it seems to go nuts and i see the isp ip on some ports and not others. either way, no internet.

seems like the suggested method is dhcp client on the wan and server on the bridge, but not working for me, any suggestions on what i am doing wrong?

if you are using ether1 as your upstream port to the ISP, remove it from the bridge then setup a dhcp client on ether1 and it should work

Please share your current config:

/export file=anynameyoulike

Remove serial and any other private info, post between preformatted text tags by using the </> button.

In Mikrotik world, it is not entirely unlike the gaming one, show your screenshot configuration or it didn’t happen. :game_die:

Seriously, dhcp settings can be complex and other parts of the configuration may affect the way they work (or fail to work).

Post your configuration, instructions here:

# THIS IS RUNNING AS CLIENT FROM ACCESS PORT ON TPLINK ROUTER TO WAN PORT (PLEASE SEE NEXT CONFIG AS RB WAN PORT DIRECTLY TO ISP)

# 2025-07-18 09:31:26 by RouterOS 7.19.1
# software id = 
#
# model = RB5009UPr+S+
# serial number = 
/interface bridge
add name=lan.bridge
/interface ethernet
set [ find default-name=ether1 ] name=ether1-WAN
set [ find default-name=ether2 ] name=ether2-MGMT
set [ find default-name=sfp-sfpplus1 ] name=sfp-sfpplus1-TO-SW-SR
/interface wifi configuration
add country=Philippines disabled=no mode=ap name=MAIN \
    security.authentication-types=wpa2-psk,wpa3-psk .encryption="" ssid=\
    casa-torino
/certificate settings
set builtin-trust-anchors=not-trusted
/interface bridge port
add bridge=lan.bridge interface=sfp-sfpplus1-TO-SW-SR
add bridge=lan.bridge interface=ether1-WAN
/ip neighbor discovery-settings
set discover-interface-list=all
/interface wifi capsman
set enabled=yes package-path="" require-peer-certificate=no upgrade-policy=\
    none
/interface wifi provisioning
add action=create-dynamic-enabled disabled=no identity-regexp=WAP* \
    master-configuration=MAIN name-format="EAST-EAVE [WAP-AX-2GHz]" \
    radio-mac=F4:1E:57:89:61:CE
add action=create-dynamic-enabled disabled=no identity-regexp=WAP* \
    master-configuration=MAIN name-format="EAST-EAVE [WAP-AX-5GHz]" \
    radio-mac=F4:1E:57:89:61:CF
add action=create-dynamic-enabled disabled=no identity-regexp=CAP* \
    master-configuration=MAIN name-format="BEDROOM 4 [CAP-XL-AC-5GHz]" \
    radio-mac=48:A9:8A:F1:83:0B slave-name-format=""
add action=create-dynamic-enabled disabled=no identity-regexp=CAP* \
    master-configuration=MAIN name-format="BEDROOM 4 [CAP-XL-AC-2GHz]" \
    radio-mac=48:A9:8A:F1:83:0A
add action=create-dynamic-enabled disabled=no identity-regexp=CAP* \
    master-configuration=MAIN name-format="HALL-UPSTAIRS [CAP-XL-AC-5GHz]" \
    radio-mac=48:A9:8A:F1:84:63
add action=create-dynamic-enabled disabled=no identity-regexp=CAP* \
    master-configuration=MAIN name-format="HALL-UPSTAIRS [CAP-XL-AC-2GHz]" \
    radio-mac=48:A9:8A:F1:84:62
/ip dhcp-client
# DHCP client can not run on slave or passthrough interface!
add default-route-tables=main interface=ether1-WAN
/ip dns
set allow-remote-requests=yes servers=8.8.8.8
/ip service
set ftp disabled=yes
set telnet disabled=yes
/system clock
set time-zone-name=Asia/Manila
/system identity
set name=CAPSMAN
/tool mac-server
set allowed-interface-list=dynamic

THIS IS CONFIG WHEN WAN ON ETH1 RB5009, GETTING ODD BEHAVIOR WHEN TRYING TO SET DHCP ON THE LAN BRIDGE.

2025-07-18 10:11:15 by RouterOS 7.19.1

software id =

model = RB5009UPr+S+

serial number =

/interface bridge
add name=lan.bridge
/interface ethernet
set [ find default-name=ether1 ] name=ether1-WAN
set [ find default-name=ether2 ] name=ether2-MGMT
set [ find default-name=sfp-sfpplus1 ] name=sfp-sfpplus1-TO-SW-SR
/interface wifi configuration
add country=Philippines disabled=no mode=ap name=MAIN
security.authentication-types=wpa2-psk,wpa3-psk .encryption=“” ssid=
casa-torino
/ip pool
add name=pool1 ranges=192.168.0.0/24
/certificate settings
set builtin-trust-anchors=not-trusted
/interface bridge port
add bridge=lan.bridge interface=sfp-sfpplus1-TO-SW-SR
/ip neighbor discovery-settings
set discover-interface-list=all
/interface wifi capsman
set enabled=yes package-path=“” require-peer-certificate=no upgrade-policy=
none
/interface wifi provisioning
add action=create-dynamic-enabled disabled=no identity-regexp=WAP*
master-configuration=MAIN name-format=“EAST-EAVE [WAP-AX-2GHz]”
radio-mac=F4:1E:57:89:61:CE
add action=create-dynamic-enabled disabled=no identity-regexp=WAP*
master-configuration=MAIN name-format=“EAST-EAVE [WAP-AX-5GHz]”
radio-mac=F4:1E:57:89:61:CF
add action=create-dynamic-enabled disabled=no identity-regexp=CAP*
master-configuration=MAIN name-format=“BEDROOM 4 [CAP-XL-AC-5GHz]”
radio-mac=48:A9:8A:F1:83:0B slave-name-format=“”
add action=create-dynamic-enabled disabled=no identity-regexp=CAP*
master-configuration=MAIN name-format=“BEDROOM 4 [CAP-XL-AC-2GHz]”
radio-mac=48:A9:8A:F1:83:0A
add action=create-dynamic-enabled disabled=no identity-regexp=CAP*
master-configuration=MAIN name-format=“HALL-UPSTAIRS [CAP-XL-AC-5GHz]”
radio-mac=48:A9:8A:F1:84:63
add action=create-dynamic-enabled disabled=no identity-regexp=CAP*
master-configuration=MAIN name-format=“HALL-UPSTAIRS [CAP-XL-AC-2GHz]”
radio-mac=48:A9:8A:F1:84:62
/ip address
add address=192.168.0.1/24 interface=lan.bridge network=192.168.0.0
/ip dhcp-client
add default-route-tables=main interface=ether1-WAN
/ip dhcp-server network
add address=100.64.0.0/10 gateway=100.79.157.174
/ip dns
set allow-remote-requests=yes servers=8.8.8.8
/ip service
set ftp disabled=yes
set telnet disabled=yes
/system clock
set time-zone-name=Asia/Manila
/system identity
set name=CAPSMAN
/tool mac-server
set allowed-interface-list=dynamic

In your first configuration the DHCP client isn’t running as you have the ether1 added to (slave to) the bridge:

In the second it should work (i.e. ether1 should get an IP address if connected to a DHCP server) but the device is doing nothing, i..e. it is not configured as a switch (since the bridge has ONLY the SFP in it) and not as a router (no nat/masquerade).

It is not at all clear (to me) how you actually want to configure it, but if as a switch, the bridge should have BOTH the SFP and ether1 added to it and the dhcp client should be running on the bridge, i.e.:

/ip dhcp-client
add  interface=lan.bridge
I reset the RB5009 to default config. connected eth1 to starlink and no internet. cant ping the gateway 88.1 from other devices. disabled fw rules, no difference. as a default router config it cannot access internet?

# model = RB5009UPr+S+
# serial number = 
/interface bridge
add admin-mac=78:9A:18:D5:FC:31 auto-mac=no comment=defconf name=bridge
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
/ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=ether6
add bridge=bridge comment=defconf interface=ether7
add bridge=bridge comment=defconf interface=ether8
add bridge=bridge comment=defconf interface=sfp-sfpplus1
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=\
    192.168.88.0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=\
    192.168.88.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
    ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
    ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" \
    dst-port=33434-33534 protocol=udp
add action=accept chain=input comment=\
    "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
    udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
    protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=input comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack6" \
    connection-state=established,related
add action=accept chain=forward comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
    "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
    hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
    500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=forward comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
/system clock
set time-zone-name=Asia/Manila
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

i think im good now, i understand better now and think i figured out my issue. thanks all.