Tuesday, November 27, 2012

Linux Machine Up on Multiple Network/VLAN/Subnet



Use Cases to enable multiple subnet/vlan/network on your machine:

Some times you will need your server to be talking through different networks (VLANS) for some reasons. Example, I need to create a hypervisor (Physical server which holds all my Virtual Machines) with KVM which gives VMs in multiple VLANs. Taking this example to explain this setup:


I have two VLAS (Virtual Lan or Two physically different LAN):

1. Production VLAN/SUBNET:

192.169.75.1/24
Gateway: 192.168.75.1

2. Dev QA VLAN:

192.168.76.1/24
GateWay: 192.168.76.1

Need to Create the hypervisor which can Give Virtual Machines on both the VLAN/SUBNET. If we simply bring up the hypervisor with two NICs up on both the VLAN, either of the NICs will be working not both. The ideal setup should be as below:

1. Create two bridge interfaces on the active physical interfaces in "/etc/network/interfaces" file

auto lo
iface lo inet loopback

auto br0
 iface br1 inet static
 address 192.168.75.2
 netmask 255.255.255.0
 network 192.168.75.1
 bridge_ports eth0
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
 post-up route add default gw 192.168.75.1 metric 1
 pre-down route del default gw 192.168.75.1

auto br1
 iface br2 inet static
 address 192.168.76.2
 netmask 255.255.255.0
 network 192.168.76.1
 bridge_ports eth1
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
 post-up route add default gw 192.168.76.1 metric 2
 pre-down route del default gw 192.168.76.1

2. Restart the Network #/etc/init.d/networking restart
3. There will be rp_filters enabled for the bridge interfaces. Need to disable that. In this case br0 and br1:

As Root
#echo "0" >/proc/sys/net/ipv4/conf/br0/rp_filter
#echo "0" >/proc/sys/net/ipv4/conf/br1/rp_filter
#echo "0" >/proc/sys/net/ipv4/conf/all/rp_filter

This will make sure both the interfaces are active and reachable on the hypervisor.

Make sure the rp_filters are disabled on reboot as well by adding the above commands in some startup files.

You are Done!




Tuesday, October 23, 2012

ssh/su Hung ubuntu

Problem: ssh/su hung on ubuntu:


debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/sajan.tharayil/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

Answer:

This is because of the high CPU utilization of console-kit-daemon on the machine which you are log on to. This is a Bug filed in ubuntu developers forum and fixed in release Jaunty. (Please See Bug). This can be fixed by restarting /etc/init.d/dbus temporarily.

#sudo /etc/init.d/dbus restart

Tuesday, October 16, 2012

Build Debian Packages from source with dh make

I am trying to create a deb package for graphite-web-0.9.9. I followed the steps below:

1. Install dh-make
   apt-get install dh-make
2.  Download graphite-web-0.9.9
   wget http://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz
3. Create the Directory strucure. We have to create the directory as same as the package name with version as in the tar ball. Here "graphite-web-0.9.9.tar.gz" tar ball name and the directory will be "graphite-web-0.9.9":
    mkdir graphite-web-0.9.9
4. Run dh_make inside the directory:
   cd graphite-web-0.9.9; dh_make -f ../graphite-web-0.9.9.tar.gz
5. Edit what ever needed in "./debian" directory. Atleast the control file with maintainer and package version
6. Run "dpkg-buildpackage -rfakeroot"  and your package is ready!