2014年8月8日星期五

Linux Core Dump

CONFIG_ELF_CORE
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS

Busybox uses softlimit to set RLIMIT_CORE.

sysctl -w "kernel.core_pattern=/var/cores/%h-%e-%p.core"; mkdir /var/cores -p;
sysctl -w "kernel.core_pattern=/core";
sysctl -w "kernel.core_pattern=/tmp/core-%e-%s-%u-%g-%p-%t";
sysctl -w "kernel.core_uses_pid=1";
sysctl -w "fs.suid_dumpable=2";

cat /proc/sys/kernel/core_pattern;
cat /proc/sys/kernel/core_uses_pid;
cat /proc/sys/fs/suid_dumpable;

mount -t tmpfs tmpfs /tmp;
softlimit -c 1048576 /mnt/app/test &

killall -11 test
kill -s SIGSEGV 8257
ls -al /var/cores
ls -al /tmp




Linux Applications Debugging Techniques/Core files - Wikibooks, open books for an open world
http://en.wikibooks.org/wiki/Linux_Applications_Debugging_Techniques/Core_files

HowTo: Debug Crashed Linux Application Core Files Like A Pro - nixCraft
http://www.cyberciti.biz/tips/linux-core-dumps.html

core(5) - Linux manual page
http://man7.org/linux/man-pages/man5/core.5.html

How to: Enable/Generate/Debug Core Dump In Linux? » IT Sprite
http://www.itsprite.com/how-to-enablegeneratedebug-core-dump-in-linux/

linux - Who generate a core dump file? Kernel or glibc? - Stack Overflow
http://stackoverflow.com/questions/20969239/who-generate-a-core-dump-file-kernel-or-glibc

Linux: Understanding how much is malloc'ed in a coredump (Kevin Grigorenko's IBM WebSphere SWAT Blog)
https://www.ibm.com/developerworks/community/blogs/kevgrig/entry/linux_understanding_how_much_is_malloc_ed_in_a_coredump?lang=en


kernel/git/torvalds/linux.git - Linux kernel source tree
coredump: make core dump functionality optional
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=046d662f481830e652ac34cd112249adde16452a

How to handle SIGSEGV, but also generate a core dump - Alex on Linux
http://www.alexonlinux.com/how-to-handle-sigsegv-but-also-generate-core-dump

2014年8月6日星期三

Linux Crash Dump






echo 1 > /proc/sys/kernel/sysrq  #enable SysRq
echo c > /proc/sysrq-trigger #trigger Crash

Magic SysRq key - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Magic_SysRq_key



linux - core dump not generated - Stack Overflow
http://stackoverflow.com/questions/6809227/core-dump-not-generated

google-coredumper - A neat tool for creating GDB readable coredumps from multithreaded applications - Google Project Hosting
http://code.google.com/p/google-coredumper/


eCrash: Debugging without Core Dumps | Linux Journal
http://www.linuxjournal.com/article/8724?page=0,0

Embedded Crash Handler | Free software downloads at SourceForge.net
http://sourceforge.net/projects/ecrash/


Documentation for Kdump - The kexec-based Crash Dumping Solution
https://www.kernel.org/doc/Documentation/kdump/kdump.txt


[Ubuntu] Kernel Crash Dump
https://help.ubuntu.com/12.04/serverguide/kernel-crash-dump.html

[Fedora] How to use kdump to debug kernel crashes - FedoraProject
http://fedoraproject.org/wiki/How_to_use_kdump_to_debug_kernel_crashes

[Red Hat] A quick overview of Linux kernel crash dump analysis
http://magazine.redhat.com/2007/08/15/a-quick-overview-of-linux-kernel-crash-dump-analysis/

[Red Hat] Crash
http://people.redhat.com/~anderson/
https://github.com/crash-utility/crash

Linux Kernel Crash Book
https://www.dropbox.com/s/ktbz9fy7qbwsyfa/www.dedoimedo.com-crash-book.pdf

2014年8月4日星期一

sshd always wants to change password

It's solved for me by setting it to non-zero:

sshd:"PASSWORD":1:0:99999:7:::
Or run the following every time after useradd or passwd:
sed -e 's/^\([^:]*:[^:]*:\)0:/\11:/' /etc/shadow -i
Is it because busybox passwd always update the "last changed" field to 0?

No, it's because the System time is not set correctly.

libbb/update_passwd.c
/* "name:" + "new_passwd" + ":" + "change date" + ":rest of line" */
fprintf(new_fp, "%s%s:%u%s\n", name_colon, new_passwd,
        (unsigned)(time(NULL)) / (24*60*60), cp);
