Thursday 18 October 2012

How to install Klocwork in linux


*****************How to Install Klocwork in Local Server?*********************************

1) Create a user and group (klocwork/klocwork123)
2) Login into the machine using above user and password.
3) create a directory klocwork_9.2 (mkdir klocwork_9.2)
4) Copy kw-server-installer.9.2.1.7276.linux.sh to klocwork_9.2 folder.
5) chmod 755 *.sh
6) Create kwtables, kw92 and kwdata directory in klocwork_9.2 folder(eg : mkdir kw82 kwdata)
7) Run kw-server-installer.9.2.1.7276.linux.sh
(eg: ./kw-server-installer.9.2.1.7276.linux.sh -a -i /home/klocwork/klocwork_9.2/kw92/ -p /home/klocwork/klocwork_9.2/kwdata/
8) open bashrc and export klocwork binary paths.
(eg: export PATH=$PATH:/home/klocwork/klocwork_9.2/kw92/bin/)
9) save bashrc file and run it( source ~/.bashrc)
10) kwservice set-service-property <path to kwdata> license host <license machine ip address>
(eg: ./kwservice set-service-property /home/klocwork/klocwork_9.2/kwdata/ license host 172.16.1.151
11) cd ..
12)chmod 755 *.sh
13) Install kw-user-installer.9.2.1.7276.linux.sh
(eg:./kw-user-installer.9.2.1.7276.linux.sh /home/klocwork/klocwork_9.2_Client/)
14) Enter then type Yes again Enter
15) After Installation is over open .bashrc and add client bin path
(eg:/home/klocwork/klocwork_9.2_Client_New/bin/)
****now your export path is :export PATH=$PATH:/home/klocwork/Klocwork9.2/kw92/bin/:/home/klocwork/klocwork_9.2_Client_New/bin/
16) save bashrc and run (source .bashrc)
17) Go to kwdata/config folder (eg :/home/klocwork/Klocwork9.2/kwdata/config)
18) Open admin.conf file
19) Change project.host , project.java.rmi.server.hostname , web.host, database.host as Ip address of Klockwork installing machine.
20) If project.java.rmi.server.hostname is not present in admin.conf add it ( *its not mandatory)
21) Change license.host = IP Address of License Server.(172.16.1.151)
22) If Required change web port .
23) Save the admin.conf
24) kwservice start <path to kwdata>
(eg: kwservice start /home/klocwork/klocwork_9.2/kwdata/ )
25) Now License Server, Database Server , Project Server and Web Server should start.
    Change the port-adress of database.port to some other port if  default 3306 is used by default mysql already installed in the system.
    Webserver is the klocserver.
    project server is the project_root installed in the machine.
   
26) If databse /project/web server is not starting check these ports are already using or not ?
****if is its using change the port and start again.
27) if any problem for starting License server contact klocwork admin
28) open gui http://ipaddressof klocwork installed machine:webport
(eg:http://172.19.1.61:8072)
29) open gui in another way also go to <path of kw92/bin> ./kmc
(eg:/home/klocwork/klocwork_9.2/kw92/bin)
****before starting kmc install cigwin or any other tool

*****************To work with KlocWork*********************


Once the installation is done now to work with the code fallow the fallowing procedure.


1)Go to the sourcecode folder, here we need to generate build specification file. Use the fallowing command
to generate build.spec file
    kwinject -o build.spec make
    The above command uses make file in the source code folder and complies and generates specification file.
    Dont forget to do make clean before to do make.
2)Run KMC in command window using command kmc. This will invoke a GUI tool where we can create project and build it.
3)To create project, go to file->New project, Name the project and select the language  click next.

4) In the next window select Build From Build Specification files click add, browse for the build specification file that you have done in step 1.

5)Click Next.
6)Select the options in the next window and click finish.
7)On the left side of the UI you will project list, right click on your project click on build. This step intiates building of recent build version.

8)UI will asks for KlocWorks Tables Directory, Select  Reuse Tables Directory and browse for the tables directory path /home/klocwork/klocwork_9.2/kwtables/ and click build.

9)Your code starts building and the process will take some time. After completion of successful build you can see the reports on the browser.

10)Open the browser with klocServer ip addess (ex: http://172.19.3.178:8080) and select Klocwork Review. UI asks username and password. username is admin and no password.

11)UI will load the complete list of projects, select your coressponding project to view reports.






