• 网络协议和管理配置2


    1.route命令

    查看路由表

    route 

    route -n 查看路由表

    route add [-net|-host|-default] target [netmask Nm] [gw GW] [[dev]i f] 添加路由

    route del [-net|-host] target [netmask Nm] [gw GW] [[dev]i f] 

    route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
    目标:192.168.1.3 网关:172.16.0.1
    route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
    目标:192.168.0.0 网关172.16.0.1
    route add default gw 172.16.0.1
    默认路由,网关:172.16.0.1
    route del -host 192.168.1.3 
    删除目标
    route del -net 192.168.0.0 netmask 255.255.255.0
    删除网段

    route表

    路由表中的表项内容包括:
    destination:目的地址,用来标识IP包的目的地址或者目的网络。
    mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
    pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
    cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由
    interface:输出接口,说明IP包将从该路由器哪个接口转发。
    nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。

    范例实现静态路由

    环境:

    四台主机:

    A主机:eth0 NAT模式

    R1主机:eth0 NAT模式,eth1 仅主机模式

    R2 主机:eth0 桥接模式,eth1仅主机模式

    B主机:eth0桥接模式

    #配置主机A
    ifconfig eth0 10.0.0.123/8
    直连所以只需要配置ip
    #配置主机R1
    ifconfig eth0 10.0.0.200/8
    ifconfig eth1 192.168.0.200/24
    route add -net 172.16.0.0/16 gw 192.168.0.201/24 dev eth1
    直连只用配置第三个网段
    echo 1 > /proc/sys/net/ipv4/ip_forward
    linux系统默认是禁止数据包转发的
    #配置R2
    ifconfig eth0 172.16.0.200/16
    ifconfig eth1 192.168.0.0.201/24
    route add -net 10.0.0.0/8 gw 192.168.0.200 dev eth1
    echo 1 > /proc/sys/net/ipv4/ip_forward
    #配置B
    ifconfig eth0 172.16.0.123/16

    2.ip命令

    ip link set eth1 down
    禁用网卡
    ip link set eth1 name wangnet
    网卡改名
    ip link set wangnet up
    启用网卡
    ip addr add 172.16.100.100/16 dev eth0 label eth0:0
    增加网卡别名实现一个网卡多个IP
    ip addr flush dev eth0
    清除网络地址
    ip address add 10.0.0.8/24 dev eth0
    ip addr del 10.0.0.8/24 dev eth0
    添加ip地址

    3.ss命令

    来治愈iproute包,代替netstat,netstat通过遍历/proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取sockst信息

    ss [option] ... [filter]

    选线:

    -t:tcp协议相关

    -u:udp协议相关

    -l: listen状态的连接

    -a:所有

    -n:数字模式

    常见用法

    ss -l
    显示本地打开的所有端口
    ss -pl
    显示每个进程具体打开的socket
    ss -ta
    显示所有tcp socket
    [10:49:53 root@centos7 ~]$ss -o state established '( dport = :ssh or sport = :ssh )'
    Netid Recv-Q Send-Q              Local Address:Port                               Peer Address:Port                
    tcp   0      0                        10.0.0.7:ssh                                    10.0.0.1:6345                  timer:(keepalive,73min,0)
    显示所有已建立的ssh连接

    4.写入配置文件永久更改

    网络配置文件

    IP:/etc/sysconfig/network-scripts/ifcfg-iface

    NAME:此配置文件应用到的设备

    DEVICE:设备名

    BOOTPROTO:激活此设备时使用的地址配置协议,常用dhcp,static

    IPADDR:指明IP地址

    GATEWAY:默认网关

    PREFIX:网络ID的位数如:24

    DNS1:第一个DNS服务器地址

    ONBOOT:在系统引导时是否激活此设备

    BOOTPROTO=static
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.0.0.7
    GATEWAY=10.0.0.2
    PREFIX=24
    DNS1=8.8.8.8

    配置当前主机的主机名

    #centos6之前版本

    /etc/sysconfig/network

    HOSTNAME=

    #centos7以后版

    /etc/hostname

    HOSTNAME

    路由相关的配置文件

    route:/etc/sysconfig/static-routes

    [11:20:12 root@centos7 ~]$vim /etc/sysconfig/static-routes
     any net 192.168.1.0/24 gw 10.0.0.254
    [11:23:43 root@centos7 ~]$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    [11:23:58 root@centos7 ~]$systemctl restart network
    [11:24:08 root@centos7 ~]$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    192.168.1.0     10.0.0.254      255.255.255.0   UG    0      0        0 eth0

    网卡别名

    [11:31:52 root@centos7 ~]$cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
    DEVICE=eth0:1
    IPADDR=10.0.0.100
    PREFIX=8
    [11:31:36 root@centos7 ~]$systemctl restart network
    
    eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:35:00:d2 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet 10.0.0.100/8 brd 10.255.255.255 scope global noprefixroute eth0:1
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe35:d2/64 scope link 
           valid_lft forever preferred_lft forever

    5.网络配置工具nmcli

    修改配置文件执行生效

    nmcli con relod
    nmcli con up con-name

    范例

    [16:42:51 root@centos7 ~]$nmcli connection show
    NAME                UUID                                  TYPE      DEVICE 
    eth0                5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
    Wired connection 1  7a9e3935-5829-3398-bf8d-d5321d6e9548  ethernet  --
    显示状态
    [16:42:59 root@centos7 ~]$nmcli dev status 
    DEVICE  TYPE      STATE      CONNECTION 
    eth0    ethernet  connected  eth0       
    lo      loopback  unmanaged  --      
    显示设备状态
    nmcli con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.x.254
    创建新连接static,指定静态IP,不自动连接

    nmcli实现bonding

    mode 0:balance-rr 轮调策略:多张网卡可以轮流发数据包,实现负载均衡的功能

    mode 1:active-backup 主备策略:其中active网卡的发数据包,其他备用

    mode 3:broadcast 广播策略:每个网卡都会发一份包

    nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24
    添加bonding接口
    nmcli con add type bond-slave ifname eth0 master bond0
    nmcli con add type bond-slave ifname eth1 master bond0
    添加从属接口
    nmcli con up bond-slave-eth0
    nmcli con up bond-slave-eth1
    要启动绑定,则必须首先启动从属接口
    nmcli con up mybond0
    启动绑定

    6.网桥

    nmcli con add type birdge con-name bro ifname br0
    nmcli con mod bro ipv4,addresses 10.0.0.100/24 ipv4.method manual
    nmcli con up bro
    创建网桥
    nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
    nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
    nmcli con up br0-port0
    nmcli con up br0-port1
    加入物理网卡
    cat /etc/sysconfig/network-scripts/ifcfg-br0
    查看网桥配置文件

    7.tcpdump

    网络数据包截获分析工具。支持针对网络层,协议,主机,网络或端口的过滤。并提供and,or,not等逻辑语句帮助去除无用的信息

    tcpdump -D
    查看网卡
    tcpdump
    不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡
    tcpdump -i eth0
    监听特定网卡
    tcpdump host 10.0.0.100
    监听特定主机,监听主机10.0.0.100 的通信包,注意:出入的包都会被监听。
    tcpdump src host hostname
    特定来源
    tcpdump dst host hostname
    特定目标地址
    tcpdump -i eth0 -nn icmp and src host 10.0.0.6 and dst host 10.0.0.7
    监听从6到7的icmp包
    tcpdump port 3000
    特定端口
    tcpdump tcp port 22 and src host 10.0.0.100
    监听来自主机10.0.0.100在端口22上的TCP数据包

    详细示例

    tcpdump tcp -i eht1 -t -s 0 -c 100 and dst port ! 22 src net 192.168.1.0/24 -w ./target.cap
    1)tcp:ip icmp arp 这些选项都要放到第一个参数的位置,用来过滤数据报文的类型
    2)-i eth1 :只抓经过接口eth1的包
    3)-t:不显示时间戳
    4)-s:抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
    5)-c 100 :只抓取100个包
    6)dst port !22:不抓取目标端口时22的数据包
    7)src net 192.168.1.0/24:数据包源地址
    8)-w :保存成cap文件,方便用wireshark分析

    8.ubuntu网络配置

    网卡名称

    vi /etc/default/grub
    GRUB_CMDLINE_LINUX="net.ifnames=0"
    修改配置文件为下面形式
    grub-mkconfig -o /boot/grub/grub.cfg
    生效新的文件,ubuntu版
    grub2-mkconfig -o /etc/grub2.cfg
    centos版

     静态IP必须要遵守格式

    vim /etc/netplan/50-cloud-init.yaml
    network: version:
    2 ethernets: eth0: dhcp4: true match: macaddress: 00:16:3e:0e:64:66 set-name: eth0
    netplan apply
    地址生效

    查看dns

    ls -l /etc/resolv.conf
    resolvectl status 
    systemd-resolve --status
  • 相关阅读:
    设计模式之-装饰模式
    设计模式之-组合模式
    设计模式之-桥接模式
    设计模式之-适配器模式
    Java import static 静态导入
    C语言:字符数组 + 字符串指针
    leetcode 435.无重叠区间
    C++:强制类型转换
    C++:移动构造函数和移动赋值运算符
    编程:找出所有符合条件的元素
  • 原文地址:https://www.cnblogs.com/aiyoubucuo/p/14205772.html
Copyright © 2020-2023  润新知