So if system time is not set correctly, "last changed" field will always be 0 at the first day, and SSH will always asking for changing passwd.

Use date to update the system should fix this issue:
date -s 201401010000.00
This is not even busybox related. It might happened on any PC, just PC has battery and RTC and rarely lost the time.



lib.uclibc.buildroot - Re: sshd always wants to change password - msg#00125 - Recent Discussion OSDir.com
http://osdir.com/ml/lib.uclibc.buildroot/2007-05/msg00125.html

> >Here is the entry from my shadow file:
> >sshd:"PASSWORD":0:0:99999:7:::
>
> set the last changed field to non-null


Linux Password & Shadow File Formats
http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/shadow-file-formats.html
smithj:Ep6mckrOLChF.:10063:0:99999:7:::
As with the passwd file, each field in the shadow file is also separated with ":" colon characters, and are as follows:
  • Username, up to 8 characters. Case-sensitive, usually all lowercase. A direct match to the username in the /etc/passwd file.
  • Password, 13 character encrypted. A blank entry (eg. ::) indicates a password is not required to log in (usually a bad idea), and a ``*'' entry (eg. :*:) indicates the account has been disabled.
  • The number of days (since January 1, 1970) since the password was last changed.
  • The number of days before password may be changed (0 indicates it may be changed at any time)
  • The number of days after which password must be changed (99999 indicates user can keep his or her password unchanged for many, many years)
  • The number of days to warn user of an expiring password (7 for a full week)
  • The number of days after password expires that account is disabled
  • The number of days since January 1, 1970 that an account has been disabled
  • A reserved field for possible future use

2014年7月31日星期四

Certificate Management Protocol (CMP)v2

[wiki] Certificate Management Protocol (CMP)
http://en.wikipedia.org/wiki/Certificate_Management_Protocol

CMP patch for OpenSSL by Martin Peylo



(2008.02.26)Re: CMPV2 - ReadList.com
http://readlist.com/lists/openssl.org/openssl-users/1/8423.html

CMP patch for OpenSSL | Free Security & Utilities software downloads at SourceForge.net
http://sourceforge.net/projects/cmpforopenssl/
An implementation of the Certificate Management Protocol (CMP) version 2, defined in RFC 4210, as a patch for OpenSSL. Long term goal is to provide an RFC compliant implementation and proof of concept client - and then offer it to the OpenSSL project





2014年7月30日星期三

Abstract Syntax Notation One (ASN.1)

[wiki]  Abstract Syntax Notation One (ASN.1)
http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One

compiler - what does it mean "compile asn.1"? - Stack Overflow
http://stackoverflow.com/questions/14858838/what-does-it-mean-compile-asn-1

An ASN.1 specification describes messages that you would like to exchange with other machines. It does this in a manner that is independent of programming language or computer architecture. This means that to use the ASN.1 specification, a tool is needed to "compile" that ASN.1 specification, checking for syntax errors and some kinds of semantic errors before generating code for your target machine architecture in your target programming language to encode and decode the messages from the ASN.1 specification. Note that ASN.1 compilers generate C stuctures, Java classes, or C++ classes in addition to generating code for encoding and decoding messages based on the generated structures.

There is an excellent place to see an play with this process without dealing with actual generated code. There is an online ASN.1 compiler and runtime engine at http://asn1-playground.oss.com where you can compile ASN.1 specifications and encode/decode messages without writing any code in a target programming language.
ASN.1 Playground: free online compiler, encoder/decoder
http://asn1-playground.oss.com/

ASN.1 Tools
http://www.itu.int/en/ITU-T/asn1/Pages/Tools.aspx

asn1c: Lev Walkin → ASN.1 Exposed
http://lionet.info/asn1c/blog/

OSS Nokalva, Inc. — ASN.1 - Download Free Trial
http://www.oss.com/asn1/products/asn1-download.html






2014年7月27日星期日

timezone

Sources for Time Zone and Daylight Saving Time Data
http://www.twinsun.com/tz/tz-link.htm

Olson database of timezones in posix.1 format
http://fixunix.com/ntp/68031-olson-database-timezones-posix-1-format.html

Zoneinfo contains historic and future timezone information and is not
limited to two offset values each year, or to algorithmic rules for
deciding when to change, which is why you can only substitute Posix format
code over limited time periods where those assumptions are valid.