How To Configure Yum in Linux

cat /etc/yum.repos.d/local.repo
[localrepos]
name=Local Repository
baseurl=file://///mnt/disk
enabled=1
gpgcheck=0

#Here consider that RHEL ISO file being mounted in /mnt/disk directory

#Either we can mount using NFS too to configure Yum Path

Command to mount ISO file in linux

mount -o loop file.iso /mnt/disk


Monday 15 October 2012

IPV6 How it works

IPV6 Connection happening on the local machine, but not connecting from the LAN. What may be the cause?
1. Check does assigned IPV6 has route to reach LAN
2. Check the status firewall (ip6tables in case of IPV6 network)
3. If Firewall running on local machine , stop firewall or modify accordingly to reach out LAN from local machine
How to stop firewall for IPV6 network, following
service ip6tables stop
4. how to check route for ipv6
ip -6 route


Information about IPV6


1. Enables Innovation , for application without NAT
2. IPV6 Address represented by hexa decimal numbers
3. There is no netmask in IPV6, it has only prefix length
4. IPV6 headers are 40bytes long, header doesn't include checksum, so if designing software, UDP checksum is mandatory
5. There is no broadcast in IPV6, it has only Multicasting
6. In IPV6 there is no ARP or IGMP, ICMP6 takes those jobs
7 .There are different types of IPV6 Addresses, they are Unicast, Multicast, Anycast, Reserved
8. There are also different scopes for IPV6, they are Local, Link, Global

IPV6 continuation
Lets go in detail, about the difference in IPV4/6 ..

how IPV6 really differs from IPV4 ..

IPV4 has several class of IP Addressing

IPV6 addressing follows,

As we know IPV6 has 128 bits wide,

starting from MSB, first 64 bits for network id, next 64 bits for host id

Here in host identifier can also be called as interface identifier.

In case of IPV4, a single interface can hold only a single IP Address ..

For example:
eth0 - can hold single unique IP Address
say 172.19.12.51

In IPV6 there are different scope defined for the interfaces.

Means a single interface can hold multiple IP's too, which overcomes IPV4 drawback ..

lets go interface wise ..

yes IPV6 has loop back address namely. ::1/128

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:933651 errors:0 dropped:0 overruns:0 frame:0
TX packets:933651 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:204721069 (195.2 MiB) TX bytes:204721069 (195.2 MiB)


Here we could see the scope of the loopback interface (lo), which is Scope: Host

Here the convension differs from IPV4, i.e successive leading zero's can be combined, not trailing zero's

A IPV6 address can hold only single combined successive leading zeros

For Example:

IPV6 Address : 2001:0DB8:130F:0000:0000:7000:0000:140B can be called by following,

2001:DB8:130F:0:0:7000:0:140B(Leading zeroes)

2001:DB8:130F:0:0:7000:0:140B(Trailing zeroes)

2001:DB8:130F::7000:0:140B(Successive field of zeroes)

Hene we can combine successive leading zeros, not trailing zeros.

Also there is only one time successive leading zeros can be combined in a given IPV6 Address.


Following are IPV6 addressing types.

1. Unicast
2. Multicast
3. Anycast

Note that IPV6 doesn't have broadcasting in nature.

There are different other scopes are available those are used for different purposes,
they are,

1. Link Local -- peer-to-peer communication (starts with FE80::) -- not intended to route
2. Unique Local -- starts with FD00:: -- within domain
3. Site Local -- intended to use within the site ( similar to unique local )
4. Global Unique -- global unique IPV6 address, can be routable ( similar to public IP Address in case of IPV4)



Is there a default DHCP address segment in IPv6 (similar to 169.254.x.x series in IPv4) ?
yes, it has fe80::/64 prefix .

In general IP Address can be assigned by following ways,

1. Configure Manually
2. Assign Dynamically with help of DHCP configured, IP Address can be assigned by DHCP for lease, will expire after certain time interval , otherwise DHCP can assign permanently . Again it depends on DHCP Server configuration
3. Assigning IP Address (local link) using default address block 169.254.0.0/16 for ipv4, In IPv6, they are assigned with the fe80::/64 prefix.

In IPV6 most often local link address will be assigned using stateless address autoconfiguration.



How many bits are present in an IPv6 address ?

