Есть Cisco 871 12.4(15)T6 - 192.168.0.1/24, 10.0.0.1
Есть WEB-сервер - 192.168.0.2/24
Есть клиентская машина - 192.168.0.100/24http://img-fotki.yandex.ru/get/5908/drtr0jan.0/0_72be9_4a72d...
Необходимо, что бы при запросе с клиентской машины адреса http://10.0.0.1 открывался собственно сайт с этого сервера.
На кошке проброшен снаружи 80ый порт для web-сервера:
ip nat inside source static tcp 192.168.0.2 80 10.0.0.1 80 extendable no-payloadВключён PAT для выхода клиентских машин в инет:
interface FastEthernet4.82
description TTK-DV
encapsulation dot1Q 82
ip address 10.0.0.1 255.255.255.252
ip nat outside
ip virtual-reassembly
no cdp enable
!
interface Vlan1
description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip nat inside source route-map NAT-TTK interface FastEthernet4.82 overload
!
access-list 8 remark NAT
access-list 8 permit 192.168.0.0 0.0.0.255
!
route-map NAT-TTK permit 10
match ip address 8
match interface FastEthernet4.82В этой конфигурации 10.0.0.1:80 из внутрисети не открывается. :(
DNS ALG и Bind view не предлагать.
Нат отрабатывает при прохождении пакета через пару интерфейсов - в вашем случае это не так, поэтому нат не работает.Я сталкивалась с похожей задачей, описание решения есть вот тут вот:http://www.opennet.me/openforum/vsluhforumID6/20807.html?n=g...
Ага, спасибо. Правда не очень понял без рисунка - пять раз перечитал.
Но у меня что-то с NVI (ip nat enable) вообще PAT не работает.
1) короче вам нужно создать route-map который перенаправит на другой next-hop 192.168.0.2 при обращении на 10.0.0.1:80 tcp2) на сервере с web-сервером обязательно поднять альясом 10.0.0.1 и чтобы на этом адресе тоже слушал вебсервер - т.к. пакет придёт именно по этому адресу от клиента и если его не будет на L3-уровне он будет отброшен даже не дойдя по web-уровня.
вроде всё.
> 1) короче вам нужно создать route-map который перенаправит на другой next-hop 192.168.0.2
> при обращении на 10.0.0.1:80 tcpЧто-то не работает route-map. На 192.168.0.2 пакеты так и не приходят (tcpdump'ом слушаю).
interface Vlan1
description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
ip address 192.168.0.1 255.255.255.0
ip nat inside
ip virtual-reassembly
ip policy route-map TUN-TO-NAT
!
access-list 131 permit ip any host 10.0.0.1
!
route-map TUN-TO-NAT permit 10
match ip address 131
set ip next-hop 192.168.0.2Единственное, что на сервере с web-сервером поднял альясом 10.0.0.1/32. Но маска, как понял, не должна иметь значения.
да маска не должна играть роли - это правда.Внешне вроде всё в конфиге route=map корректно - если я ничего не напутал.
Первое что надо сделать - это глянуть а access-list что-нить вообще попадает?
там что-то будет в духе:
show access-list 131
> Первое что надо сделать - это глянуть а access-list что-нить вообще попадает?
> там что-то будет в духе:
> show access-list 131Попадает...
Extended IP access list 131
10 permit ip any host 10.0.0.1 (3 matches)Это само-собой при обращении 192.168.0.100 -> 10.0.0.1:80
Но что забавно, при пинге 192.168.0.100 -> 10.0.0.1 отвечает именно циска, а не сервер (192.168.0.2).
Route-map и не отрабатывает:
cisco#sh route-map TUN-TO-NAT
route-map TUN-TO-NAT, permit, sequence 10
Match clauses:
ip address (access-lists): 131
Set clauses:
ip next-hop 192.168.0.2
Policy routing matches: 0 packets, 0 bytes
мне кажется(это предположение) что косяк в том что адрес 10.0.0.1 висит на loopback-е короче самой циски. Т.е. обработка роутинг собственных адресов идёт до обработки route-map-ы. Попробуйте поменять адрес на outside на другой(временно) и посмотрим сработает ли в этом случае route-map-а.Роутинг на собственные адреса идёт типа через process switching и вполне может быть что имеет приоритет над route-map. Но я не уверен честно говоря.
Да понятно, что косяк по этой причине. Собственно, смена outside адреса это доказала - всё прекрасно работает.
Но как этот косяк устранить?
Порядок прохождения пакетов: http://etherealmind.com/cisco-ios-order-of-operation/Пытался повесить правило на локальный PBR:
ip local policy route-map TTK-DATA
!
route-map TTK-DATA permit 5
match ip address 131
set ip next-hop 192.168.0.2
!
access-list 131 permit tcp host 192.168.0.100 host 10.0.0.1 eq wwwТож не работает. :(
ну как бы логика порядка отработки уже зашита в IOS самом - её нельзя поменять. Можно только какие-то обходные пути использовать - как-то смена адреса на outside. Или изменение условий задачи.