Quick Review: Boxee Box
December 27, 2011 – 12:22 am | 3 Comments

Some of the technical issues with Boxee Box could have been fixed if the dev team was paying more attention to addressing the bugs rather than adding “features” of dubious value. In the final analysis, for the price and ease of use, Boxee Box is the best in its class and price range. You just need to be mindful of its limitations and buy it in hope of future improvements to its usability.

Read the full story »
Networking

Unix and Linux network configuration. Multiple network interfaces. Bridged NICs. High-availability network configurations.

Applications

Reviews of latest Unix and Linux software. Helpful tips for application support admins. Automating application support.

Data

Disk partitioning, filesystems, directories, and files. Volume management, logical volumes, HA filesystems. Backups and disaster recovery.

Monitoring

Distributed server monitoring. Server performance and capacity planning. Monitoring applications, network status and user activity.

Commands & Shells

Cool Unix shell commands and options. Command-line tools and application. Things every Unix sysadmin needs to know.

Home » Networking

Basic Network Configuration Under Solaris

Submitted by on November 26, 2005 – 1:27 pmNo Comment
Basic Network Configuration Under Solaris

The following document provides a general overview of the network configuration process for Solaris. For a detailed review of Solaris network configuration please see Chapter 4 of the O’Reilly Solaris 8 Administration Guide by Paul Watters: Solaris 8 Administration Guide, Chapter 4

The basic Solaris network configuration process follows these steps:

  • Check available network interfaces
  • Configure loopback interface
  • Configure ethernet interface(s)
  • Edit /etc/hosts, /etc/defaultrouter, /etc/hostname.(interface_name), /etc/defaultdomain, /etc/nsswitch.conf, /etc/resolv.conf
  • Restart inet daemon

Network Interfaces

Hardware and Driver Information

• To check the current hardware and driver specifications of your network card run the Korn shell script at the bottom of this document.

Alternatively, run the following set of commands:

1.

Run ifconfig –a

Example:

ifconfig –a
 
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
eri0: flags=1000843 mtu 1500 index 2
        inet 128.222.147.22 netmask ffffff00 broadcast 128.222.147.255
        ether 0:3:ba:44:9d:22

2. for each interface from step 1 (i.e. lo0, etc.) run netstat –I

Example:

netstat –I eri0
 
Name  Mtu  Net/Dest Address Ipkts  Ierrs Opkts  Oerrs Collis Queue
eri0  1500 jtripper.domain.com jtripper.domain.com 204358186 0     335053251 3     0      0

Network configuration

Standalone host

Example environment:

Hostname = jtripper
IP = 128.222.147.22
Local loopback interface = lo0
Primary network interface = eri0
Default domain = jedi

Example configuration sequence:

1. To configure local loopback interface:

ifconfig lo0 inet 127.0.0.1

2. To configure Primary NIC:

ifconfig eri0 plumb
 
ifconfig eri0 inet 128.222.147.22 netmask 255.255.255.0 broadcast 128.222.147.255
 
ifconfig eri0 up

3. Populate /etc/hosts file:

vi /etc/hosts
 
127.0.0.1       localhost       loghost
128.222.147.22  jtripper

4. Configure default router (gateway):

vi /etc/defaultrouter
 
128.222.147.1

The /etc/defaultrouter file is read by /etc/rc2.d/S69inet during system boot. The default router is then added to the routing table. You can run this script manually:

/etc/rc2.d/S69inet stop
/etc/rc2.d/S69inet start

You can also add or change a default router manually (but you will lose this setting once the system is rebooted – only settings in /etc/defaultrouter will be retained):

route add default 128.222.147.1
route change default 128.222.147.1

You can specify a particular route for a particular address.

Example:

route add -net 10.0.0.0 -netmask 255.0.0.0 128.222.22.111

(NOTE: If you don’t want your machine to use the router – i.e. you want to limit the machine’s access to internal network – you need to touch /etc/notrouter )

To obtain routing statistics run:

netstat –r
 
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
128.222.147.0        jtripper.domain.com U         1   2585  eri0
224.0.0.0            jtripper.domain.com U         1      0  eri0
default              rd86-328g2.domain.com UG        1  10320
localhost            localhost            UH       216687155  lo0

To view the route for a particular netowrk destination:

traceroute marvin.domain.com
 
traceroute to marvin.domain.com (128.222.22.57), 30 hops max, 40 byte packets
 1  rd86-328g2.domain.com (128.222.144.1)  0.829 ms  0.782 ms  0.654 ms
 2  rd86-328b.domain.com (128.222.82.2)  0.608 ms  0.854 ms  0.846 ms
 3  marvin.domain.com (128.222.22.57)  0.824 ms  0.766 ms  0.552 ms

5. Configure default hostname:

vi /etc/hostname.eri0
 
jtripper

6. To verify that the interface is being addressed correctly by other hosts on the local network:

arp –a
 
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
eri0   rd86-328g2.domain.com 255.255.255.255       00:0b:bf:f2:68:00
eri0   e137443.domain.com 255.255.255.255       00:08:74:9e:63:55
eri0   e449158.domain.com 255.255.255.255       00:0b:db:86:f4:b0
eri0   phl-lab-02.domain.com 255.255.255.255       00:90:27:3d:21:4d
eri0   e259822.domain.com 255.255.255.255       00:b0:d0:cb:99:77
eri0   e060146.domain.com 255.255.255.255       00:06:5b:87:28:11
eri0   e390650.domain.com 255.255.255.255       00:0b:db:58:e5:cf
eri0   e716918.domain.com 255.255.255.255       00:04:00:4c:48:25
eri0   jtripper.domain.com 255.255.255.255 SP    00:03:ba:44:9d:22
eri0   e731038.domain.com 255.255.255.255       08:00:11:09:01:b9
eri0   rd86-328g2.domain.com 255.255.255.255       00:0b:bf:f2:68:00
eri0   rd86-328g2.domain.com 255.255.255.255       00:0b:bf:f2:68:00
eri0   hpdyn08.domain.com 255.255.255.255       00:10:83:f9:77:a6
eri0   224.0.0.0            240.0.0.0       SM    01:00:5e:00:00:00

DNS Environment

In addition to the previous steps, complete the following configuration sequence:

7. Define default domain (“jedi” in this example)

domainname jedi
 
vi /etc/defaultdomain
 
jedi

8. Edit /etc/nsswitch.conf to match the following line:

vi /etc/nsswitch.conf
 
hosts:      dns files

NIS Environment

9. Edit /etc/hosts to add entries for NIS master and slave servers

Rename /etc/auto_home to /etc/auto_home.save

Copy /etc/nsswitch.nis to /etc/nsswitch.conf

Edit /etc/nsswitch.conf to match the following line:

vi /etc/nsswitch.conf
 
networks:   nis [NOTFOUND=return] files
protocols:  nis [NOTFOUND=return] files
rpc:        nis [NOTFOUND=return] files
ethers:     nis [NOTFOUND=return] files
netmasks:   nis [NOTFOUND=return] files
bootparams: nis [NOTFOUND=return] files
publickey:  nis [NOTFOUND=return] files
netgroup:   nis
automount:  files nis
aliases:    files nis
 
# for efficient getservbyname() avoid nis
services:   files nis
sendmailvars:   files
printers:       user files nis
auth_attr:      files nis
prof_attr:      files nis
project:    files nis

Initialize client with

ypinit -c

Enable NIS service (on Solaris 10)

svcadm enable network/nis/client

10. Edit /etc/resolv.conf to make it look something like this:

domain domain.com
nameserver 128.222.121.11
nameserver 128.222.26.11
search domain2.com domain3.com domain4.com

Here’s a sample script to display status of network interfaces on a Solaris system:

#!/bin/ksh
# NIC STATUS
#set -x
#####################################
# VARIABLES
#
SCRIPT=$(/bin/basename $0)
NDD=/usr/sbin/ndd
NETSTAT=/usr/bin/netstat
IFC=/sbin/ifconfig
 
typeset -R5 LINK
typeset -R9 AUTOSPEED
typeset -R6 STATUS
typeset -R6 SPEED
typeset -R5 MODE
typeset -R18 ETHER
 
#####################################
# FUNCTIONS
#
 
#---- Function to check volume sizes and states.
#
USAGE()
{
echo
echo "$SCRIPT"
echo "$SCRIPT [-t]"
echo
echo "          -t = Print tcp settings"
}
 
#---- Function to test that the user is root.
#
Check_ID()
{
ID=$(/usr/ucb/whoami)
if [ $ID != "root" ]; then echo "$ID, you must be root to run this program."
        exit 1
fi
}
 
#---- Function to test a Cassini Gigabit-Ethernet port (i.e. ce_).
#
Check_CE()
{
autospeed=`${NETSTAT} -k $LINK| \
awk '{for (i=1; i< =NF; ++i) {if ($i == "cap_1000fdx") {print $(i+1)}}}'`
case $autospeed in
   1) AUTOSPEED=on      ;;
   0) AUTOSPEED=off     ;;
   *) AUTOSPEED=Error   ;;
esac
 
status=`${NETSTAT} -k $LINK| \
awk '{for (i=1; i<=NF; ++i) {if ($i == "link_up") {print $(i+1)}}}'`
case $status in
   1) STATUS=Up         ;;
   0) STATUS=DOWN       ;;
   *) STATUS=Error      ;;
esac
 
SPEED=`${NETSTAT} -k $LINK| \
awk '{for (i=1; i<=NF; ++i) {if ($i == "link_speed") {print $(i+1)}}}'`
 
mode=`${NETSTAT} -k $LINK| \
awk '{for (i=1; i<=NF; ++i) {if ($i == "link_duplex") {print $(i+1)}}}'`
case $mode in
   2) MODE=FDX          ;;
   1) MODE=HDX          ;;
   0) MODE=---          ;;
   *) MODE=Error        ;;
