Добрый день.
Имеем вот такую схему:
http://img839.imageshack.us/img839/6610/bb4eqgqbeaemaqybdsenqq9.png PIX-525, Software Version 7.2(3)
Должно быть: два маршрутизатора (R2,R3) обращаясь телнетом(как пример) из внешней сети на PIX (на два разных адреса (172.16.1.11 для R2 и 172.16.1.12 для R3)) оба должны попадать на маршрутизатор (R1) находящийся во внутренней сети, причем попадать на один и тот же адрес.
PIX
Код:
!
interface Ethernet0
nameif inside
security-level 100
ip address 192.168.1.2 255.255.255.0
!
interface Ethernet1
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
access-list NAT1 extended permit ip host 192.168.1.1 host 172.16.1.2
access-list NAT2 extended permit ip host 192.168.1.1 host 172.16.1.3
access-list TEST extended permit ip any any
static (inside,outside) 172.16.1.11 access-list NAT1
static (inside,outside) 172.16.1.12 access-list NAT2
access-group TEST in interface outside
Далее с R2 и R3 пробуем зайти на R1:
Код:
R2#telnet 172.16.1.11
Trying 172.16.1.11 ... Open
User Access Verification
Username: admin
Password:
R1>
R3# telnet 172.16.1.11
Trying 172.16.1.11 ... Open
User Access Verification
Username: admin
Password:
R1>
Как видим с R3 также есть доступ хотя по 172.16.1.11 быть его не должно, смотрим packet-tracer, обращаем внимание на Phase: 2 и 6
Код:
pix-test(config-if)# packet-tracer input outside tcp 172.16.1.3 telnet 172.16.1.11 telnet detailed
Phase: 1
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found no matching flow, creating a new flow
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
static (inside,outside) 172.16.1.11 access-list NAT1
match ip inside host 192.168.1.1 outside host 172.16.1.2
static translation to 172.16.1.11
translate_hits = 0, untranslate_hits = 4
Additional Information:
NAT divert to egress interface inside
Untranslate 172.16.1.11/0 to 192.168.1.1/0 using netmask 255.255.255.255
Phase: 3
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group TEST in interface outside
access-list TEST extended permit ip any any
Additional Information:
Forward Flow based lookup yields rule:
in id=0x391b5c8, priority=12, domain=permit, deny=false
hits=4, user_data=0x391b588, cs_id=0x0, flags=0x0, protocol=0
src ip=0.0.0.0, mask=0.0.0.0, port=0
dst ip=0.0.0.0, mask=0.0.0.0, port=0
Phase: 4
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
in id=0x3936fa0, priority=0, domain=permit-ip-option, deny=true
hits=4, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
src ip=0.0.0.0, mask=0.0.0.0, port=0
dst ip=0.0.0.0, mask=0.0.0.0, port=0
Phase: 5
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
static (inside,outside) 172.16.1.12 access-list NAT2
match ip inside host 192.168.1.1 outside host 172.16.1.3
static translation to 172.16.1.12
translate_hits = 0, untranslate_hits = 1
Additional Information:
Forward Flow based lookup yields rule:
out id=0x391b0e8, priority=5, domain=nat-reverse, deny=false
hits=2, user_data=0x391ae08, cs_id=0x0, flags=0x0, protocol=0
src ip=172.16.1.3, mask=255.255.255.255, port=0
dst ip=192.168.1.1, mask=255.255.255.255, port=0
Phase: 6
Type: NAT
Subtype: host-limits
Result: ALLOW
Config:
static (inside,outside) 172.16.1.11 access-list NAT1
match ip inside host 192.168.1.1 outside host 172.16.1.2
static translation to 172.16.1.11
translate_hits = 0, untranslate_hits = 4
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x391a9e0, priority=5, domain=host, deny=false
hits=9, user_data=0x391a458, cs_id=0x0, reverse, flags=0x0, protocol=0
src ip=192.168.1.1, mask=255.255.255.255, port=0
dst ip=0.0.0.0, mask=0.0.0.0, port=0
Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x390fc00, priority=0, domain=permit-ip-option, deny=true
hits=4, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0
src ip=0.0.0.0, mask=0.0.0.0, port=0
dst ip=0.0.0.0, mask=0.0.0.0, port=0
Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 4, packet dispatched to next module
Module information for forward flow ...
snp_fp_inspect_ip_options
snp_fp_tcp_normalizer
snp_fp_translate
snp_fp_adjacency
snp_fp_fragment
snp_fp_tracer_drop
snp_ifc_stat
Module information for reverse flow ...
snp_fp_inspect_ip_options
snp_fp_translate
snp_fp_tcp_normalizer
snp_fp_adjacency
snp_fp_fragment
snp_fp_tracer_drop
snp_ifc_stat
Phase: 9
Type: ROUTE-LOOKUP
Subtype: output and adjacency
Result: ALLOW
Config:
Additional Information:
found next-hop 192.168.1.1 using egress ifc inside
adjacency Active
next-hop mac address ca00.17d0.0000 hits 76
Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: allow
Понятно что acl TEST можно сделать более конкретным и все будет работать как надо, но поставлено условие: acl TEST должен быть максимально общим
Вобщем вопрос в следующем: почему так происходит, ведь тип транслируемого трафика явно указан и как это побороть при условии, что отфильтровать входящий трафик с помощью ACL мы не можем.