Pages

Friday, December 18, 2015

Working with Network on CentOS/RHEL 07 - Part 04

Home

Network Configuration Using the Command-Line Interface (CLI)

- Utility “ip” is to be used for the command line configuration in Red Hat 7 primarily as “ifconfig” utility has been phased out as it does not InfiniBand addresses (Larger concept needs to be explored separately)
- ip commands given on the command line will not persist after a system restart hence its required to get those commands added to scripts (e.g. /etc/rc.local)
- We will see what all commands can be written using “ip” utility.
- To check options of IP address configuration
[root@testvm07002 admin]# ip a help
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING
       ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up]
       ip addr {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated | dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

- To check options of routing related configuration
[root@testvm07002 admin]# ip r help
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get ADDRESS [ from ADDRESS iif STRING ]
                            [ oif STRING ]  [ tos TOS ]
                            [ mark NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]
           [ rtt TIME ] [ rttvar TIME ] [reordering NUMBER ]
           [ window NUMBER] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
TYPE := [ unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat ]
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
TIME := NUMBER[s|ms]

- To check IP address live on server’s Interfaces
[root@testvm07002 admin]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.248.201/24 brd 192.168.248.255 scope global dynamic enp0s3
       valid_lft 898sec preferred_lft 898sec
    inet 192.168.56.7/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe41:a779/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.248.201/24 brd 192.168.248.255 scope global dynamic enp0s3
       valid_lft 868sec preferred_lft 868sec
    inet 192.168.56.7/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe41:a779/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 ~]# ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.248.201/24 brd 192.168.248.255 scope global dynamic enp0s3
       valid_lft 941sec preferred_lft 941sec
    inet 192.168.56.7/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe41:a779/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.248.201/24 brd 192.168.248.255 scope global dynamic enp0s3
       valid_lft 925sec preferred_lft 925sec
    inet 192.168.56.7/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe41:a779/64 scope link
       valid_lft forever preferred_lft forever

- To get list of IP address with IPV4
[root@testvm07002 admin]# ip -4 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.248.201/24 brd 192.168.248.255 scope global dynamic enp0s3
       valid_lft 865sec preferred_lft 865sec
    inet 192.168.56.7/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.248.202/32 brd 192.168.248.202 scope global enp0s8
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.248.202/24 brd 192.168.248.255 scope global dynamic enp0s9
       valid_lft 1036sec preferred_lft 1036sec
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 798sec preferred_lft 798sec

- To get list of IP address with IPV6

[root@testvm07002 admin]# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::a00:27ff:fe41:a779/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::a00:27ff:fe74:9d4b/64 scope link
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::a00:27ff:feb6:50f3/64 scope link
       valid_lft forever preferred_lft forever
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- To get IP address detail for an interface

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 1078sec preferred_lft 1078sec
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ip addr show dev enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 1040sec preferred_lft 1040sec
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- To get details of Interfaces which are up and running

[root@testvm07002 admin]# ip link list up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

- Assign an IP address to a device, First we will see IP addresses assigned to enp0s10 interface.

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 876sec preferred_lft 876sec
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- Assign second IP address to enp0s10 interface,

[root@testvm07002 admin]# ip addr add 192.168.50.7/24 dev enp0s10

- Now we will see two IP addresses assigned to enp0s10 interface, which is reachable over ping as well

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 1150sec preferred_lft 1150sec
    inet 192.168.50.7/24 scope global secondary enp0s10
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ping 192.168.50.7
PING 192.168.50.7 (192.168.50.7) 56(84) bytes of data.
64 bytes from 192.168.50.7: icmp_seq=1 ttl=64 time=0.388 ms
64 bytes from 192.168.50.7: icmp_seq=2 ttl=64 time=0.127 ms
64 bytes from 192.168.50.7: icmp_seq=3 ttl=64 time=0.545 ms
^C
--- 192.168.50.7 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.127/0.353/0.545/0.173 ms

- To get ip address detail for an interface, First we will see IP addresses assigned to enp0s10 interface.

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 1150sec preferred_lft 1150sec
    inet 192.168.50.7/24 scope global secondary enp0s10
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- Now we will delete both IP addresses one by one,

[root@testvm07002 admin]# ip addr del 192.168.50.7/24 dev enp0s10

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 836sec preferred_lft 836sec
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ip addr del 192.168.50.6/24 dev enp0s10

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

[root@testvm07002 admin]# ping 192.168.50.6
PING 192.168.50.6 (192.168.50.6) 56(84) bytes of data.
^C
--- 192.168.50.6 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1010ms

- To flush all IP addresses assigned to an Interface including IPV4 and IPV6, First we will see IP addresses assigned to enp0s10 interface

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 1079sec preferred_lft 1079sec
    inet 192.168.50.7/24 scope global secondary enp0s10
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- Time to flush interface IP addresses