esac
}
 
#---- Function to test Quad Fast-Ethernet, Fast-Ethernet, and
#     GEM Gigabit-Ethernet (i.e. qfe_, hme_, ge_)
#
Check_NIC()
{
${NDD} -set /dev/${1} instance ${2}
 
if [ $type = "ge" ];then
        autospeed=`${NDD} -get /dev/${1} adv_1000autoneg_cap`
else    autospeed=`${NDD} -get /dev/${1} adv_autoneg_cap`
fi
case $autospeed in
   1) AUTOSPEED=on      ;;
   0) AUTOSPEED=off     ;;
   *) AUTOSPEED=Error   ;;
esac
 
status=`${NDD} -get /dev/${1} link_status`
case $status in
   1) STATUS=Up         ;;
   0) STATUS=DOWN       ;;
   *) STATUS=Error      ;;
esac
 
speed=`${NDD} -get /dev/${1} link_speed`
case $speed in
   1000) SPEED=1GB      ;;
   1) SPEED=100MB       ;;
   0) SPEED=10MB        ;;
   *) SPEED=Error       ;;
esac
 
mode=`${NDD} -get /dev/${1} link_mode`
case $mode in
   1) MODE=FDX          ;;
   0) MODE=HDX          ;;
   *) MODE=Error        ;;
esac
}
 
#---- Function to test the Davicom Fast Ethernet, DM9102A, devices
#     on the Netra X1 and SunFire V100 (i.e. dmfe_)
#
Check_DMF_NIC()
{
autospeed=`${NDD} -get /dev/${1}${2} adv_autoneg_cap`
case $autospeed in
   1) AUTOSPEED=on      ;;
   0) AUTOSPEED=off     ;;
   *) AUTOSPEED=Error   ;;
esac
 
status=`${NDD} -get /dev/${1}${2} link_status`
case $status in
   1) STATUS=Up         ;;
   0) STATUS=DOWN       ;;
   *) STATUS=Error      ;;
esac
 
speed=`${NDD} -get /dev/${1}${2} link_speed`
case $speed in
   1000) SPEED=1GB      ;;
   100) SPEED=100MB     ;;
   10) SPEED=10MB       ;;
   0) SPEED=10MB        ;;
   *) SPEED=Error       ;;
esac
 
mode=`${NDD} -get /dev/${1}${2} link_mode`
case $mode in
   1) MODE=FDX          ;;
   0) MODE=HDX          ;;
   *) MODE=Error        ;;
esac
}
 
#---- Function to print "read and write" tcp settings.
#
Check_TCP()
{
echo
echo "TCP settings"
echo "============"
for i in `/usr/sbin/ndd /dev/tcp \?| egrep -v "tcp_host_param"| \
awk '/read and write/ {print $1}'`
do
 echo "`/usr/sbin/ndd -get /dev/tcp $i`\t\c"
 echo $i
done
}
 
#####################################
# MASTER NICSTATUS FUNCTION
#
 
#---- Function to test network port configurations.
#
Nic_Status()
{
# Output header.
echo
echo " Link Autospeed Status  Speed  Mode   Ethernet Address"
echo "----- --------- ------ ------ ----- ------------------"
#
# Create a uniq list of network ports configured on the system.
#
# NOTE: This is done to avoid multiple references to a single network port
#       (i.e. qfe0 and qfe0:1).
#
for LINK in `${IFC} -a| egrep -v "lo|be|dman|lpfc"| \
awk -F: '/^[a-z,A-z]/ {print $1}'| sort -u`
do
 type=$(echo $LINK | sed 's/[0-9]//g')
 num=$(echo $LINK | sed 's/[a-z,A-Z]//g')
#
# Here we reference the functions above to set the variables for each port which
# will be outputed below.
#
 case $type in
   ce)   Check_CE $type $num      ;;
   dmfe) Check_DMF_NIC $type $num ;;
   *)    Check_NIC $type $num     ;;
 esac
#
# Set ethernet variable and output all findings for a port to the screen.
#
 ETHER=`${IFC} ${LINK}| awk '/ether/ {print $2}'`
 echo "$LINK $AUTOSPEED $STATUS $SPEED $MODE $ETHER"
done
}
 
#############################################
# Start
#############################################
#
aflag=
bflag=
vflag=
while getopts t? name
do
 case $name in
  t)    tflag=1                 ;;
  ?)    USAGE
        exit 2                  ;;
 esac
done
 
Check_ID
Nic_Status
 
if [ ! -z $tflag ]; then
 Check_TCP
fi
 
set +x

Popularity: 3% [?]

Related posts:

  1. Basic Exceed configuration
  2. Install PHP, Mysql, Apache2 on Solaris 9
  3. Apache MySQL PHP Solaris 8 Installation
  4. Solaris boot disk copy

Leave a comment!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.