If you want to enumerate all the possible timezone codes used by the
Olsen package, you should look at the source code for the rules.
Even if you don't have the source of the tables (which is free to download),
you can use zdump to enumerate all the changes for a particular file.
POSIX and Olson time zone formats
http://www.ibm.com/developerworks/aix/library/au-aix-posix/index.html?ca=dat
AIX Health Check - Olson time zone support
http://www.aixhealthcheck.com/blog?id=291
One of the biggest advantages is that Olson database maintains a historical record of what the time zone rules were at given points in time, so that if the rules change in a particular location, dates and times can be interpreted correctly both in the present and past. A good example of this is the US state of Indiana, which just began using daylight saving time in the year 2006. Under the POSIX implementation, Indiana would have to set its time zone value to EST5EDT, which would format current dates correctly using daylight saving time, but would also format times from previous years as though they were on daylight saving time, which is incorrect. Use of the ICU API set for time zones also allows for localized display names for time zones. For example, Central Daylight Saving Time would have an abbreviation of CDT for all locales under a POSIX implementation, but under ICU/Olson, it displays properly as HAC (Heure Avancée du Centre) in a French locale.
tz database - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Tz_database

time - organization of zoneinfo folder - Ask Ubuntu
http://askubuntu.com/questions/34925/organization-of-zoneinfo-folder
If you install the tzdata source package, you will find all your answers:
sudo apt-get install apt-src
mkdir tzdata && cd tzdata
apt-src install tzdata
Specifically:
posix and right:
Two different versions are provided: - The "posix" version is based on the Coordinated Universal Time (UTC). - The "right" version is based on the International Atomic Time (TAI), and it includes the leap seconds.
Etc:
These entries are mostly present for historical reasons, so that people in areas not otherwise covered by the tz files could "zic -l" to a time zone that was right for their area. These days, the tz files cover almost all the inhabited world, and the only practical need now for the entries that are not on UTC are for ships at sea that cannot use POSIX TZ settings.
EST5EDT, ...:
GB, GB-Eire, GMT, GMT+0, GMT-0, GMT0, NZ, NZ-CHAT, PRC, ROC, ROK, UCT, UTC are there because the time zone names changed:
This file provides links between current names for time zones and their old names. Many names changed in late 1993.
CET, CST6CDT, EET, EST, EST5EDT, HST, MET, MST, MST7MDT, PST8PDT, WET are there for backwards compatibility.
From Arthur David Olson, 2005-12-19 We generate the files specified below to guard against old files with obsolete information being left in the time zone binary directory. We limit the list to names that have appeared in previous versions of this time zone package. We do these as separate Zones rather than as Links to avoid problems if a particular place changes whether it observes DST. We put these specifications here in the northamerica file both to increase the chances that they'll actually get compiled and to avoid the need to duplicate the US rules in another file.
dpkg - How do I change my timezone to UTC/GMT? - Ask Ubuntu
http://askubuntu.com/questions/138423/how-do-i-change-my-timezone-to-utc-gmt
$ date
Wed Jul 16 22:52:47 EDT 2014

$ cat /etc/timezone
America/New_York

$ sudo dpkg-reconfigure tzdata
$ service cron stop && service cron start
How to change timezone on Linux server? | Linux cPanel WebHosting Blog
http://www.theperfectarts.com/2009/11/how-to-change-timezone-on-linux-server/
root@admin[~]#date
Wed Nov 11 19:30:29 EST 2009
For example we are changing time zone  from EST to GMT.
root@admin[~]#ln -sf /usr/share/zoneinfo/GMT /etc/localtime
UbuntuTime - Changing the Time Zone
https://help.ubuntu.com/community/UbuntuTime

linux - Does NTP daemon set the host timezone? - Server Fault
http://serverfault.com/questions/194402/does-ntp-daemon-set-the-host-timezone
NTP does not handle time zones. All time data handled by NTP is in UTC; your local time zone setting determines the offset from there.
How time zones are handled with NTP?
http://www.meinbergglobal.com/english/faq/faq_32.htm
NTP does not regconize time zones, instead it manages all time informations based on UTC. In general the handling of time zones is a job of a computer's operating system. Under Windows, Linux and FreeBSD the system clock is based on UTC, the configured local time zone only is applied when a time information has to be displayed somewhere. Example: If you configure Windows to use your local time zone, the system clock continues with using UTC time. Only when the date/time is shown (e.g. in a clock application), it will be transformed from UTC into the locally configured timezone.

2014年7月23日星期三

2014年7月8日星期二

QCI and DSCP mapping

