LTE Pass-through on LHGG-LTE6

Hi,

I’ve been using this LHGG-LTE6 For a couple of years with double NAT, without too much concerns but I’m at a stage where I need to change carrier and the new one offers a static IPv4 public address, so I’d need to pass that through to my gateway (which is a UniFi UDM-SE).

I have read countless guides, but as I fear to lose access to the LHGG-LTE6 (which sits on the roof) I have tried replicating any configuration I’ve found in this forum. Currently the LHGG-LTE6 is accessible on WAN 2 on the UDM-SE via a static rules that directs all traffic to 192.168.88.1 on port WAN 2. Whilst implementing LTE passthrough, I’d love to retain management capabilities via WebFig and WinBox.

Some details of the device.
LTE Modem Firmware: R11e-LTE6_V038
Model: RBLHGGR
RouterBoard Firmware: 7.15.3

Could I please ask your help in achieving LTE pass-through while retaining access to WebFig and via WinBox over LAN?

Thanks.

Kind regards,

I’m also interested in this. I have ATL18 and right now it’s working in router mode.

What I want to test is:

  • Create bridge on ATL and add ether1 to it.
  • Create two VLANs and add them to the bridge
  • Tag both VLANs on ether1
  • Pass LTE on one VLAN and create dhcp client on the other one

On router:

  • add ether1 to the bridge and remove from WAN list and tag both VLANs that we will be using for LTE pass and mgmt
  • create VLAN interface that will be used as WAN, create dhcp client on it and add it to the WAN interface list.

For mgmt we can use trusted vlan from the router.

I’m probably waaaaay off with this.

I tested a little bit today:

LHGG:

created two VLAN interfaces and add them to ether1, VLAN2 is for LTE passthrough and VLAN200 is for management.

On VLAN200 I created dhcp client so LHGG can receive IP address from the router and added VLAN to LAN interface list. (Important, failure to do so will probably lock you out from LHGG)

I deleted old address from LHGG, including pools, dhcp server etc.

Enabled LTE passthrough on VLAN2

ROUTER:

Selected VLAN2 instead of ether on in dhcp client

Added VLAN2 to WAN list instead of ether1

Added ether1 to bridge set it to admit only VLAN tagged, tagged VLAN2 and 200 on that port.


That’s about it, i will include config files here for both devices:

LHGG:

# 2024-09-18 07:38:56 by RouterOS 7.15.3
# software id = xxxx-xxxx
#
# model = LHGGR
# serial number = xxxxxxxxxxx
/interface lte
set [ find default-name=lte1 ] allow-roaming=no band="" sms-read=no
/interface vlan
add comment=LTE_PASS interface=ether1 name=VLAN2_LTE vlan-id=2
add comment=MGMT interface=ether1 name=VLAN200_MGMT vlan-id=200
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface lte apn
set [ find default=yes ] apn=internet.xxxxxxxx.xx passthrough-interface=\
    VLAN2_LTE passthrough-mac=auto use-network-apn=no
/port
set 0 name=serial0
/queue type
add fq-codel-ecn=no kind=fq-codel name=fq-codel-ethernet-default
/queue interface
set ether1 queue=fq-codel-ethernet-default
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=ether1 list=LAN
add comment=defconf interface=lte1 list=WAN
add interface=VLAN200_MGMT list=LAN
/ip dhcp-client
add interface=VLAN200_MGMT
/ip dns
set allow-remote-requests=yes
/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=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=Europe/Zagreb
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

ROUTER:

# 2024-09-18 07:39:24 by RouterOS 7.15.3
# software id = xxxx-xxxx
#
# model = RB750Gr3
# serial number = xxxxxxxxxxx
/interface bridge
add admin-mac=XX:XX:XX:XX:XX:XX auto-mac=no comment=defconf name=bridge \
    vlan-filtering=yes
/interface vlan
add comment=WAN interface=bridge name=VLAN2_LTE vlan-id=2
add comment=Local interface=bridge name=VLAN100_LAN vlan-id=100
add comment=Management interface=bridge name=VLAN200_MGMT vlan-id=200
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=dhcp_pool1 ranges=10.161.100.2-10.161.100.254
add name=dhcp_pool2 ranges=10.161.200.2-10.161.200.254
/ip dhcp-server
add address-pool=dhcp_pool1 interface=VLAN100_LAN name=dhcp1
add address-pool=dhcp_pool2 interface=VLAN200_MGMT name=dhcp2
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/interface bridge port
add bridge=bridge comment=defconf frame-types=\
    admit-only-untagged-and-priority-tagged interface=ether2 pvid=100
add bridge=bridge comment=defconf frame-types=\
    admit-only-untagged-and-priority-tagged interface=ether3 pvid=200
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge frame-types=admit-only-vlan-tagged interface=ether1
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface bridge vlan
add bridge=bridge tagged=bridge vlan-ids=2,100,200
add bridge=bridge tagged=ether1 vlan-ids=2,200
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=VLAN2_LTE list=WAN
add comment=Local interface=VLAN100_LAN list=LAN
add comment=Management interface=VLAN200_MGMT list=LAN
add comment="Off bridge" interface=ether5 list=LAN
/ip address
add address=10.161.100.1/24 comment=Local interface=VLAN100_LAN network=\
    10.161.100.0
add address=10.161.200.1/24 comment=Management interface=VLAN200_MGMT \
    network=10.161.200.0
add address=172.16.0.1/24 comment="Off bridge" interface=ether5 network=\
    172.16.0.0
/ip dhcp-client
add interface=VLAN2_LTE
/ip dhcp-server network
add address=10.161.100.0/24 gateway=10.161.100.1
add address=10.161.200.0/24 gateway=10.161.200.1
/ip dns
set allow-remote-requests=yes
/ip dns static
/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=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=Europe/Zagreb
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/tool romon
set enabled=yes

Oh, I see you do everything from terminal - I was hoping to manage it via the WebFig or WinBox.

That gives me some hints. On the Unifi Dream Machine SE the configuration should be easy as I just need to set the VLAN on the WAN interface.
I do wonder how the interface will get an IP from DHCP though, as on the UDM that is set as WAN interface.
Might be worth for me setting a static IP on the LHGG and then set a static route on the UDM

Set LTE passthrough to the WAN port, and assign a separate static IP to the modem’s LAN interface for management. This way, the static IPv4 will pass through to your UDM-SE while retaining access to WebFig and WinBox on the separate IP.

Honestly, never had any routers from unifi so I can’t help you there. But I don’t think there should be any problem if you can specify multiple VLANs on WAN port.

You can set static IP for management if you want but will dream machine allow creation of multiple VLANs on WAN port ?

On Mikrotik it doesn’t matter as you can see, you are very flexible here. “WAN” port is bridge member in my case and it’s used as simple trunk port where one vlan carry mgmt and another carry internet connection. Then that vlan is defined as “WAN” interface for firewall rules.