There are 128 bits (16 bytes/octets) in an IPv6 address.  Please note that the "6" in IPv6 refers to IP specification version/release 6 and not the number of bytes in the address.  It so happens that in IPv4, the number of bytes in the address is 4.




How is loopback address represented in IPv6 ?
Its represented as ::1/128

In IPv6 the loopback address is a single IP address and hence the netmask bit of 128 above.

In the long form its
0000:0000:0000:0000:0000:0000:0000:0001/128

A slightly shorter from is
0:0:0:0:0:0:0:1/128

The shortest and usual form is
::1/128

Considering the IP alone its
::1

Note: In IPv4 the loopback address is 127.0.0.1/8



How many bits are present in an IPv6 address ?
128 bits.


How many bits are present in an IPv6 address ?
128 bits.
128/8=16 bytes

Neighbor Discovery Protocol (stateless auto configuration -- replacement of DHCP, ARP)
===========================================================
Here assume that N number of hosts are connected with Router
H1---
H2----
H3----ROUTER
.
.
.
Hn----

how link local unique address assigned

Steps are following,

As per understanding of IPV6 Address, first 64bit are meant for Network ID rest 64bit meant for HostID/Interface ID

To Generate unique link local IPV6 Address,
1. First 10 bits always will be 1111 1110 10 --> meant for link local address  rest 54 bits will be zero
   In terms it will be fe80:: (leading zeros are combined, not trailing zeros)
   The next 64bit interface id will be generated based on MAC address of the client system
  
   Assume that interface ID being generated by MAC address,
   And the IPV6 link address is fe80::219:d1ff:fe97:768c/64
  
 2. Now the second step, how the client has to make sure that there is no one in this network using this link local address
    This can be achieved by Neighbor Discovery Protocol underline with help of newly designed ICMP6
   
    How to test assigned link local address is unique
   
    a. Send Neighbor Solicitation and listen for Neighbor advertisement --> it means that IP Address is in use -> if not then goahead with router contact
    b.The node next attempts to contact a local router for more information on continuing the configuration.
      This is done either by listening for Router Advertisement messages sent periodically by routers,
      or by sending a specific Router Solicitation to ask a router for information on what to do next
      The router provides direction to the node on how to proceed with the autoconfiguration.
      It may tell the node that on this network “stateful” autoconfiguration is in use,
      and tell it the address of a DHCP server to use. Alternately, it will tell the host how to determine its global Internet address.
    c. Global Address Configuration: Assuming that stateless autoconfiguration is in use on the network,
      the host will configure itself with its globally-unique Internet address.
      This address is generally formed from a network prefix provided to the host by the router,
      combined with the device's identifier as generated in the first step
     
     

How MAC Table updated in IPV6:
=====================

Following is the command to get mac table entry in linux

 ip -6 neigh list

Following are the steps which will help kernel to update MAC entry for IPV6

1. Assume that there is no entry for say ip1 host , and ip1 is belonging to your network ( means it is reachable from your client)
2. Consider you have been assigned with some link local address and you want to reach/ping some one who is sitting in your network ex: ip1
 3.  Ideally the client should know the MAC address of other peer to establish communication,

 in this case when you do ping6 ip1 , client sends multicast request to ff02::1:ff:(24 least bits of your ip1 ) -- neighbor solicitation follows under icmpv6

therefore ip1 will reply back  with ip1 MAC address follows neighbor solicitation under icmpv6

 This is the stage client will do neighbor advertisement,  means client updated MAC table entry

then actual ping request will be sending to ip1, and vise versa.





 



Thursday 11 October 2012

TCP Track Connections

http://pkgs.repoforge.org/tcptrack/tcptrack-1.4.0-1.el6.rf.x86_64.rpm

rpm -ivh tcptrack-1.4.0-1.el6.rf.x86_64.rpm

 tcptrack -i eth0

tcptrack -i eth0 src or dst 76.11.22.12
 tcptrack -i eth1 port 80

This is interesting tool which help us to track the connection between the peers 



How to disable storing svn password for all users

vi ~/.subversion/config

[auth]
## Add below lines under this section auth

store-auth-creds = no
store-passwords = no

--------------------

have a look if there are some files under this directory
~/.subversion/auth/svn.simple/
if so delete the files , those files called password cached files.

---------------------

Try now, it will prompt you to enter password

let me know in case of help required