...
| draw.io Board Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | Untitled Diagram-1775555063614 |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 1559 |
|---|
| height | 125 |
|---|
| revision | 2 |
|---|
|
Configuration
Customer Edge: Enable/Disable MAPT feature with below distro's from build
DISTRO_FEATURES_append = " feature_mapt"
DISTRO_FEATURES_append = " nat46"
Border Relay: Setup done in ubuntu machine ( linux kernel 5.15 )
...
- Build the jool modules using below build instructions
| Code Block |
|---|
|
sudo apt update
sudo apt upgrade
sudo apt install build-essential pkg-config
sudo wget https://github.com/NICMx/Jool/releases/download/v4.2.0-rc2/jool-4.2.0.rc2.tar.gz
sudo tar -xzf jool-4.2.0.rc2.tar.gz
sudo /sbin/dkms install jool-4.2.0.rc2/
cd jool-4.2.0.rc2/
sudo ./configure
sudo make
sudo make install |
- Once build completed, below modules will be generated in respective paths, add those modules to kernel path
| Code Block |
|---|
|
ubuntu:~/jool-4.2.0~rc2$ find . -iname jool*ko
./src/mod/mapt/jool_mapt.ko
./src/mod/common/jool_common.ko
./src/mod/nat64/jool.ko
/src/mod/siit/jool_siit.ko |
| Code Block |
|---|
|
sudo modprobe jool_common
sudo modprobe jool_mapt
sudo modprobe jool
Enable below modules as well if not enabled
netfilter/nf_defrag_ipv4.ko
netfilter/nf_defrag_ipv6.ko |
- Once all modules are loaded and confirmed via lsmod
| Expand |
|---|
|
ubuntu:~/ lsmod | grep jool* jool_mapt 20480 0 jool_common 253952 1 jool_mapt nf_defrag_ipv6 24576 3 nf_conntrack,openvswitch,jool_mapt nf_defrag_ipv4 16384 2 nf_conntrack,jool_mapt x_tables 53248 9 xt_conntrack,nft_compat,xt_state,xt_tcpudp,xt_addrtype,xt_nat,ip_tables,xt_MASQUERADE,jool_mapt |
- Create an instance BR
| Code Block |
|---|
| title | BR instance creation |
|---|
|
sudo jool_mapt instance add "BR" --netfilter --dmr 64:ff9b::/64
sudo jool_mapt -i "BR" fmrt add 2001:558:6013::/48 192.168.20.0/24 8 8
sudo jool_mapt -i "BR" global update map-t-type BR |
View the created instance using:
| Code Block |
|---|
|
akhil@CHTSL00399:~$ sudo jool_mapt -i BR fmrt display
+---------------------------------------------+--------------------+----------------+----+
| IPv6 Prefix | IPv4 Prefix | EA-bits Length | a |
+---------------------------------------------+--------------------+----------------+----+
| 2001:558:6013::/48 | 192.168.20.0/24 | 16 | 6 |
+---------------------------------------------+--------------------+----------------+----+
akhil@CHTSL00399:~$ sudo jool_mapt instance display
+--------------------+-----------------+-----------+
| Namespace | Name | Framework |
+--------------------+-----------------+-----------+
| 89628c00 | BR | netfilter |
+--------------------+-----------------+-----------+
akhil@CHTSL00399:~$ |
Enable dubbing for jool using sudo jool_mapt -i BR global update logging-debug true
cat /var/log/syslog
- Make changes in BR setup to make ping and internet work
- Adding traffic control because iptables POSTROUTING (where MASQUERADE/SNAT stays) is never reached. When a traffic comes back before deNAT jool occupies the traffic. Since BR is behind a NAT with a private IP, outgoing packets have source 192.168.20.x which the upstream can't route back
| Code Block |
|---|
|
sudo ip addr add 192.168.20.1/24 dev lo
sudo tc qdisc add dev wlan0 root handle 1: prio
sudo tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 \
match ip src 192.168.20.0/24 \
action pedit ex munge ip src set 10.68.245.229 pipe \
action csum ip4h icmp
sudo tc qdisc add dev wlan0 handle ffff: ingress
sudo tc filter add dev wlan0 parent ffff: protocol ip prio 1 u32 \
match ip protocol 1 0xff \
match u8 0 0xff at 20 \
action pedit ex munge ip dst set 192.168.20.1 pipe \
action csum ip4h icmp
ip route get 8.8.8.8 from 192.168.20.1 |
- Check tcpdump for wan interface and downlink interface which is connected to CE, will be able to see request and reply from upstream.
- Connectivity test updated below
Customer Edge: Enable/Disable MAPT feature with below distro's from build
DISTRO_FEATURES_append = " feature_mapt"
DISTRO_FEATURES_append = " nat46"
Enable MAPT in BPI using the mapt rfc datatmodel
| Code Block |
|---|
|
root@Filogic-GW:~# dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.MAP-T.Enable
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
Execution succeed.
Parameter 1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.MAP-T.Enable
type: bool, value: true |
Check map0 interface created and erouter0 should have only IPv6 addr
| Code Block |
|---|
|
root@Filogic-GW:~# ifconfig map0
map0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: fe80::c534:91eb:b45d:b579/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:123 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5161 (5.0 KiB) TX bytes:0 (0.0 B)
root@Filogic-GW:~# ifconfig erouter0
erouter0 Link encap:Ethernet HWaddr 02:01:00:39:58:64
inet6 addr: 2001:558:6013:100::175f/128 Scope:Global
inet6 addr: fe80::1:ff:fe39:5864/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:637 errors:0 dropped:0 overruns:0 frame:0
TX packets:599 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:105610 (103.1 KiB) TX bytes:105608 (103.1 KiB)
root@Filogic-GW:~# |
Test Results
Ping and Internet should work in CE and connected clients
...