NAT44: endpoint dependent mode (VPP-1273)

To enable NAT plugin endpoint dependent mode add following to statrup config:
nat { endpoint-dependent }

Enable endpoint dependent filtering and mapping for all sessions.
Move some existing functionality such as service load balancing, twice nat,
out2in-only static mappings and unknown protocol dynamic translations, which
use endpoint dependent lookup hash tables before. Basically split to vanilla
NAT44 and extra features NAT44.

Change-Id: I3925eb5ddcc8f1ec4cf6af4e2a618a7ec7aa9735
Signed-off-by: Matus Fabian <matfabia@cisco.com>
This commit is contained in:
Matus Fabian
2018-06-13 05:39:07 -07:00
committed by Ole Trøan
parent e43832c7e7
commit a6110b6ea5
10 changed files with 4608 additions and 2394 deletions

48
src/scripts/vnet/nat44_lb Normal file
View File

@ -0,0 +1,48 @@
create packet-generator interface pg0
create packet-generator interface pg1
packet-generator new {
name f1
limit 1000000
node ip4-input
size 64-64
no-recycle
worker 0
interface pg1
data {
UDP: 172.16.1.11 -> 172.16.1.3
UDP: 3001 -> 3000
length 128 checksum 0 incrementing 1
}
}
packet-generator new {
name f2
limit 1000000
node ip4-input
size 64-64
no-recycle
worker 1
interface pg1
data {
UDP: 172.16.1.10 -> 172.16.1.3
UDP: 3001 -> 3000
length 128 checksum 0 incrementing 1
}
}
nat44 add address 172.16.1.3
nat44 add load-balancing static mapping protocol udp external 172.16.1.3:3000 local 10.0.0.10:30000 probability 25 local 10.0.0.11:30000 probability 25 local 10.0.0.12:30000 probability 25 local 10.0.0.13:30000 probability 25
set int ip address pg0 10.0.0.1/24
set int ip address pg1 172.16.1.1/24
set int state pg0 up
set int state pg1 up
set ip arp static pg0 10.0.0.10 abcd.abcd.abcd
set ip arp static pg0 10.0.0.11 abcd.abcd.abce
set ip arp static pg0 10.0.0.12 abce.abcd.abcd
set ip arp static pg0 10.0.0.13 abce.abcd.abce
set ip arp static pg1 172.16.1.10 cdef.abcd.abcd
set ip arp static pg1 172.16.1.11 cdef.abcd.abce
set int nat44 in pg0 out pg1
trace add pg-input 10

View File

@ -33,7 +33,7 @@ packet-generator new {
}
nat44 add address 172.16.1.3
nat44 add static mapping local 10.0.0.3 3000 external 172.16.1.3 3000
nat44 add static mapping udp local 10.0.0.3 3000 external 172.16.1.3 3000
set int ip address pg0 10.0.0.1/24
set int ip address pg1 172.16.1.1/24
set int state pg0 up