How QoS is managed in LTE system | beyond3g
http://beyond3g.wordpress.com/2010/12/21/how-qos-is-managed-in-lteeps-system/

  • On the radio interface
    1. Radio bearer control
    2. Scheduling
    3. Admission control
    4. Congestion control
    5. ICIC
  • On the transport (backhaul)
    1. DSCP
    2. Mapping DSCP with P-bit in VLAN
Quality of Service Overview - Technical Documentation - Support - Juniper Networks
http://www.juniper.net/techpubs/en_US/junos-mobility12.1/topics/concept/service-parameters-mobility-overview.html

Quality of Service (QoS) and Policy Management in Mobile Data Networks
http://www.ixiacom.com/pdfs/library/white_papers/policy_management.pdf

3GPP TR 29.839: Home (e)Node B - security gateway interface (Release 11)
http://www.qtc.jp/3GPP/Specs/29839-b00.pdf
5.2 H(e)NB procedures
5.2.1 General
The H(e)NB shall support DSCP marking on the IPsec header when forwarding the UE uplink traffic.
Based on H(e)NB configuration either the QCI mapping or the Reflective QoS may be used.
5.2.2 QCI mapping
The QCI mapping table contains a one-to-one mapping from QCI value to DSCP marking value. The QCI mapping
table is configured in the H(e)NB by the operator.
QCI | 4G University
http://4g-university.com/tag/qci/
Do we have DSCP marking on the outer IP header (the one above GTP) and how do they look? What specification relate to this topic?

Answer:
Specifications that relate to the S1 interface (also touching the QoS aspects) are TS 36.410, TS 36.411, TS 36.412, TS 36.413 and TS 36.414.

The technical specification TS 36.414 section 5.4 Diffserv code point marking says:
“IP Differentiated Services code point marking [4] shall be supported. The mapping between traffic categories and Diffserv code points shall be configurable by O&M based on QoS Class Identifier (QCI) Characteristics and others E-UTRAN traffic parameters. Traffic categories are implementation-specific and may be determined from the application parameters”

which means, that there is DSCP marking, but it is defined by a specific implementation.

how QCI map to the DSCP ??? And DSCP mapping table will be made in router ?? | LinkedIn
http://www.linkedin.com/groups/how-QCI-map-DSCP-DSCP-1180727.S.246097683
The SGW, PGW, and eNB all contain QCI to DSCP markings. During bearer setup, the QCI values are communicated from the HSS/PCRF to the PGW, SGW, & eNB. The adjacent routers need only to enforce the DSCP markings set by the EPC elements.

(.......)

QCI-to-DSCP mapping cannot be fixed by 3GPP standard as it depends on transmission network design. Transmission equipments must prioritze the IP packets according to the service they are carrying, so the mapping must be configured according to TX network.

(.......)

QCI DSCP Example 3GPP service
-------------------------------------
1 EF conversational voice
2 EF conversational video
3 EF real-time gaming
4 AF41 buffered streaming
5 AF31 IMS signaling
6 AF31 buffered streaming
7 AF21 interactive gaming
8 AF11 web access
9 BE e-mail

(.......)

QCI DSCP
1 EF
2 EF
3 EF
4 AF41
5 AF31
6 AF32
7 AF21
8 AF11
9 BE

(.......)

DSCP is field in IP header, QCI is end to end parameter mapped in each part of the network in different parameters or group of parameters (in radio interface, transmission network..). DSCP value mapping to QCI is mapping for prioritizing bearers in transmission network and can be (and will be) done on P-GW, S-GW and eNB: Mapping which you configure on eNB will take place in up-link: when eNodeB has to transmit IP packet which carries GTP packet corresponding to bearer with CQIQCI 7, eNB will add DSCP value which (according to what you have configured on eNB) corresponds to QCI7 in IP header of that IP package. Important is to emphasize that eNB itself, when receive down-link package, does not care for received DSCP in IP header (placed by S-GW), eNB does not compare recieved DSCP with configured DSCP on eNB for that QCI - moreover, those 2 DSCP values (for UL and DL) can be different, depending of transmission network. What you configure on S-GW for S1 will take place on S1 down-link in the same way as described for eNB... And analogically for other cases...


IPSec and DSCP

QoS and IPSec interactions | CCIE, the beginning!
http://cciethebeginning.wordpress.com/2011/02/02/qos-and-ipsec-interactions/

Enterprise QoS Solution Reference Network Design Guide - IPSec VPN QoS Design [Design Zone for IPv6] - Cisco
http://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/WAN_and_MAN/QoS_SRND/QoS-SRND-Book/IPSecQoS.html#pgfId-44642

