Перейти к содержимому
Калькуляторы

Карточка Juniper MS-MIC-16G + NAPT+ PPPOE+ filtering и Грабли! Juniper routers + NAT

Есть интересная статья на хабре про NAT и juniper. Может кто то и читал http://habrahabr.ru/post/209298/

Все конечно интересно с точки зрения натрирования и есть перспективы натирования вместе с IPv6.

Но вот, когда дело до дела доходит и нужно нарезать скорость то обязательно вылазят какие-то "Грабли!".

 

Вот берем пример конфига динамического профайла , тут все в принципе срабатывает на ура

 

dynamic-profiles {

PPPOE-profile {

interfaces {

pp0 {

unit "$junos-interface-unit" {

ppp-options {

chap;

}

pppoe-options {

underlying-interface "$junos-underlying-interface";

server;

}

keepalives interval 30;

family inet {

filter {

input "$junos-input-filter";

output "$junos-output-filter";

}

 

}

unnumbered-address lo0.0;

}

}

}

}

}

}

 

firewall {

family inet {

filter INPUT-10M {

interface-specific;

term 10 {

then {

policer 10M;

accept;

}

}

}

 

filter OUTPUT-10M {

interface-specific;

term 10 {

then {

policer 10M;

accept;

}

}

}

 

policer 10M {

if-exceeding {

bandwidth-limit 10m;

burst-size-limit 100k;

}

then discard;

}

 

Абоненту выдаем адрес , накатываем фильтр , скорость шейпится в обе стороны нормально. Но мы усложним задачу , будем выдавать абоненту серые адреса и натить их для начала в пул реальных IPv4

 

dynamic-profiles {

PPPOE-profile {

interfaces {

pp0 {

unit "$junos-interface-unit" {

ppp-options {

chap;

}

pppoe-options {

underlying-interface "$junos-underlying-interface";

server;

}

keepalives interval 30;

family inet {

filter {

input "$junos-input-filter";

output "$junos-output-filter";

}

service {

input {

service-set NAT;

}

output {

service-set NAT;

}

}

unnumbered-address lo0.0;

}

}

}

}

}

}

 

И настройка сервиса NAT

 

services {

nat {

pool NAT-POOL {

address XXX.XXX.XXX.XXX/30;

port {

automatic {

random-allocation;

}

}

}

rule NAT-RULE1 {

match-direction input;

term 10 {

from {

source-address {

10.1.0.0/16;

}

}

then {

translated {

source-pool NAT-POOL;

translation-type {

napt-44;

}

}

}

}

}

}

service-set NAT {

nat-rules NAT-RULE1;

interface-service {

service-interface ms-0/2/0;

}

}

}

 

Пробуем шейпить и ...

#show firewall

 

Policers:

Name Bytes Packets

10M-10-pp0.1073741829-in 1467741 995

 

Filter: OUTPUT-10M-pp0.1073741829-out

Policers:

Name Bytes Packets

10M-10-pp0.1073741829-out 0 0

 

Видим, что уже трафик в по OUTPUT-10M не бегает. Но быть может манюал подсказывает что фильтры нужно цеплять на service как post-service-filter.

Но и тут сразу облом http://www.juniper.net/techpubs/en_US/junos13.3/topics/reference/configuration-statement/post-service-filter-edit-dynamic-profiles.html

На output не прицепишь и на pp0 не работает.

Вот и задаешься вопросом "шейпинга" это вообще возможно в таком случае ?

Изменено пользователем Star1609

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

фильтр такой же пытаюсь подсунуть INPUT-10M и OUTPUT-10M который описал в конфиге тут же чуть выше , в post-service-filter на input конфигурится но не сработатывает , теость сессия PPPoE вообще не подымается у абонента, в output собственно там где нам и нужно пост сервис фильтры в джуносе нет возможности применять

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще странно, фильтр на интерфейсе должен работать . На каком софте запускаете , если не секрет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как int подписчика в итоге выглядит в плане фильтров?

sh int .. extensive ?

 

а вообще зачем service как interface style

сделайте next-hop style, проще и удобнее будет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так настраивать NAT нельзя ни на циске, ни на джуне =)

Никто не вешает "ip nat inside" на Virtual-Template.

Ну и тоже самое верно для джуна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как int подписчика в итоге выглядит в плане фильтров?

sh int .. extensive ?

 

а вообще зачем service как interface style

сделайте next-hop style, проще и удобнее будет

 

admin> show interfaces pp0.1073741824 extensive

Logical interface pp0.1073741824 (Index 335) (SNMP ifIndex 539) (Generation 144)

Flags: Up Point-To-Point SNMP-Traps 0x0 Encapsulation: PPPoE

PPPoE:

State: SessionUp, Session ID: 1,

Session AC name: TENET_SERVER, Remote MAC address: 60:eb:69:5c:74:a5,

Underlying interface: ge-1/1/2.0 (Index 334)

Bandwidth: 1000mbps

Traffic statistics:

Input bytes : 54109

Output bytes : 13256

Input packets: 263

Output packets: 65

Local statistics:

Input bytes : 1391

Output bytes : 389

Input packets: 47

Output packets: 10

Transit statistics:

Input bytes : 52718 856 bps

Output bytes : 12867 0 bps

Input packets: 216 1 pps

Output packets: 55 0 pps

Keepalive settings: Interval 30 seconds, Up-count 1, Down-count 3

LCP state: Opened

NCP state: inet: Opened, inet6: Not-configured, iso: Not-configured, mpls: Not-configured

CHAP state: Success

PAP state: Closed

Protocol inet, MTU: 1480, Generation: 163, Route table: 0

Flags: Sendbcast-pkt-to-re

Input Filters: INPUT-10M-pp0.1073741824-in

Output Filters: OUTPUT-10M-pp0.1073741824-out

Addresses, Flags: Is-Primary

Destination: Unspecified, Local: 10.1.1.1, Broadcast: Unspecified, Generation: 144

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так настраивать NAT нельзя ни на циске, ни на джуне =)

Никто не вешает "ip nat inside" на Virtual-Template.

Ну и тоже самое верно для джуна.

 

Сделал nat через next hop но теперь проблема , pp0 интерфейс даже не подысатся в лог ничего не пишет

Пробую так :

PPPOE-test {

interfaces {

pp0 {

unit "$junos-interface-unit" {

ppp-options {

chap;

}

pppoe-options {

underlying-interface "$junos-underlying-interface";

server;

}

keepalives interval 30;

family inet {

filter {

input INPUT-NAT;

}

unnumbered-address lo0.0;

}

}

}

}

}

 

filter INPUT-NAT {

term 10 {

from {

source-address {

10.1.0.0/16;

}

}

then {

routing-instance NAT-VRF;

}

}

term 20 {

then accept;

}

}

 

Если у кого то заработала такая схема поделитесь информацией если не жалко

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Фильтр, используемый на динамическом интерфейсе, обязан быть interface-specific.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.