вторник, 9 октября 2018 г.

Перепечатка отсюда http://kickself.com/nastroyka-ehwic-4g-lte-g/

Настройка Cisco EHWIC-4G-LTE-G


 

Иногда я все же заставляю себя оставлять какие-то записи, дабы потом не забыть.
Итак, настройка 4G модуля от Cisco описана на сайте производителя, но как-то не всегда получается ее вбить так, чтобы сходу все заработало. Мне вот еще пришлось пообщаться с человеком по имени Аттила Совак из логова TAC в Кракове, кторому спасибо за быструю квалифицированную помощь.  В чудо-железку вставлена sim-карта известного LTE провайдера Yota, но, думается, и с другими все должно работать. Ну, собссно, по порядку:
1. Профиль с настройками под оператора, т.е. задаем APN (не заходя в режим глобальной конфигурации, т.е. не вводя #conf t):

cellular 0/0/0 lte profile create 1 yota.ru
Т.е. номер профиля «1», APN — «yota.ru», логин и пароль не указываем.
2. Рисуем скрипт дозвона, который, чтобы работал, должен выглядеть так:

chat-script LTE «» «AT!CALL» TIMEOUT 20 «OK»
3. Настраиваем сам «беспроводной интерфейс». У меня он вставлен в нулевой слот ISR 2911, посему имя у него cellular 0/0/0:

interface Cellular0/0/0
ip address negotiated
ip virtual-reassembly in
encapsulation slip
dialer in-band
dialer idle-timeout 0
dialer string LTE
dialer watch-group 1
async mode interactive
Тут все из мануала, кроме предпоследней строки с watch-group. Вместо этой строки можно использовать dialer-group, как в статье про такой же 3G модуль, тогда беспроводной интерфейс будет подниматься тогда, когда через него проходит «интересный» трафик. Если трафика нет — интерфейс будет лежать. В моем случае этот вариант не подходит, т.к. 4G интерфейс используется в качестве tunnel-source в нескольких GRE-тунелях, которые при такой конфигурации сами не поднимаются до тех пор (т.к. не поднимается 4G интерфейс, на кот. они опираются), пока не попингуешь что-нибудь, что заставит подняться 4G интерфес. Если же вместо dialer-group засунуть watch-group, все сразу становится лучше. Watch-group смотрит на наличие в таблице маршрутизации роутера какого-то конкретного маршрута. Если этого маршрута нет — 4G интерфес радостно поднимается. Поэтому, этот самый watch-group, ссылается в приведенной части настроек на watch-list, который и проверяет наличие заведомо отсутствующего маршрута:

dialer watch-list 1 ip 3.4.5.6 255.255.255.255
dialer watch-list 1 delay route-check initial 60
dialer watch-list 1 delay connect 1
4. Ну и дописываем следующее для line 0/0/0:

line 0/0/0
script dialer LTE
modem InOut
no exec
transport input all
transport output all
rxspeed 100000000
txspeed 50000000
После этого интерфейс должен подняться, получить IP адрес и настройки DNS. Проверить что все работает можно с помощью sh cellular 0/0/0 all


Hardware Information
====================
Modem Firmware Version = SWI9200X_03.05.19.04
Modem Firmware built = 2012/09/17 17:57:14
Hardware Version = 10
International Mobile Subscriber Identity (IMSI) = 25010101352791
International Mobile Equipment Identity (IMEI) = 359470040192413
Electronic Serial Number (ESN) = 0x00000000 [00000000000]
Integrated Circuit Card ID (ICCID) = 8971100001013527917
Mobile Subscriber International Subscriber
IDentity Number (MSISDN) =
 
Profile Information
====================
Profile 1 = ACTIVE*
--------
PDP Type = IPv4
PDP address = 10.138.243.26
Access Point Name (APN) = yota.ru
Authentication = Unknown
Username:
Password:
        Primary DNS address = 94.25.213.74
        Secondary DNS address = 94.25.128.74
 
* - Default profile
 
Data Connection Information
===========================
Data Transmitted = 3704688 bytes, Received = 2012367 bytes
Profile 1, Packet Session Status = ACTIVE
        IP address = 10.138.243.26
        Primary DNS address = 94.25.213.74
        Secondary DNS address = 94.25.128.74
 
Тут, как видим, все работает. Но, как показала практика, при определенных версиях IOS и прошивок для самого 4G модуля, иногда, для того чтобы модуль заработал как должен, необходимо его встряхнуть, причем вручную. Делается это так:


DMVPNGW_CPP100#test cellular 0/0/0 modem-reset
У нас это снова неприемлемо, т.к. модуль, в случае если роутер вдруг перезагрузился, должен сам подняться без участия человека и ему подобных, т.к. то место, где он установлен, находится далеко и перспектива туда бежать не вселяет радости. Вообще, для информации, у нас такие модули используются для организации резервного интернет-канала для решения, описанного в этой статье про DMVPN и ГОСТ.
Поэтому, если вы столкнулись с тем, что периодически (обычно после перезагрузки) модуль отказывается работать пока вы его не «сбросите», попробуйте обновить IOS и прошивку модуля — должно помочь. Если нет, то TAC вам в помощь.

четверг, 1 октября 2015 г.

"IP VRF FORWARDING" vs "VRF FORWARDING"

Marco Rizzi Blog: "vrf definition" command, how to survive

"vrf definition" command, how to survive

Hi all,

as you may know, the old vrf definition commands are useful only for ipv4 vrfs.

for example:
ip vrf OLD-FORMAT
 description old format for vrf definition
 rd 1:1
 vpn id ABC:DEF
 route-target export 1:1
 route-target import 1:1
 route-target import 1:2


Will create a ipv4 vrf only, you can see it with:
Router(config-vrf)#do sh vrf detail
VRF OLD-FORMAT; default RD 1:1; default VPNID ABC:DEF
  Description: old format for vrf definition
  No interfaces
Address family ipv4 (Table ID = 0x1):
  Export VPN route-target communities
    RT:1:1
  Import VPN route-target communities
    RT:1:1                   RT:1:2
  No import route-map
  No export route-map
  VRF label distribution protocol: not configured
  VRF label allocation mode: per-prefix
Address family ipv6 not active.


If we try to add an interface to vrf, with both ipv4 and ipv6 addresses, we notice also:
Router(config)#do sh run int f 0/0 | b int
interface FastEthernet0/0
 ip vrf forwarding OLD-FORMAT
 ip address 10.0.0.1 255.255.255.0
 duplex auto
 speed auto
 ipv6 address FC00:1234:CC13::1/64


Router(config)#do sh ip route vrf OLD-FORMAT | b Gate
Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, FastEthernet0/0
Router(config)#

Router(config)#do sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

Router(config)#do sh ipv6 route
IPv6 Routing Table - Default - 3 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   FC00:1234:CC13::/64 [0/0]
     via FastEthernet0/0, directly connected
L   FC00:1234:CC13::1/128 [0/0]
     via FastEthernet0/0, receive
L   FF00::/8 [0/0]
     via Null0, receive


As expected, the vrf table is created only for ipv4 address-family, the ipv6 address still in the global table.

Starting from IOS 12.4(20)T (and 12.2(33)Sxx) the new command "vrf definition" was introduced.
According to the Doc-CD, the command creates both the virtual routing tables for ipv4 and ipv6 address-families, and can be used to specify global route-targets for both address-families and also specific route-targets.

So far so good, let's try this relatively new feature and see if it's working as documented:

Router(config)#vrf definition NEW-FORMAT
Router(config-vrf)#rd 2:2
Router(config-vrf)#?
VPN Routing/Forwarding instance configuration commands:
  address-family  Enter Address Family command mode
  context         Associate SNMP context with this vrf
  default         Set a command to its defaults
  description     VRF specific description
  exit            Exit from VRF configuration mode
  no              Negate a command or set its defaults
  rd              Specify Route Distinguisher
  route-target    Specify Target VPN Extended Communities
  vpn             Configure VPN ID as specified in rfc2685

Router(config-vrf)#route-target both 2:2
Router(config-vrf)#route-target import 100:100
Router(config-vrf)#do sh run vrf NEW-FORMAT
Building configuration...

Current configuration : 120 bytes
vrf definition NEW-FORMAT
 rd 2:2
 route-target export 2:2
 route-target import 2:2
 route-target import 100:100
!
end


Nice, as you can see, I have placed the route-targets globally, hoping that it will use for both address families.
In fact, this is not happening at all, because seems that the address-families aren't activated:
Router(config-vrf)#sh vrf detail NEW-FORMAT
VRF NEW-FORMAT; default RD 2:2; default VPNID 
  No interfaces
Address family ipv4 not active.
Address family ipv6 not active.


So if you try to add an interface to this vrf, the result is something strange:
Router(config)#int f 0/1
Router(config-if)#ip vrf forwarding NEW-FORMAT
% Use 'vrf forwarding' command for VRF 'NEW-FORMAT' !-- note that the old format command is rejected
Router(config-if)#vrf forwarding NEW-FORMAT
Router(config-if)#ip add 10.2.2.2 255.255.255.0
Router(config-if)#ipv6 address fc00:2222:2222::2/64
%FastEthernet0/1 is linked to a VRF. Enable IPv6 on that VRF first.  !-- IPv6 address is rejected too! 
Router(config-if)#do sh run int f 0/1
Building configuration...

Current configuration : 120 bytes
!
interface FastEthernet0/1
 vrf forwarding NEW-FORMAT
 ip address 10.2.2.2 255.255.255.0
 duplex auto
 speed auto
end


Seems that the ipv6 address was rejected due the missing address-family activation, but the ipv4 was accepted.

Surprise! The ipv4 still in global routing table, not in the vrf table!
Router(config-if)#do sh ip route | beg Gate
Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.2.2.0 is directly connected, FastEthernet0/1

Router(config-if)#do sh ip route vrf NEW-FORMAT

Router(config-if)#


So let's activate the address families:
Router(config)#vrf definition NEW-FORMAT
Router(config-vrf)#address-family ipv4
Router(config-vrf-af)#route-target both 2:2
Router(config-vrf-af)#exit
Router(config-vrf)#address-family ipv6
Router(config-vrf-af)#route-target both 2:2
Router(config-vrf-af)#exit
Router(config-vrf)#do sh run vrf NEW-FORMAT
Building configuration...

Current configuration : 409 bytes
vrf definition NEW-FORMAT
 rd 2:2
 route-target export 2:2
 route-target import 2:2
 route-target import 100:100
 !
 address-family ipv4
 route-target export 2:2
 route-target import 2:2
 exit-address-family
 !
 address-family ipv6
 route-target export 2:2
 route-target import 2:2
 exit-address-family
!
!
interface FastEthernet0/1
 vrf forwarding NEW-FORMAT
 no ip address
 duplex auto
 speed auto
!
!
end

Router(config-vrf)#

Yup! the ip address disappeared without notice!

Let's re-add both ip and ipv6 addresses
Router(config-vrf)#int f 0/1
Router(config-if)#ip add 10.2.2.2 255.255.255.0
Router(config-if)#ipv add fc00:2222:2222::2/64
Router(config-if)#do sh run vrf NEW-FORMAT
Building configuration...

Current configuration : 464 bytes
vrf definition NEW-FORMAT
 rd 2:2
 route-target export 2:2
 route-target import 2:2
 route-target import 100:100
 !
 address-family ipv4
 route-target export 2:2
 route-target import 2:2
 exit-address-family
 !
 address-family ipv6
 route-target export 2:2
 route-target import 2:2
 exit-address-family
!
!
interface FastEthernet0/1
 vrf forwarding NEW-FORMAT
 ip address 10.2.2.2 255.255.255.0
 duplex auto
 speed auto
 ipv6 address FC00:2222:2222::2/64
!
!
end

Router(config-if)#do sh ip route | beg Gate
Gateway of last resort is not set

Router(config-if)#do sh ip route vrf NEW-FORMAT

Routing Table: NEW-FORMAT
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.2.2.0 is directly connected, FastEthernet0/1
Router(config-if)#do sh ipv6  route vrf NEW-FORMAT
IPv6 Routing Table - NEW-FORMAT - 3 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   FC00:2222:2222::/64 [0/0]
     via FastEthernet0/1, directly connected
L   FC00:2222:2222::2/128 [0/0]
     via FastEthernet0/1, receive
L   FF00::/8 [0/0]
     via Null0, receive
Router(config-if)#


Finally it's all right, ip and ipv6 addresses are in the vrf routing table, I'm still asking myself what is the purpose of global route-targets...

:-)
Fortunately, seems that they have modified in the 15.0 IOS version. The above tests was on my 12.4T rack, when tryed with dynamips on 15.0...
RackVR1(config)#vrf definition TEST
RackVR1(config-vrf)#rd 1:1 
RackVR1(config-vrf)#route-target both 1:1

RackVR1(config)#int f 2/0
RackVR1(config-if)#vrf forwarding TEST
% Cannot configure VRF forwarding since no address family configuration exists in this VRF TEST; Please configure address family first
RackVR1(config-if)#do sh ver  
Cisco IOS Software, 7200 Software (C7200-ADVENTERPRISEK9-M), Version 15.0(1)M, RELEASE SOFTWARE (fc2)
...