>[оверквотинг удален]
> no ip proxy-arp
> ip nat inside
> ip virtual-reassembly
> ip route-cache flow
> ip tcp adjust-mss 1452
>
>
>Таблица маршрутизации явно ни причем,т.к. все это кискины интерфейсы и никаких static(кроме
>default,он кстати стоит на FastEthernet4), ospf,eigrp итд не имеется.Да и доступа
>сейчас на нее нет. вообще вам стоит для нат написать расширенный список доступа и для тех сетей которые попадают под тунель запретить их в данном списке! просто када пакет уходит с вашей машины находящейся в сети то он с разу начинает натиться! из данного примера думаю будет понятно
VPN solutions
IP Tunnel Cisco<->FreeBSD
В этом разделе описано как поднять простой туннель без шифрования между Cisco и FreeBSD
Исходные данные:
с одной стороны:
Cisco2620 с серийным интерфейсом, подключенным к провайдеру, и Ethernet, смотрящим в локальную сеть (IOS (tm) C2600 Software (C2600-IK9S-M), Version 12.2(13), RELEASE SOFTWARE (fc1))
внутренняя сеть 10.0.101.0/24, внешний адрес А.А.А.А
с другой стороны:
FreeBSD 4.7-RELEASE
внутренняя сеть 192.168.30.0/24, внешний адрес B.B.B.B
для организации тунеля создадим на каждой стороне по дополнительному тунельному устройству, то есть выделим сеть 192.168.40.0/255.255.255.252 для этих целей. У этой сети может быть только 2 хоста, собственно то что нам и нужно. И к тому же адреса из этой сети не должны перекрываться адресами локальных сетей сторон.
Итак, конфигурируем:
На Cisco:
interface Tunnel0
description VPN_To_FreeBSD
ip address 192.168.40.2 255.255.255.252
tunnel source Serial0/0.16
tunnel destination B.B.B.B
tunnel mode ipip
!
interface FastEthernet0/0
description LAN
ip address 10.0.101.220 255.255.255.0
ip nat inside
no ip route-cache
no ip mroute-cache
!
interface Serial0/0
no ip address
encapsulation frame-relay
no ip mroute-cache
!
interface Serial0/0.16 point-to-point
description Internet channel to ISP
ip address A.A.A.A 255.255.255.252
ip nat outside
no ip mroute-cache
frame-relay interface-dlci 16 CISCO
ip nat pool POOL-DNAT A.A.A.A A.A.A.A netmask 255.255.255.248
ip nat inside source list ACL-DNAT-Access pool POOL-DNAT overload
ip access-list extended ACL-DNAT-Access
deny ip 10.0.101.0 0.0.0.255 10.0.101.0 0.0.0.255
deny ip 10.0.101.0 0.0.0.255 192.168.30.0 0.0.0.255
permit ip 10.0.101.0 0.0.0.255 any
!
ip route 192.168.30.0 255.255.255.0 192.168.40.1
обратите внимание на то, что кроме тунеля на Cisco еще сконфигурирован NAT, поэтому в его конфигурации нужно отключить преобразование адресов локальной сети при обращении к удаленной стороне
Теперь конфигурируем FreeBSD
Проверяем, что в ядро встроена поддержка gif устройств (pseudo-device gif), если нет, включаем ее
из коммандной строки можно сконфигурировать вот так:
ifconfig gif1 create
gifconfig gif1 B.B.B.B A.A.A.A - "реальные адреса сторон"
ifconfig gif1 inet 192.168.40.1 192.168.40.2 netmask 255.255.255.252 - "поднимаем тунель"
route add -net 10.0.101.0 -netmask 255.255.255.0 192.168.40.2 - "говорим что пакеты на сеть партнера направлять на тунельный интерфейс удаленной стороны"
собственно все ;-)
если работает, то можно все это прописать в /etc/rc.conf
gif_interfaces="gif1 gif2" - сколько Вам нужно тунелей
gifconfig_gif1="B.B.B.B A.A.A.A"
ifconfig_gif1="inet 192.168.40.1 192.168.40.2 netmask 0xfffffffc"
ну и поднимаем маршрут
в /usr/local/etc/gated.conf пишем
static
{
10.0.101.0 mask 255.255.255.0 gateway 192.168.40.2;
};
все, перегружаемся и чувствуем себя героем ;-)
GRE IP Tunnel Cisco<->FreeBSD
Улучшим систему, подняв не ipip тунель, а gre между Cisco и FreeBSD
Для этого нужно на Юниксе загруить модуль if_gre.ko
В FreeBSD 5 этот модуль уже вмонтирован, можно просто выполнить команду kldload if_gre.ko
если у Вас более старая версия FreeBSD, то модуль нужно скомпилировать, исходники можно взять здесь
Итак, на Cisco нужно всего-лишь убрать строку
tunnel mode ipip
из конфигурации тунельного интерфейса, а на Юниксе видоизменим скрипт для поднятия тунеля.
В результате он будет выглядеть так:
#!/bin/sh
kldload if_gre.ko
ifconfig gre1 create
ifconfig gre1 tunnel B.B.B.B A.A.A.A
ifconfig gre1 inet 192.168.40.1 192.168.40.2 netmask 255.255.255.252
route add -net 10.0.101.0 -netmask 255.255.255.0 192.168.40.2
ну, и не забываем о маршруте
в /usr/local/etc/gated.conf пишем
static
{
10.0.101.0 mask 255.255.255.0 gateway 192.168.40.2;
};
все, удачи ;-)