[root@testvm07002 admin]# ip -s -s a f to 192.168.50.0/24
5: enp0s10    inet 192.168.50.7/24 scope global secondary enp0s10
       valid_lft forever preferred_lft forever
5: enp0s10    inet 192.168.50.6/24 brd 192.168.50.255 scope global dynamic enp0s10
       valid_lft 976sec preferred_lft 976sec
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***

- Now interface will not have any IP address at all

[root@testvm07002 admin]# ip addr show enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fe94:3e02/64 scope link
       valid_lft forever preferred_lft forever

- To disable IP address on all the ppp (Point-to-Point) interfaces use below command,

ip -4 addr flush label "ppp*"

- Another example for all the Ethernet interfaces:

ip -4 addr flush label "eth*"

- To bring individual interface down and up manually, First to check status of interfaces active and running

[root@testvm07002 admin]# ip link list up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

- Bring down an interface and check the status of live interfaces again

[root@testvm07002 admin]# ip link  set dev enp0s10 down

[root@testvm07002 admin]# ip link list up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff

- Bring UP the same interface and check the status of live interfaces once again

[root@testvm07002 admin]# ip link  set dev enp0s10 up

[root@testvm07002 admin]# ip link list up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

- To add broadcast address on the interface. By default, the ip command does not set any broadcast address unless explicitly requested.  Three various syntax examples are given below,
ip addr add brd {ADDDRESS-HERE} dev {interface}

Have a look on existing details of an interface,
Change the broad cast address and verify the changes,


ip addr add broadcast {ADDDRESS-HERE} dev {interface}

Have a look on existing details of an interface,
Change the broad cast address and verify the changes,


ip addr add broadcast 172.20.10.255 dev dummy0

Have a look on existing details of an interface,
Change the broad cast address and verify the changes,

loopback address can be set to the loopback device lo as follows:

ip addr add 127.0.0.1/8 dev lo brd + scope host


- To change the txqueuelen of an ehternet device

Basic understanding of transmit queue length for an ethernet device can be obtained using below link,

To set the length of the transmit queue of the device as follows:

Current value of transmit queue can be seen as 1000 using below command,

[root@testvm07002 ~]# ip link sh enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
   link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

Same can be increased to 10000 as below and crossechecked ahead with same command,
[root@testvm07002 ~]# ip link set txqueuelen 10000 dev enp0s10

[root@testvm07002 ~]# ip link sh enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff


- To change the MTU of an ethernet device

For gigabit networks we can set maximum transmission units (MTU) sizes (JumboFrames) for better network performance. Basic understanding related to MTU can be taken from link below,

A maximum transmission unit (MTU) is the largest size packet or frame, specified in octets (eight-bit bytes), that can be sent in a packet- or frame-based network such as the Internet.


To check MTU of an interface below is the syntax,

[root@testvm07002 ~]# ip link sh enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

To change MTU and cross check it use below syntax,

[root@testvm07002 ~]# ip link set mtu 2000 dev enp0s10

[root@testvm07002 ~]# ip link sh enp0s10
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

  
- To check neighbour/arp cache

[root@testvm07002 ~]# ip n help
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ]
          [ nud { permanent | noarp | stale | reachable } ]
          | proxy ADDR } [ dev DEV ]
       ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]

[root@testvm07002 ~]# ip neigh show
192.168.56.1 dev enp0s3  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10 lladdr 08:00:27:48:94:1d STALE

- The last field show the the state of the "neighbour unreachability detection" machine for this entry:
· STALE - The neighbour is valid, but is probably already unreachable, so the kernel will try to check it at the first transmission.
· DELAY - A packet has been sent to the stale neighbour and the kernel is waiting for confirmation.
· REACHABLE - The neighbour is valid and apparently reachable.

- To add a new ARP entry, First check the ARP table entries,

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED

- Now add an entry as STALE state and check ARP table entries,

[root@testvm07002 ~]# ip neigh add  192.168.50.4 lladdr 08:00:28:48:94:1d dev enp0s10 nud stale

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.50.4 dev enp0s10 lladdr 08:00:28:48:94:1d STALE
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED

Where,

· neighbour state (nud) – meaning
· permanent - The neighbour entry is valid forever and can be only be removed administratively
· noarp - The neighbour entry is valid. No attempts to validate this entry will be made but it can be removed when its lifetime expires.
· stale - The neighbour entry is valid but suspicious. This option to ip neigh does not change the neighbour state if it was valid and the address is not changed by this command.
· reachable - The neighbour entry is valid until the reach ability timeout expires.

- To delete an ARP entry

First check existing ARP table details,

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 DELAY
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10 lladdr 08:00:27:48:94:1d STALE

Delete and entry and check ARP table details,