Feature #166: DSCP config in StrongSwan
http://wiki.strongswan.org/issues/166

strongSwan does not provide DSCP specific functionality but the DSCP example in our test suite might give you an idea how to configure it using iptables and XFRM marks.
Test ikev2/net2net-psk-dscp
http://www.strongswan.org/uml/testresults/ikev2/net2net-psk-dscp/index.html

[strongSwan] DSCP support in new version of strongswan
https://lists.strongswan.org/pipermail/users/2010-October/000853.html


2014年6月21日星期六

IPSec/strongswan failures and checkpoints

FAIL_CP_REQ
Add

leftsourceip=%config
leftdns=%dns

TS_UNACCEPTABLE
Check left|right subnet and proto settings.

NO_PROPOSAL_CHOSEN
check ike=XXX and esp=XXX

libopenikev2: openikev2::Payload_NOTIFY Class Reference
http://openikev2.sourceforge.net/libopenikev2_api/classopenikev2_1_1Payload__NOTIFY.html
UNSUPPORTED_CRITICAL_PAYLOAD Unsupported critical payload.
INVALID_IKE_SPI Invalid IKE SPI.
INVALID_MAJOR_VERSION Invalid Major Version.
INVALID_SYNTAX Invalid syntax.
INVALID_MESSAGE_ID Invalid message ID.
INVALID_SPI Invalid SPI.
NO_PROPOSAL_CHOSEN No proposal chosen.
INVALID_KE_PAYLOAD Invalid KE payload.
AUTHENTICATION_FAILED Authentication failed.
SINGLE_PAIR_REQUIRED Single pair required.
NO_ADDITIONAL_SAS No additional SAs.
INTERNAL_ADDRESS_FAILURE Internal address failure.
FAILED_CP_REQUIRED Failed Configuration Payload required.
TS_UNACCEPTABLE Traffic selector unacceptable.
INVALID_SELECTORS Invalid selectors.
INITIAL_CONTACT Initial contact.
SET_WINDOW_SIZE Set window size.
ADDITIONAL_TS_POSSIBLE Additional Traffic selector possible.
IPCOMP_SUPPORTED IPcomp supported.
NAT_DETECTION_SOURCE_IP NAT detection source ip.
NAT_DETECTION_DESTINATION_IP NAT detection destination ip.
COOKIE Cookie.
USE_TRANSPORT_MODE Use transport mode.
HTTP_CERT_LOOKUP_SUPPORTED HTTP certificate lookup supported.
REKEY_SA Rekey SA.
ESP_TFC_PADDING_NOT_SUPPORTED ESP TFC padding not supported.
NON_FIRST_FRAGMENT_ALSO Non first fragment also.

GRE over IPSec tunnels between Cisco and Linux

Stuff: GRE over IPSec tunnels between Cisco and Linux (openswan)
http://ghergamilan.blogspot.tw/2010/06/gre-over-ipsec-tunnels-between-cisco.html

        leftprotoport=47                       #match the GRE traffic, this line is very important
        rightprotoport=47                     #match the GRE traffic

2014年6月11日星期三

LTE Security: IPSec


http://www.qtc.jp/3GPP/Specs/33401-860.pdf

11 Network Domain Control Plane protection

The protection of IP based control plane signalling for EPS and E-UTRAN shall be done according to TS 33.210 [5].

NOTE1: In case control plane interfaces are trusted (e.g physically protected), there is no need to use protection according to TS 33.210[5].

In order to protect the S1 and X2 control plane, it is required to implement IPSec ESP according to RFC 4303[7] as specified by TS 33.210[5]. For both S1-MME and X2-C, IKEv2 certificates based authentication according to TS 33.310[6] shall be implemented. For S1-MME and X2-C, tunnel mode IPSec is mandatory to implement on the eNB. On the core network side a SEG may be used to terminated the IPSec tunnel.

Transport mode IPSec is optional for implementation on the X2-C and S1-MME.

NOTE 2: Transport mode can be used for reducing the protocol overhead added by IPSec.

12 Backhaul link user plane protection

The protection of user plane data between the eNB and the UE by user specific security associations is covered by clause 5.1.3 and 5.1.4.


In order to protect the S1 and X2 user plane as required by clause 5.3.4, it is required to implement IPSec ESP according to RFC 4303[7] as profiled by TS 33.210[5], with confidentiality, integrity and replay protection.

On the X2-U and S1-U, transport mode IPSec is optional for implementation.

