diff options
author | Tetsuya Murakami <tetsuya.mrk@gmail.com> | 2019-11-06 11:05:51 -0800 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2019-11-19 07:02:40 +0000 |
commit | 1b81e6ef66cbce15ba1b05904732f92251d531cd (patch) | |
tree | 114135a6f83405d4883bcb37f1c362051944831a /src/plugins/srv6-mobile/extra/README.md | |
parent | 360b523b52a91bd0d1d7de1247141367c484d70f (diff) |
srv6-mobile
Type: feature
Plug-in for IPv6 Segment Routing Mobile
This funcion was developed by
Signed-off-by: Satoru Matsuchima <satoru.matsushima@gmail.com>
Signed-off-by: Filip Varga <filipvarga89@gmail.com>
Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com>
Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com>
Change-Id: Ie995adc73d8f8d444339aab71619c3599e69f12d
Signed-off-by: Tetsuya Murakami <tetsuya.mrk@gmail.com>
Diffstat (limited to 'src/plugins/srv6-mobile/extra/README.md')
-rw-r--r-- | src/plugins/srv6-mobile/extra/README.md | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/plugins/srv6-mobile/extra/README.md b/src/plugins/srv6-mobile/extra/README.md new file mode 100644 index 00000000000..3b24dea6fd6 --- /dev/null +++ b/src/plugins/srv6-mobile/extra/README.md @@ -0,0 +1,173 @@ +# What's `runner.py` doing? + +## Common configurations + +### VPP1 +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::1/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A1::2 +``` + + +### VPP2 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A2::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth2 A2::2 +``` + + +### VPP3 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A2::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A3::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth1 A2::1 +``` + +### VPP4 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A3::2/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A3::1 +``` + + +## Drop-in for GTP-U over IPv4 + +What's happened when you run `test tmap`: + + $ ./runner.py test tmap + + +Setting up a virtual interface of packet generator: + +#### VPP1 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:01 +set int ip addr pg0 172.16.0.1/30 +set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 +``` + +#### VPP4 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:11 +set int ip addr pg0 1.0.0.2/30 +set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 +``` + +SRv6 and IP routing settings: + +#### VPP1 + +``` +sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 +sr steer l3 172.20.0.1/32 via bsid D1:: + +``` + +#### VPP2 + +``` +sr localsid address D2:: behavior end +ip route add D3::/128 via host-eth2 A2::2 +``` + +#### VPP3 + +``` +sr localsid address D3:: behavior end +ip route add D4::/32 via host-eth2 A3::2 +``` + +#### VPP4 + +``` +sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 +ip route add 172.20.0.1/32 via pg0 1.0.0.1 +``` + + + + +## Packet generator and testing + + Example how to build custom SRv6 packet in scapy and ipaddress pkgs + + s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 + ip6 = IPv6Address(s) + IPv6(dst=ip6, src=ip6) + + +## end.m.gtp4.e + + First set behavior so our localsid node is called with the packet + matching C1::1 in fib table + sr localsid address C1::1 behavior end.m.gtp4.ess + + show sr localsids behaviors + show sr localsid + + We should send a well formated packet to C::1 destination address + that contains the correct spec as for end.m.gtp4.e with encapsulated + ipv4 src and dst address and teid with port for the conversion to + GTPU IPv4 packet + + +## additional commands + + gdb - breakpoint + + break sr_policy_rewrite.c:1620 + + break src/plugins/srv6-end/node.c:84 + + TMAP + Linux: + + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip addr add 172.20.0.2/24 dev tmp2 + + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 172.20.0.1/24 + set interface state host-tmp1 up + + VPP + set sr encaps source addr C1:: + sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 + sr steer l3 172.21.0.0/24 via bsid d1::999:2 + + END + Linux + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 A1::1/64 + set interface state host-tmp1 up + + VPP + sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e + + trace add af-packet-input 10 + + sr localsid address C3:: behavior end.m.gtp4.e + sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e |