[root@testvm07002 ~]# ip neigh del 192.168.50.3 dev enp0s10

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED


- To change the sate of an ARP entry

Change are state to permanent for a neighbour,
[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.50.4 dev enp0s10  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED

[root@testvm07002 ~]# ip neigh chg 192.168.248.1 nud permanent dev enp0s3

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.50.4 dev enp0s10  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 PERMANENT
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED

- To flush ARP entry

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.50.4 dev enp0s10 lladdr 08:00:28:48:94:1d STALE
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED

[root@testvm07002 ~]# ip -s -s n f 192.168.50.4
192.168.50.4 dev enp0s10 lladdr 08:00:28:48:94:1d used 171/231/171 probes 0 STALE

*** Round 1, deleting 1 entries ***
*** Flush is complete after 1 round ***

[root@testvm07002 ~]# ip n
192.168.56.1 dev enp0s3  FAILED
192.168.50.4 dev enp0s10  FAILED
192.168.248.1 dev enp0s3 lladdr 08:00:27:00:64:66 REACHABLE
192.168.248.200 dev enp0s3 lladdr 08:00:27:ee:a2:90 STALE
192.168.50.3 dev enp0s10  FAILED


- To show routing table

[root@testvm07002 ~]# ip route help

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 dev enp0s10  proto kernel  scope link  src 192.168.50.6
192.168.56.0/24 dev enp0s3  proto kernel  scope link  src 192.168.56.7
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202

[root@testvm07002 ~]# ip route list
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 dev enp0s10  proto kernel  scope link  src 192.168.50.6
192.168.56.0/24 dev enp0s3  proto kernel  scope link  src 192.168.56.7
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202

[root@testvm07002 ~]# ip route
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 dev enp0s10  proto kernel  scope link  src 192.168.50.6
192.168.56.0/24 dev enp0s3  proto kernel  scope link  src 192.168.56.7
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202


- To add a new route

The syntax is:
ip route add {NETWORK/MASK} via {GATEWAYIP}
ip route add {NETWORK/MASK} dev {DEVICE}
ip route add default {NETWORK/MASK} dev {DEVICE}
ip route add default {NETWORK/MASK} via {GATEWAYIP}
To add a plain route to network 192.168.50.0/24 via gateway 192.168.50.6,

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202

[root@testvm07002 ~]# ip route add 192.168.50.0/24 via 192.168.50.6

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 via 192.168.50.6 dev enp0s10
192.168.50.1 dev enp0s10  proto static  scope link  metric 1024
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202


To route all traffic via 192.168.56.7 gateway connected via enp0s3 network interface:

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 via 192.168.50.6 dev enp0s10
192.168.50.1 dev enp0s10  proto static  scope link  metric 1024
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202
[root@testvm07002 ~]# ip route add 192.168.56.0/24 dev enp0s3
[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 via 192.168.50.6 dev enp0s10
192.168.50.1 dev enp0s10  proto static  scope link  metric 1024
192.168.56.0/24 dev enp0s3  scope link
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202

- To delete a route

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 via 192.168.50.6 dev enp0s10
192.168.50.1 dev enp0s10  proto static  scope link  metric 1024
192.168.56.0/24 dev enp0s3  proto kernel  scope link  src 192.168.56.7
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202

[root@testvm07002 ~]# ip route del 192.168.56.0/24

[root@testvm07002 ~]# ip r
default via 192.168.56.1 dev enp0s3
default via 192.168.50.1 dev enp0s10  proto static  metric 1024
169.254.0.0/16 dev enp0s3  scope link  metric 1002
192.168.50.0/24 via 192.168.50.6 dev enp0s10
192.168.50.1 dev enp0s10  proto static  scope link  metric 1024
192.168.248.0/24 dev enp0s3  proto kernel  scope link  src 192.168.248.201
192.168.248.0/24 dev enp0s9  proto kernel  scope link  src 192.168.248.202


- To check status of Ethernet links

[root@testvm07002 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

[root@testvm07002 ~]# ip l l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

[root@testvm07002 ~]# ip l sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2000 qdisc pfifo_fast state UP mode DEFAULT qlen 10000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

- To check which of the link are down and which are up

[root@testvm07002 ~]# ip link list up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

- To get an interface up or down

Check status of all links on the server

[root@testvm07002 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

To actually bring down and recheck status of enp0s10 interface
[root@testvm07002 ~]# ip link set enp0s10 down
[root@testvm07002 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

Now get the interface back up again and then check the interface status,

[root@testvm07002 ~]# ip link set enp0s10 up
[root@testvm07002 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:41:a7:79 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:74:9d:4b brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:b6:50:f3 brd ff:ff:ff:ff:ff:ff
5: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 08:00:27:94:3e:02 brd ff:ff:ff:ff:ff:ff

No comments:

Post a Comment