Tunnel mode IPSec is mandatory to implement on the eNB for X2-U and S1-U. On the core network side a SEG may be used to terminate the IPSec tunnel.

For both S1 and X2 user plane, IKEv2 with certificates based authentication shall be implemented. The certificates shall be implemented according to the profile described by TS 33.310[6]. IKEv2 shall be implemented conforming to the IKEv2 profile described in TS 33.310[6].

NOTE 2: In case S1 and X2 user plane interfaces are trusted (e.g. physically protected), the use of IPSec/IKEv2 based protection is not needed.
For X2 interface, we could:
  1. Setupt eNB-to-eNB IPSec transport link
  2. Send eNB-to-eBN traffic via SecGW
No resource found for method 1.
The following suggest method 2:

LTE transport network security
http://www.ieee-cqr.org/2012/May15/Session%202/2_Jason_Boswell_NSN%20LTE%20Security.pdf

Radio-to-core  protection in LTE
http://www.stoke.com/GetFile.asp?f=9da2433463cb8e11f41bd6213c67303e

2014年6月10日星期二

Getting a list of used libraries by a running process

osx - Getting a list of used libraries by a running process (unix) - Stack Overflow
http://stackoverflow.com/questions/2184775/getting-a-list-of-used-libraries-by-a-running-process-unix

cat /proc/$pid/maps
or
pldd

2014年6月6日星期五

LTE notes

The LTE Network Architecture - Alcatel-Lucent | At the Speed of Ideas
http://www3.alcatel-lucent.com/wps/DocumentStreamerServlet?LMSG_CABINET=Docs_and_Resource_Ctr&LMSG_CONTENT_FILE=White_Papers/CPG0599090904_LTE_Network_Architecture_EN_StraWhitePaper.pdf




eNodeB (evolved NodeB)
UE (user equipment)
PDN (packet data network)
EPC (evolved packet core)
EPS (evolved packet system)
EPS bearer: an IP packet flow with a defined QoS between the gateway and the UE
CN (core network)
SAE (system architecture evolution): evolution of non-radio aspect.

EPC is consist of the following logical nodes:

  • P-GW (PDN Gateway)
  • S-GW (Serving Gateway)
  • MME (Mobility Management Entity)
  • PCRF (Policy Ccontrol and charging Rules Functions)
  • HSS (Home Subscriber Server)

NAS (Non Access Stratum)
AS (Access Stratum) protocol: The protocol running between eNodeBs and UE
S-TMSI (SAE Temporary Mobile Subscriber Identification)
TA (Tracking Area)




S1 interface: Interface that connect eNodeB and EPC
S1-MME interface: Interface that connect eNodeB and MME
S1-U interface: Interface that connect eNodeB and S-GW
X2 interface: eNodeB interconnected to each other by X1.
S1-flex: the feature of S1 interface linking the access network to the CN
MME/S-GW pool: The set of MME/S-GW nodes that serves a common area.
pool area: the area covered by MME/S-GW pool


TR-196: Femto Access Point Service Data Model
http://www.broadband-forum.org/technical/download/TR-196.pdf
[wiki] TR-196
http://en.wikipedia.org/wiki/TR-196
As a bidirectional SOAP/HTTP-based protocol, it provides the communication between customer-premises equipment (CPE) and Auto Configuration Servers (ACS). TR-069 is a more generic which address various devices such as modems, routers, gateways, set-top box, and VoIP-phones. TR-196 primary objective is to provide data model very specific to Femto Access Point(FAP)

E-UTRAN: responsible for radio-related functions:
  • RRS (Radio resource management)
  • Header Compression
  • Security
  • Connectivity to the EPC

RAN (Radio Access Network)
PMIP (Proxy Mobile Internet Protocol)
PLMN (Public Land Mobile Network)


blue region of the stack is the E-UTRAN user plane protocol stack

GTP (GPRS Tunnel Protocol): 3GPP-specific protocol over CN interfaces, S1 and S5/S8.
PDCP (Packet Data Convergence Protocol)
RLC (Radio Link Control)
MAC (Medium Access Control)
blue region of the stack indicate the AS protocol.

RRC (Radio Resource Control) protocol

Bearers:
  • GBR (Minimum guaranteed bit rate)
  • Non-GBR
QCI (QoS class identification)
ARP (Allocation and Retention Priority)

AM (Acknowledge Mode)
LTE-Uu: radio interface

EPS bearer
S5/S8 bearer
S1 bearer
radio bearer


