Map-t package not working correctly

I'm running 18.06.02 on a Netgear R6100. The device is getting a WAN address via DHCPv6, and a prefix is being delegated for the Lan. What is not working is map-t is not using DHCPv6 information to designate the BR and the Address range. The GUI is requiring these as manual fields.

Additionally, when I change the WAN6 interface protocol to MAP/LW4over6, the device stops receiving DHCPv6 addresses and PD. This seems broken to me. I've rolled back to older versions of OpenWRT/Lede, and back to current, however the behavior has persisted. Any suggestions are appreciated.

Have I posted in the wrong part of the forum? Is there more information that is needed for feedback?

Have you and your ISP configured such a thing???

  • If you turn off DHCPv6, why do you think it should work?
  • Does your ISP use map-t (see definition for "MAP domain" and the section "Architecture" at: https://tools.ietf.org/html/rfc7599)?

This is just rather uncommon; and since it seems you don't understand MAP-t, which is why you're having a problem with IPv6...it just took someone to come along that understood what you were asking.


Also, map-t is used to receive IPv4 over an IPv6 network...so I'm lost at what you're trying to accomplish.

Once I install the map-t package (and dependencies) the WAN6 interface won't start using that package until I 'change the protocol' on the interface from 'DHCPv6 Client' to 'Map / LW4over6'. There is no other way to activate the package from Luci that I'm aware of. This should not disable DHCPv6, as dynamic settings from upstream could (should) be received via DHPv6, including address information, PD, and the BR address, as well as DMR/FMR information.

I understand map-t (and map-e) pretty well. This behavior seems broken. Am I missing something in how the interface works?

I'm not "turning off DHCPv6" I'm turning ON map. These should not be mutually exclusive settings for the WAN6 interface in Luci.

1 Like

Hi,
i have been trying to setup MAP-T on my Wireless router, R6300-v2.
The Firmware version that i'm using is: "OpenWrt 18.06.2"
the primary porpose of this this MAP-T configuration is to do a tcpdump on the outside/egress interface of the CE and check the content of the packet.
I did setup a WAN6 interface facing "WAN" and "WAN_MAP" on the CE.
I have two issues/concerns with my setup:

  1. "proto": "none"
  2. "WAN_MAP" interface in the web interface shows " Error: Network device is not present"

Issue-1:

The following is the config on the router using CLI, please compare the "proto" output. One output says "proto is map" and other says "none"

root@OpenWrt:/etc# ifstatus wan_map
{
	"up": false,
	"pending": false,
	"available": false,
	"autostart": true,
	"dynamic": false,
	"proto": "none",
	"data": {
		
	},
	"errors": [
		{
			"subsystem": "interface",
			"code": "NO_DEVICE"
		}
	]
}

config interface 'wan_map'
	option proto 'map'
	option peeraddr '2001:d810:0000:1111::/64'
	option ipaddr '101.100.1.0'
	option ip4prefixlen '24'
	option ip6prefix '2001:d810:00::'
	option ip6prefixlen '40'
	option ealen '16'
	option psidlen '8'
	option offset '6'
	list tunlink 'wan6'
	option type 'map-t'

Issue-2:: Error: Network device is not present"

Please see the snapshot below:

Please help check me if i'm doing anything wrong here.

FYI, the "/etc/config/network" output is attached below:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd75:fba4:4160::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option dns '75.75.75.75 75.75.76.76'

config interface 'wan'
	option proto 'static'
	option ifname 'eth0.2'
	option ipaddr '10.0.0.4'
	option netmask '255.255.255.0'
	option gateway '10.0.0.1'
	option broadcast '10.0.0.255'
	option dns '75.75.75.75'

config device 'wan_dev'
	option name 'eth0.2'
	option macaddr '28:C6:8E:8B:7E:B5'

config interface 'wan6'
	option proto 'static'
	option ip6addr '2001:2001:2001:2001::2/64'
	option ifname 'eth0.2'
	option ip6gw 'fe80::1'
config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0 1 2 3 5t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '4 5t'

config interface 'wan_map'
	option proto 'map'
	option peeraddr '2001:d810:0000:1111::/64'
	option ipaddr '101.100.1.0'
	option ip4prefixlen '24'
	option ip6prefix '2001:d810:00::'
	option ip6prefixlen '40'
	option ealen '16'
	option psidlen '8'
	option offset '6'
	list tunlink 'wan6'
	option type 'map-t'

FYI, the "ubus call network.interface dump" output is attached below:

root@OpenWrt:/# ubus call network.interface dump
{
	"interface": [
		{
			"interface": "lan",
			"up": true,
			"pending": false,
			"available": true,
			"autostart": true,
			"dynamic": false,
			"uptime": 13885,
			"l3_device": "br-lan",
			"proto": "static",
			"device": "br-lan",
			"updated": [
				"addresses"
			],
			"metric": 0,
			"dns_metric": 0,
			"delegation": true,
			"ipv4-address": [
				{
					"address": "192.168.1.1",
					"mask": 24
				}
			],
			"ipv6-address": [
				
			],
			"ipv6-prefix": [
				
			],
			"ipv6-prefix-assignment": [
				
			],
			"route": [
				
			],
			"dns-server": [
				"75.75.75.75",
				"75.75.76.76"
			],
			"dns-search": [
				
			],
			"inactive": {
				"ipv4-address": [
					
				],
				"ipv6-address": [
					
				],
				"route": [
					
				],
				"dns-server": [
					
				],
				"dns-search": [
					
				]
			},
			"data": {
				
			}
		},
		{
			"interface": "loopback",
			"up": true,
			"pending": false,
			"available": true,
			"autostart": true,
			"dynamic": false,
			"uptime": 13885,
			"l3_device": "lo",
			"proto": "static",
			"device": "lo",
			"updated": [
				"addresses"
			],
			"metric": 0,
			"dns_metric": 0,
			"delegation": true,
			"ipv4-address": [
				{
					"address": "127.0.0.1",
					"mask": 8
				}
			],
			"ipv6-address": [
				
			],
			"ipv6-prefix": [
				
			],
			"ipv6-prefix-assignment": [
				
			],
			"route": [
				
			],
			"dns-server": [
				
			],
			"dns-search": [
				
			],
			"inactive": {
				"ipv4-address": [
					
				],
				"ipv6-address": [
					
				],
				"route": [
					
				],
				"dns-server": [
					
				],
				"dns-search": [
					
				]
			},
			"data": {
				
			}
		},
		{
			"interface": "wan",
			"up": true,
			"pending": false,
			"available": true,
			"autostart": true,
			"dynamic": false,
			"uptime": 983,
			"l3_device": "eth0.2",
			"proto": "static",
			"device": "eth0.2",
			"updated": [
				"addresses",
				"routes"
			],
			"metric": 0,
			"dns_metric": 0,
			"delegation": true,
			"ipv4-address": [
				{
					"address": "10.0.0.4",
					"mask": 24
				}
			],
			"ipv6-address": [
				
			],
			"ipv6-prefix": [
				
			],
			"ipv6-prefix-assignment": [
				
			],
			"route": [
				{
					"target": "0.0.0.0",
					"mask": 0,
					"nexthop": "10.0.0.1",
					"source": "0.0.0.0\/0"
				}
			],
			"dns-server": [
				"75.75.75.75"
			],
			"dns-search": [
				
			],
			"inactive": {
				"ipv4-address": [
					
				],
				"ipv6-address": [
					
				],
				"route": [
					
				],
				"dns-server": [
					
				],
				"dns-search": [
					
				]
			},
			"data": {
				
			}
		},
		{
			"interface": "wan6",
			"up": true,
			"pending": false,
			"available": true,
			"autostart": true,
			"dynamic": false,
			"uptime": 3366,
			"l3_device": "eth0.2",
			"proto": "static",
			"device": "eth0.2",
			"updated": [
				"addresses",
				"routes"
			],
			"metric": 0,
			"dns_metric": 0,
			"delegation": true,
			"ipv4-address": [
				
			],
			"ipv6-address": [
				{
					"address": "2001:2001:2001:2001::2",
					"mask": 64
				}
			],
			"ipv6-prefix": [
				
			],
			"ipv6-prefix-assignment": [
				
			],
			"route": [
				{
					"target": "::",
					"mask": 0,
					"nexthop": "fe80::1",
					"source": "::\/0"
				}
			],
			"dns-server": [
				
			],
			"dns-search": [
				
			],
			"inactive": {
				"ipv4-address": [
					
				],
				"ipv6-address": [
					
				],
				"route": [
					
				],
				"dns-server": [
					
				],
				"dns-search": [
					
				]
			},
			"data": {
				
			}
		},
		{
			"interface": "wan_map",
			"up": false,
			"pending": false,
			"available": false,
			"autostart": true,
			"dynamic": false,
			"proto": "none",
			"data": {
				
			},
			"errors": [
				{
					"subsystem": "interface",
					"code": "NO_DEVICE"
				}
			]
		}
	]
}

Hi,
I'm eagerly waiting to hear from someone who might be able to help me with this issue.
By any chance, did i post this question in the wrong part of the forum. Please help me.

Thanks much

I was able to do a tcpdump on my wan6 interface to look at MAP-T DHCPv6 announcements and flags with the wan6 protocol set to DHCPv6. This was not functional MAP-T, but capturing the packet for analysis was possible. I set the tcpdump parameters for the full packet size, saved it to a file and reviewed the packet contents on another linux machine via wireshark. This allowed me to verify the map options were being correctly received on the wan6 (eth0) interface.

I also received the 'network not present' error when I changed the protocol to MAP/LW4over6, even though I had received IPv6 addressing when the WAN6 interface protocol was set to DHCPv6. To be clear, I am still having the issue that I opened this topic with, but have been working on other items not directly related to this issue.

I set the map options on an upstream dhcpv6 server for purposes of my testing. As the testing I'm doing is intended for a consumer base that is not expected to know Linux, we've tried to avoid using the CLI for OpenWRT to provide conditions that customer base would experience. I'll compare my configuration to yours in detail and let you know if I can find anything to tweak.

Make a second interface @wan6.

Make that the MAP interface.

I would try to test this; but I have no way to set it up. MAP is not a common networking config, that's likely why there's few responses to this thread.

There are many small and medium ISPs who can not afford the increasing cost of IPv4 address space. The transition technologies these companies are looking at seems to be MAP-T and DS-Lite so that they can make the customer edge of their networks primarily IPv6. However CPE support is very poor. I think it's reasonable to expect this usecase to become more common in the near future

1 Like

Hey IIeachii, Arppegio,

I wanted to try a basic version of map-t CE, which is possible using manual configuration as well. Hence i do not want to try to use DHCPv6 as of now.
Also for some reason i feel that dhcpv6 is something an established mechanism to receive configs and other parameters.
There are chances that either one, dhcpv6 or map-t, might be having issues and i might be trying to chase a wrong goose, which i wanted to avoid keep the config simple as manual and keep dhcpv6 out for now.

IIeachii,

Do you mean to say to create two wan6 interfaces and assign different ip addresses on the interfaces, where one interface will be used by map-t and other for native ipv6 traffic? Please let me know. If my understanding is right, then do you suggest using the same interface “eth0.2” for both wan6 interfaces? Please let me know.

Arpeggio,
I think you are eager, as i’m, to test this feature as well.
Do you mind working together with me to solve these problem.? Please let me know.

Also do you think we/i missing any packages or tunnel related files, that im over looking?
Thanks

Hi All,
I was able to make MAP-T work with manual config and i was able to see the packet using packet capture.
Please see the config files (not able to attach pcap files to this thread).
hence attached the screen of the pcap output file here
Also i had capture "ubus call network.interface dump" output as well, but the capture does not fit in the 32k character limit that the forum allows, but you can get that output yourself from your setup, when you create a config file using the input shown below

.

root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr 28:C6:8E:8B:7E:B5  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2001:db8:12:3401::1/64 Scope:Global
          inet6 addr: fe80::2ac6:8eff:fe8b:7eb5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27858 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2389590 (2.2 MiB)  TX bytes:5235877 (4.9 MiB)

eth0      Link encap:Ethernet  HWaddr 28:C6:8E:8B:7E:B5  
          inet6 addr: fe80::2ac6:8eff:fe8b:7eb5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49556 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46405 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5160327 (4.9 MiB)  TX bytes:10799960 (10.2 MiB)
          Interrupt:30 

eth0.1    Link encap:Ethernet  HWaddr 28:C6:8E:8B:7E:B5  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27858 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2389590 (2.2 MiB)  TX bytes:5235877 (4.9 MiB)

eth0.2    Link encap:Ethernet  HWaddr 28:C6:8E:8B:7E:B5  
          inet6 addr: 2001:db8:12:3400::c000:212:34/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1225 errors:0 dropped:0 overruns:0 frame:0
          TX packets:765 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:251338 (245.4 KiB)  TX bytes:72054 (70.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1947 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:183279 (178.9 KiB)  TX bytes:183279 (178.9 KiB)

map-WAN_MAP Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: fe80::c7b6:da50:74b0:152e/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:16384  Metric:1
          RX packets:67 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3220 (3.1 KiB)  TX bytes:4560 (4.4 KiB)

wlan0     Link encap:Ethernet  HWaddr 28:C6:8E:8B:7E:B4  
          inet6 addr: fe80::2ac6:8eff:fe8b:7eb4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3451 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:405566 (396.0 KiB)

root@OpenWrt:~# more /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd42:3cee:954f::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6addr '2001:db8:0012:3401::1/64'

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'static'
        option ipaddr '10.0.0.4'
        option netmask '255.255.255.0'
        option gateway '10.0.0.1'
        option broadcast '10.0.0.255'
        option dns '75.75.75.75 75.75.76.76'
        option auto '0'

config device 'wan_dev'
        option name 'eth0.2'
        option macaddr '28:C6:8E:8B:7E:B5'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'static'
        option ip6prefix '2001:db8:0012:3400::/56'
        option ip6addr '2001:db8:0012:3400:0000:c000:0212:0034/64'
        option ip6gw '2001:db8:0012:3400:3e61:4ff:fe96:f386'

config switch
        option name 'eth0.2'
        option macaddr '28:C6:8E:8B:7E:B5'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'static'
        option ip6prefix '2001:db8:0012:3400::/56'
        option ip6addr '2001:db8:0012:3400:0000:c000:0212:0034/64'
        option ip6gw '2001:db8:0012:3400:3e61:4ff:fe96:f386'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 5t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '4 5t'

config interface 'WAN_MAP'
        option proto 'map'
        option ip4prefixlen '24'
        option ip6prefixlen '40'
        option ealen '16'
        option psidlen '8'
        option offset '6'
        option type 'map-t'
        option ipaddr '192.0.2.0'
        list tunlink 'wan6'
        option peeraddr '2001:0db8:ffff:0000::/64'
        option ip6prefix '2001:0db8:0000::'


~

root@OpenWrt:~# route -A inet
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 map-WAN_MAP
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
root@OpenWrt:~# route -A inet6
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
2001:db8:12:3400::c000:212:34/128           ::                                      U     1024   1        0 map-WAN_MAP
2001:db8:12:3400::/64                       ::                                      U     256    2        1 eth0.2  
2001:db8:12:3401::/64                       ::                                      U     256    3     8264 br-lan  
2001:db8:12:3400::/56                       ::                                      !n    2147483647 1        0 lo      
fd42:3cee:954f::/48                         ::                                      !n    2147483647 2       93 lo      
fe80::/64                                   ::                                      U     256    1        0 eth0    
fe80::/64                                   ::                                      U     256    1        0 wlan0   
fe80::/64                                   ::                                      U     256    3        7 br-lan  
fe80::/64                                   ::                                      U     256    1        0 eth0.2  
fe80::/64                                   ::                                      U     256    1        0 map-WAN_MAP
::/0                                        2001:db8:12:3400:3e61:4ff:fe96:f386     UG    1024   1        0 eth0.2  
::/0                                        ::                                      !n    -1     1    11324 lo      
::1/128                                     ::                                      Un    0      4       88 lo      
2001:db8:12:3400::/128                      ::                                      Un    0      2        0 eth0.2  
2001:db8:12:3400::c000:212:34/128           ::                                      Un    0      2        0 eth0.2  
2001:db8:12:3401::/128                      ::                                      Un    0      2        0 br-lan  
2001:db8:12:3401::1/128                     ::                                      Un    0      4     8349 br-lan  
fe80::/128                                  ::                                      Un    0      2        0 eth0    
fe80::/128                                  ::                                      Un    0      2        0 wlan0   
fe80::/128                                  ::                                      Un    0      2        0 br-lan  
fe80::/128                                  ::                                      Un    0      2        0 eth0.2  
fe80::/128                                  ::                                      Un    0      2        0 map-WAN_MAP
fe80::248a:424a:275:5e0/128                 ::                                      Un    0      2        0 map-WAN_MAP
fe80::2ac6:8eff:fe8b:7eb4/128               ::                                      Un    0      2        0 wlan0   
fe80::2ac6:8eff:fe8b:7eb5/128               ::                                      Un    0      2        0 eth0    
fe80::2ac6:8eff:fe8b:7eb5/128               ::                                      Un    0      3      220 br-lan  
fe80::2ac6:8eff:fe8b:7eb5/128               ::                                      Un    0      2        0 eth0.2  
ff00::/8                                    ::                                      U     256    1        0 eth0    
ff00::/8                                    ::                                      U     256    1        0 wlan0   
ff00::/8                                    ::                                      U     256    3      534 br-lan  
ff00::/8                                    ::                                      U     256    1        0 eth0.2  
ff00::/8                                    ::                                      U     256    1        0 map-WAN_MAP
::/0                                        ::                                      !n    -1     1    11324 lo      



2 Likes

Hi gudumbamallesh,
Could you please share the steps you followed to get MAP-T working with manual config ?
Thanks

I have install a MAP-T test environment after reading you're on comments / mail thread on openwrt. I'm using a dhcpv6 server to configure the MAP-T CE devices and are able to ping the outside world from behind the MAP-T CE box. However communications using TCP seems to be a problem and I suspect a bug. The Clients are able to send DNS query to a DNS Caching Server configured on the DHCPv6 Server and get a reply via the caching server on the DNSMasq daemon on the MAP-T CE but when the client send a http seq packet something is broken in the communication. Are you aware of this? Is this a know bug in the map-t package ?

Hi gudumbamallesh,

Could you please share the steps you followed to get MAP-T working with manual config ?

Thanks