Wednesday, November 29, 2017

Error Description: 13801: IKE authentication credentials are unacceptable

Tried to connect Windows 7 client to the pfSense® with IKEv2 and native Windows IPSec VPN client. Everything was setup using IKEv2_with_EAP-MSCHAPv2 and every-time trying to connect I got "Error Description: 13801: IKE authentication credentials are unacceptable". After searching and troubleshooting it turned out that importing CA cert to the Windows 7 client PC must be done only via mmc console otherwise certificate is shown as installed but nothing works as expected.
PS to install CA certificates use this link: Import_Root_Cert_mmc

Friday, November 24, 2017

MySQL OUTFILE & INFILE

To write dump into file (by default this file will go to the /var/lib/mysql/DBNAME/test.sql). I use NULL for id column's values because it's AUTOINCREMENT and will be generated automatically (otherwise if I dump actual value duplicate values will be created):
SELECT
 NULL,time,callid,queuename,agent,event,data1,data2,data3,data4,data5
INTO OUTFILE 'test.sql'
FIELDS TERMINATED BY ','
OPTIONALLY
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM
queue_log;

Files content is something like:
cat test.sql
\N,"2014-10-28 17:45:19.924148","NONE","NONE","NONE","QUEUESTART","","","","",""

To merge this file into an existent table:
LOAD DATA INFILE 'test.sql'
INTO TABLE queue_log
FIELDS TERMINATED BY ','
OPTIONALLY
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Monday, November 20, 2017

Accessing CentOS 7 via RDP 

Install needed packages:
$ yum install epel-release
$ yum install xrdp tigervnc-server tigervnc-server-module

Change SELinux context for xrdp:
$ chcon -t bin_t /usr/sbin/xrdp
$ chcon -t bin_t /usr/sbin/xrdp-sesman

Open rdp port in firewall:
$ firewall-cmd --zone=public --add-port=3389/tcp --permanent
$ firewall-cmd --zone=public --add-port=3389/udp --permanent
$ firewall-cmd --reload

Enable and start xrdp service:
$ systemctl enable xrdp
$ systemctl start xrdp

Modify GNOME Display Manager custom:
$ vi /etc/gdm/custom.conf
[security]
AllowRemoteRoot=true
DisallowTCP=false
[xdmcp]
Enable=true

Wednesday, November 8, 2017

Can't remove final physical volume  from volume group (Linux)

I have:
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  VolGroup   1   0   0 wz--n- 279.36g 279.36g
  centos     1   3   0 wz--n-  <3.64t   3.04t
[root@localhost ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree 
  /dev/sda3  centos   lvm2 a--   <3.64t   3.04t
  /dev/sdb1  VolGroup lvm2 a--  279.36g 279.36g
 and want to remove VolGroup and add /dev/sdb1 into centos VG:
[root@localhost ~]# pvremove /dev/sdb1
  PV /dev/sdb1 is used by VG VolGroup so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)
  /dev/sdb1: physical volume label not removed.
[root@localhost ~]# vgreduce VolGroup /dev/sdb1
  Can't remove final physical volume "/dev/sdb1" from volume group "VolGroup"

To overcome that issue we'll first inactivate "VolGroup" and then remove that VG:
[root@localhost ~]# vgchange -an VolGroup
  0 logical volume(s) in volume group "VolGroup" now active
[root@localhost ~]# vgremove VolGroup
  Volume group "VolGroup" successfully removed 

Verifying and adding PV to a VG:
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   3   0 wz--n- <3.64t 3.04t
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda3  centos lvm2 a--   <3.64t   3.04t
  /dev/sdb1         lvm2 ---  279.36g 279.36g
[root@localhost ~]# vgextend centos /dev/sdb1
  Volume group "centos" successfully extended
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize VFree
  centos   2   3   0 wz--n- 3.91t 3.31t
[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda3  centos lvm2 a--   <3.64t   3.04t
  /dev/sdb1  centos lvm2 a--  279.36g 279.36g


Tuesday, October 17, 2017

Oversubscription (Network)

Oversubscription rates:
  1. Access Layer to Distribution Layer => 20:1
  2. Distribution Layer to Core Layer => 4:1
  3. Data Center links => 1:1
How to count oversubscription rates:
for example you have 48 1Gb/s ports Access Layer switch with one uplink to the Distribution Layer, so your rate is 47*1Gb/s:1*1Gb/s => 47:1 it can be ok, but recommendation is to have 20:1, so you can achieve this by lowering speed of Access Layer ports to 100Mb/s:
47*100Mb/s:1*1Gb/s => 4700Mb/s:1000Mb/s => 4,7:1 this rate is much better.
Also, you can utilize extra port for uplink (LAG=Etherchannel):
46*1Gb/s:2*1Gb/s => 4600:2000 => 23:1
Oversubscription with incorrect rates (given rates are just recommendations and you can calculate your own rates using ports load and dropped packets counters). Using proper oversubscription rates don't supplace QoS it just ensures (theoretically) that devices buffer will not be overloaded and that all packets will be delivered.

Monday, October 2, 2017

Start Android notes

AndroidStudio Project consists of Modules, every project can have 1 or more modules. When you "Run" you run needed module not project.

An app consists of a window - an Activity. Each activity consists of one or several elements (buttons, check-boxes, radio buttons etc.), the Android name for this element is View (Button, TextView, ImageView etc.). To collect views into a group of views we use ViewGroup (LenearLayout, RelativeLayout etc.).

To create activity file for the other screen orientation:
left click on res => right click on res => New => Adnroid resource file => Available qualifiers => Orientation

Size of views in the ViewGroup:
  1. actual size in dp/dpi (dot in one inch)
  2. constant values - match_parent / wrap_content
  3. weight: 
    1. weight=0 equals to wrap_content
    2. weight is the proportion of the view in the 100% of the overall parent ViewGroup. e.g.: button1 has weight=2, button2 has weight=3, button3 has weight=5. so 2+3+5=10 10=100% and 1=10% of the parent ViewGroup actual size.
ViewGroups:
  1. LinearLayout can be horizontally or vertically oriented
  2. RelativeLayout child views are organized relatively to parent or to each other
  3. FrameLayout - reservers space needed to show a single view (useful with Fragments)


Wednesday, September 27, 2017

How to Clone an Android Studio Project

1) Find and go to `AndroidStudioProjects` directory
2) Copy-Paste needed project and rename project folder (e.g. rename app to app_new)
3) Android Studio -> Close Project
4) Open an existing Android Studio Project -> choose name of the copied and renamed directory (app_new)
5) app -> src -> main -> AndroidManifest.xml -> change package name (something like package="com.example.android.app" to package="com.example.android.app_new" )
6) select folder (any) under java (app -> src -> main -> java) and right-click -> Refactor -> Rename -> Rename Package -> app_new -> Refactor -> Do Refactor -> Sync Now (Sync Now may not be needed)
7)  app -> src -> main -> AndroidManifest.xml -> change label of an app (something like android:label="App" to android:label="App New" )
8) Run an App