TFT (Traffic Flow Template)
UL TFT (Uplink TFT)
DL TFT (Downlink TFT)

PCEF (Policy Control Enforcement Function)

bearer level QoS parameter value is passed from:
PCRF -> P-GW -> S-GW -> --(S11)--> MME

PCC (Policy Control and Charging)


SONs (Self-optimizing networks)
SS7 (Signal System #7)

S1 Control plane:
SCTP(Stream Control Transmission Protocol)/IP
S1-AP (Application Protocol)


S1 User Plane:
TEID (Tunnel End ID)
TNL (Transport Network Layer)
HOL (Head-of-line blocking)

[wiki] Head-of-line blocking
http://en.wikipedia.org/wiki/Head-of-line_blocking

NNSF (NAS Node Selection Function)

X2 handover
S1 handover

UMTS Serving Radio Network Subsystem (SRNS) relocation procedure


S1 handover:



ANRF (automatic neighbor relation function)
PCI (Physical Cell Identity)
eNB Configuration Transfer procedure
automatic self-configuration of the PCIs
O&M (Operation and Maintenance)
SN (Sequence Number)
HFN (Hyper Frame Number)



selective retransmissions
multiple preparation
RRM (Radio resource management)








2014年5月22日星期四

strongSwan id (IPSec IDR) setting

4.3 Configuring the peer side using CA certificates
http://www.strongswan.org/docs/readme4.htm#section_4.3

The ID by which a peer is identifying itself during IKE main mode can by any of the ID types IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN. If one of the first three ID types is used, then the accompanying X.509 certificate of the peer must contain a matching subjectAltName field of the type ipAddress (IP:), dnsName (DNS:) or rfc822Name (email:), respectively. With the fourth type DER_ASN1_DN, the identifier must completely match the subject field of the peer's certificate. One of the two possible representations of a Distinguished Name (DN) is the LDAP-type format
     rightid="C=CH,O=Linux strongSwan, CN=sun.strongswan.org"
Additional whitespace can be added everywhere as desired since it will be automatically eliminated by the X.509 parser. An exception is the single whitespace between individual words , like e.g. in Linux strongSwan, which is preserved by the parser.
The Relative Distinguished Names (RDNs) can alternatively be separated by a slash ( '/')  instead of a comma (',')
rightid="/C=CH/O=Linux strongSwan/CN=sun.strongswan.org"
This is the representation extracted from the certificate by the OpenSSL command line option
openssl x509 -in sunCert.pem -noout -subject
Re: [strongSwan] rightid (Ipsec with Certificates)
https://www.mail-archive.com/users@lists.strongswan.org/msg04084.html
rightid and leftid are required to prevent an endpoint having
a valid and trusted certificate to take on the identity of another
endpoint (e.g. a client acting as the SEGW).
The leftid must exactly match either the subjectDistinguishedName or
a subjectAltName in the leftcert. rightid must match the identity
of the remote endpoint but may contain wildcards, the most general
being rightid=%any which returns a full match for any id. rightid
is sent by the initiator in the optional IDr payload in order to
assist the remote endpoint in the selection of the identity to be
used if the remote endpoint has multiple identities (e.g. multiple
certificates). If rightid contains at least one wildcard ('*' character)
then IDr is omitted but the the responder must always return its
full IDr not containing any wildcards.

In your first example where you define

  rightid="C=*, O=*, OU=*, CN=*"

the IDr payload is not sent by the initiator and the responder
returns an IDr of the form

 "O=Alcatel, CN=654...@alcatel-lucent.com"

which does not match your rightid template because the C= and OU=
RDNs are missing and the following local error is produced:

constraint check failed: identity 'C=*, O=*, OU=*, CN=*' required
selected peer config '30' inacceptable
no alternative config found

In order for your example to work you must either define

  rightid="O=*, CN=*"

or if you don't know exaclty which type of RDNs are used by the
SEGW in its certificate just

  rightid=%any

Please be aware that the use of wildcards makes your endpoints
vulnerable to kind of man-in-the-middle attacks mentioned in the
first paragraph.

In your second example you didn't specify any rightid. In that case
by default the IP address specified by right is used as rightid, i.e.

  rightid=172.21.11.181

Since this IDr is not contained in the SEGW's certificate the
remote error

parsed IKE_AUTH response 1 [ N(AUTH_FAILED) ]
received AUTHENTICATION_FAILED notify error

is received.
Re: [strongSwan] understanding %fromcert
https://www.mail-archive.com/users@lists.strongswan.org/msg06371.html
leftid=%fromcert
is an OpenSwan option not supported by strongSwan. The strongSwan
configuration is

  leftcert=carolCert.pem
  leftid=ca...@strongswan.org

or simply

  leftcert=carolCert.pem

If leftid is missing then left, i.e. the IP address is chosen by
default for leftid but since the IP address usually is not
contained as a subjectAltName in the certificate, the fallback
is for leftid to assume the value of the subject Distinguished
Name as e.g.

  leftid="C=CH, O=strongSwan, CN=ca...@strongswan.org"
'Re: [strongSwan] FQDN based certificate authentication for ikev2' - MARC
https://www.assembla.com/spaces/wbgi-tpe
if you want to use FQDNs as IDs then you must set rightid and
leftid accordingly:

On the initiator 10.0.0.2:

   left=10.0.0.2
   leftcert="/etc/ipsec/certs/ipsec.d//certs/ib-cert.pem"
   leftid=ib.atca.nsn.com
   right=10.0.0.1
   rightid=cla.atca.nsn.com

On the responder 10.0.0.1:

   left=10.0.0.1
   leftcert="/etc/ipsec/certs/ipsec.d//certs/cla-cert.pem"
   leftid=cla.atca.nsn.com
   right=%any
'Re: [strongSwan] Cannot set ID to FQDN with certificate loaded,' - MARC
http://marc.info/?l=strongswan-users&m=121804213112206
subjectAltNames don't go into the Distinguished Name (DN) itself as you
did in

[O=MyCo Ltd, OU=SW, L=Swindon, ST=Wiltshire, C=GB, CN=sgw.myco.com,
subjectAltName=sgw.myco.co]

but into an X.509v3 certificate extension. Enter the subjectAltName
in the form

subjectAltName=DNS:sgw.myco.com

in the appropriate place in your openssl.cnf file before you generate
your certificate.
QA Cafe - Knowledgebase - How do I display the contents of a SSL certificate?
https://lounge.qacafe.com/kb/articles/show/153

# openssl x509 -in acs.qacafe.com.pem -text
 
 
 
 

Certificates


Public key certificate - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Public_key_certificate

Certificate Signing Request (CSR)

Certificate signing request - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Certificate_signing_request

How To Generate SSL Key, CSR and Self Signed Certificate For Apache
http://www.thegeekstuff.com/2009/07/linux-apache-mod-ssl-generate-key-csr-crt-file/

# openssl req -new -key www.thegeekstuff.com.key -out www.thegeekstuff.com.csr

Setting-up a Simple CA Using the strongSwan PKI Tool - SimpleCA - strongSwan - strongSwan
http://wiki.strongswan.org/projects/strongswan/wiki/SimpleCA


The Most Common OpenSSL Commands
http://www.sslshopper.com/article-most-common-openssl-commands.html

2014年5月21日星期三

Convertion between hex string and binary: XXD

Binary to Hex:

# echo 0123456789abcdef0123456789abcdef | xxd
0000000: 3031 3233 3435 3637 3839 6162 6364 6566  0123456789abcdef
0000010: 3031 3233 3435 3637 3839 6162 6364 6566  0123456789abcdef
0000020: 0a   

# echo 0123456789abcdef0123456789abcdef | xxd -g1
0000000: 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66  0123456789abcdef
0000010: 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66  0123456789abcdef
0000020: 0a                                               .

# echo 0123456789abcdef0123456789abcdef | xxd -i
  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62,
  0x63, 0x64, 0x65, 0x66, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x0a

Hex string to binary:
# echo 0123456789abcdef0123456789abcdef | xxd    | xxd -r
0123456789abcdef0123456789abcdef

# echo 0123456789abcdef0123456789abcdef | xxd -g1| xxd -r
0123456789abcdef0123456789abcdef

# echo 0123456789abcdef0123456789abcdef | xxd -i | xxd -r -p
0123456789abcdef0123456789abcdef
# echo 0123456789abcdef0123456789abcdef | xxd -r -p | xxd
0000000: 0123 4567 89ab cdef 0123 4567 89ab cdef  .#Eg.....#Eg....

2014年5月20日星期二

strongswan IPSec related route

Issue #467: What if I use 0.0.0.0/0 as leftsubnet and rightsubnet in ipsec.conf - strongSwan - strongSwan - IKEv2/IPsec VPN for Linux, Android, FreeBSD, Mac OS X
http://wiki.strongswan.org/issues/467

A route is installed in routing table 220 by default (use ip route list table 220 to view it).