[j-nsp] Load Balancing on 2x MSPIC 100 for NAT

Artur Makutunowicz artur at makutunowicz.net
Sat Jan 14 17:20:24 EST 2012


On Thursday 12 of January 2012 21:50:14 Pajlatek wrote:
> Hi
> I  am  searching for any one that is using more than 1 MSPIC 100 in M-
> routers  (M10i or M7i) and does a load-balance between them to get the
> additional thruoutput over 1Gb/s
> 
I'm not sure if it's going to work on M10i/M7i but it should help you to find a 
solution.

Let's assume you have MX router with a MS-DPC (fpc 2) and you have to configure 
NAPT-44 between internal network (10.100/16) and the Internet. Topology: 
http://makutunowicz.net/download/cgn_scenario.png

How to configure it?
1) Enable layer-3 services on each PIC (MS-DPC has two NPUs: one at PIC0 and 
the other at PIC1).
set chassis fpc 2 pic 0 adaptive-services service-package layer-3
set chassis fpc 2 pic 1 adaptive-services service-package layer-3

2) Configure sp- interfaces:
set interfaces sp-2/0/0 unit 0 family inet
set interfaces sp-2/0/0 services-options cgn-pic
set interfaces sp-2/1/0 unit 0 family inet
set interfaces sp-2/1/0 services-options cgn-pic

Note that cgn-pic was introduced in Junos 11.2 and may work on MX with MS-DPC 
only.

3) Create 2 service-sets with proper sp- interfaces attached. 

set services service-set SS_PART1 nat-rules NAT_RULE_1
set services service-set SS_PART1 interface-service service-interface sp-2/0/0
set services service-set SS_PART2 nat-rules NAT_RULE_2
set services service-set SS_PART2 interface-service service-interface sp-2/1/0

4) Apply service-sets to the internal interface. You also have to manually 
distribute incoming packets to PICs for processing, eg. half of the internal 
network is processed by sp-2/0/0 and the other by sp-2/1/0 (that's why the 
service filters are necessary).

set interfaces ge-0/0/0 unit 0 family inet address 10.100.0.1/16
set interfaces ge-0/0/1 unit 0 family inet address  192.168.0.1/24
set interfaces ge-0/0/0 unit 0 family inet service input service-set SS_PART1 
service-filter SS_PART1_FILTER
set interfaces ge-0/0/0 unit 0 family inet service input service-set SS_PART2 
service-filter SS_PART2_FILTER
set interfaces ge-0/0/0 unit 0 family inet service output service-set SS_PART2 
service-filter SS_PART2_FILTER
set interfaces ge-0/0/0 unit 0 family inet service output service-set SS_PART1 
service-filter SS_PART1_FILTER

5) Create the service-filters:

set firewall family inet service-filter SS_PART1_FILTER term part1 from source-
address 10.100.0.0/17
set firewall family inet service-filter SS_PART1_FILTER term part1 then service
set firewall family inet service-filter SS_PART1_FILTER term default then skip
set firewall family inet service-filter SS_PART2_FILTER term part2 from source-
address 10.100.128.0/17
set firewall family inet service-filter SS_PART2_FILTER term part2 then service
set firewall family inet service-filter SS_PART2_FILTER term default then skip

6) Create the NAT pools (one pool for 10.100/17 and the other for 
10.100.128/17):

set services nat pool POOL_PART1 address 192.168.100.0/24
set services nat pool POOL_PART1 port automatic
set services nat pool POOL_PART2 address 192.168.200.0/24
set services nat pool POOL_PART2 port automatic

7) Create the NAT rules:

set services nat rule NAT_RULE_1 match-direction input
set services nat rule NAT_RULE_1 term part1 from source-address 10.100.0.0/17
set services nat rule NAT_RULE_1 term part1 then translated source-pool 
POOL_PART1
set services nat rule NAT_RULE_1 term part1 then translated translation-type 
napt-44
set services nat rule NAT_RULE_2 match-direction input
set services nat rule NAT_RULE_2 term part2 from source-address 
10.100.128.0/17
set services nat rule NAT_RULE_2 term part2 then translated source-pool 
POOL_PART2
set services nat rule NAT_RULE_2 term part2 then translated translation-type 
napt-44

napt-44 translation type was introduced in Junos 11.2. If you have Junos 
version < 11.2, set translation type to "source dynamic".

To summarize:
When a user with IP 10.100.0.100 wants to access the Internet, it hits 
ge-0/0/0 interface, matches SS_PART1_FILTER so SS_PART1 service set is 
applied. He's translated to the IP from pool 192.168.100.0/24 (by NAT_RULE_1) 
using sp-2/0/0 interface.

Of course the load balancing method is going to work if IP address assignment 
follows uniform distribution. However, you can be more granular in the service 
filters (eg. split all the internal address space to several /24 slices).

Hope it's helpful.

Best regards,
Artur


More information about the juniper-nsp mailing list