DSN域名解析服务器linux
功能:面试
将域名解析成IP地址(正向解析)shell
将IP地址解析成域名(反向解析)windows
控制互联网上电子邮件的转发浏览器
(1)A记录 www.baidu.com ==> 61.135.169.125缓存
(2)CNAME,ip别名,用的最广的就是常备CDN应用商应用解析CNAME服务器
(3)MX解析记录 23444444@qq.com, @qq.com就是MX记录网络
反向解析,用的最多的仍是邮件服务数据结构
A记录解析过程:并发
DNS A记录
浏览器==》www.baidu.com===>网站服务器的IP地址===》IP地址对应的网站服务器
DNS自己也是一个树状结构,互联网上的其余DNS服务器由“根DNS服务器”、“顶级域DNS服务器(例如:com、edu等)”、“二级域DNS服务器”组成,“.”根服务器,全球有13台。顶级域(com 、org 、net),二级域 好比jingdong.com
DNS数据结构图以下图所示:
DNS解析流程原理图以下图所示:
流程图说明:
好比说客户端想要访问www.baidu.com,客户端发送请求访问www.baidu.com,先查询客户端的DNS缓存(由本机的host文件和上次的解析结果缓存组成),找到结果,返回查询结果,反之进行下一步查询;没有结果查询本地DNS服务器,按照客户端的设置找到首选DNS服务器,客户端要查询的域名是否在本机上,若是在返回资源记录,不在进行下一步;尚未的话按照本地DNS服务器上的named.ca文件,定位根服务器,查询根服务器的DNS缓存,若是有就返回结果,若是没有这时根服务器就会说我没有,可是我知道顶级域的你去找顶级域吧;这时就会查询根服务器的列表给本地DNS服务器返回一个顶级域的DNS服务器地址;接下来查找顶级域的DNS服务器(com服务器),本地DNS服务器问顶级域服务器知道不知道www.baidu.com的地址啊,顶级域服务器说我知道我有,这时就会返回www.baidu.com的域名解析地址,本地DNS服务器记录缓存并发给客户端,客户端接收并缓存baidu的域名地址,访问对应资源,整个DNS解析结束。
(1)dig命令
查看一下baidu.com的解析过程,能够更加理解DNS解析原理
dig命令的一个典型用法为:
dig @server(8.8.8.8) name type(A,MX,NS)
[root@linzhongniao ~]# dig @8.8.8.8 www.baidu.com +trace ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> @8.8.8.8 www.baidu.com +trace ; (1 server found) ;; global options: +cmd . 20911 IN NS m.root-servers.net. . 20911 IN NS b.root-servers.net. . 20911 IN NS c.root-servers.net. . 20911 IN NS d.root-servers.net. . 20911 IN NS e.root-servers.net. . 20911 IN NS f.root-servers.net. . 20911 IN NS g.root-servers.net. . 20911 IN NS h.root-servers.net. . 20911 IN NS i.root-servers.net. . 20911 IN NS a.root-servers.net. . 20911 IN NS j.root-servers.net. . 20911 IN NS k.root-servers.net. . 20911 IN NS l.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 168 ms ;; Truncated, retrying in TCP mode. com.172800 IN NS a.gtld-servers.net. com.172800 IN NS b.gtld-servers.net. com.172800 IN NS c.gtld-servers.net. com.172800 IN NS d.gtld-servers.net. com.172800 IN NS e.gtld-servers.net. com.172800 IN NS f.gtld-servers.net. com.172800 IN NS g.gtld-servers.net. com.172800 IN NS h.gtld-servers.net. com.172800 IN NS i.gtld-servers.net. com.172800 IN NS j.gtld-servers.net. com.172800 IN NS k.gtld-servers.net. com.172800 IN NS l.gtld-servers.net. com.172800 IN NS m.gtld-servers.net. ;; Received 827 bytes from 193.0.14.129#53(193.0.14.129) in 547 ms baidu.com. 172800 IN NS dns.baidu.com. baidu.com. 172800 IN NS ns2.baidu.com. baidu.com. 172800 IN NS ns3.baidu.com. baidu.com. 172800 IN NS ns4.baidu.com. baidu.com. 172800 IN NS ns7.baidu.com. ;; Received 201 bytes from 192.43.172.30#53(192.43.172.30) in 5312 ms www.baidu.com. 1200IN CNAME www.a.shifen.com. a.shifen.com. 1200IN NS ns4.a.shifen.com. a.shifen.com. 1200IN NS ns3.a.shifen.com. a.shifen.com. 1200IN NS ns1.a.shifen.com. a.shifen.com. 1200IN NS ns5.a.shifen.com. a.shifen.com. 1200IN NS ns2.a.shifen.com. ;; Received 228 bytes from 202.108.22.220#53(202.108.22.220) in 10 ms
dig命令也能够直接接域名
[root@linzhongniao ~]# dig www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28778 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 283 IN CNAME www.a.shifen.com. www.a.shifen.com. 93 IN A 61.135.169.121 www.a.shifen.com. 93 IN A 61.135.169.125 ;; Query time: 10 msec ;; SERVER: 192.168.18.1#53(192.168.18.1) ;; WHEN: Tue Aug 28 22:43:26 2018 ;; MSG SIZE rcvd: 90
(2)nslookup命令
解析域名对应的地址
[root@linzhongniao ~]# nslookup > www.baidu.com Server: 192.168.18.1 《==由哪一个服务器进行解析 Address:192.168.18.1#53 Non-authoritative answer: Name: www.baidu.com 《==对应的域名是什么 Address: 61.135.169.121 《==对应域名的IP地址 Name: www.baidu.com Address: 61.135.169.125 > ^C[root@linzhongniao ~]#
(3)也能够用host查看解析
[root@linzhongniao ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 61.135.169.125 www.a.shifen.com has address 61.135.169.121
(4)也能够用ping查看解析
(1)用hostname进行修改
hostname linzhongniao
退出登陆再进来就修改了,可是重启系统就失效了
(2)修改/etc/sysconfig/network的配置文件永久生效
[root@zbf ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=linzhongniao NTPSERVERARGS=iburst
(3)修改/etc/hosts配置文件
修改完/etc/sysconfig/network还得修改/etc/hosts文件,由于只修改/etc/sysconfig/network里的主机名仍是不行的,/etc/hosts里面127.0.0.1主机对应的本地回环记录也要修改
[root@zbf ~]# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost.localdomain localhost4 localhost4.localdomain4 localhostlinzhongniao ::1 localhost.localdomain localhost.localdomain localhost6 localhost6.localdomain6 localhost linzhongniao
第一辈子效文件,网卡配置文件优先
[root@linzhongniao ~]# grep -i "gate" /etc/sysconfig/network-scripts/ifcfg-eth0
第二生效文件
[root@linzhongniao ~]# grep -i "gate" /etc/sysconfig/network
第三能够在命令行配置,临时生效添加默认网关
route add default gw 192.168.1.1
删除默认网关:
route del default gw 192.168.1.1
删除默认网关是上不了网的
[root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 00 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 eth0 [root@linzhongniao ~]# route del default gw 192.168.1.1 [root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 00 eth0 [root@linzhongniao ~]# ping www.baidu.com ping: unknown host www.baidu.com
再把默认网关添加回来,就能够连网了
[root@linzhongniao ~]# route add default gw 192.168.1.1 [root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 00 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 eth0 [root@linzhongniao ~]# ping www.baidu.com PING www.baidu.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121: icmp_seq=1 ttl=53 time=6.58 ms 64 bytes from 61.135.169.121: icmp_seq=2 ttl=53 time=7.78 ms ^C --- www.baidu.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1242ms rtt min/avg/max/mdev = 6.583/7.185/7.788/0.608 ms
(1)在etho网卡上再绑定一个IP地址,设置IP别名,配置的ip别名网卡是能够用的,网卡重启会失效
[root@linzhongniao ~]# ifconfig eth0:0 192.168.1.224 netmask 255.255.255.0 up 或者ifconfig eth0:0 192.168.1.224/24 up
修改ip用ifconfig eth0 192.168.1.224/24
Centos7,配置ip别名(辅助ip)用ip命令,能够man一下
[root@linzhongniao ~]# ip addr add 192.168.1.226/24 dev eth0:1 [root@linzhongniao ~]# 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:9c:41:1c brd ff:ff:ff:ff:ff:ff inet 192.168.1.110/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.224/24 brd 192.168.1.255 scope global secondary eth0:0 inet 192.168.1.226/24 scope global secondary eth0 inet6 fe80::20c:29ff:fe9c:411c/64 scope link valid_lft forever preferred_lft forever
(2)永久生效
将ip别名写成网卡的配置文件
[root@linzhongniao ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0 DEVICE=eth0:0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.224 NETMASK=255.255.255.0 USERCTL=no PEERDNS=yes IPV6INIT=no
企业面试题:已知一个端口,查看端口对应的服务名
(1)方法一:lsof
[root@linzhongniao ~]# lsof -i tcp:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd1528 root3u IPv4 13766 0t0 TCP *:ssh (LISTEN) sshd1528 root4u IPv6 13773 0t0 TCP *:ssh (LISTEN) sshd1810 root3r IPv4 15916 0t0 TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED) [root@linzhongniao ~]# lsof -i tcp:53725 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd1810 root3r IPv4 15916 0t0 TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED) [root@linzhongniao ~]# lsof -i :22 《==不清楚用的什么协议能够空着 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd1528 root3u IPv4 13766 0t0 TCP *:ssh (LISTEN) sshd1528 root4u IPv6 13773 0t0 TCP *:ssh (LISTEN) sshd1810 root3r IPv4 15916 0t0 TCP 192.168.1.110:ssh->192.168.1.107:53725 (ESTABLISHED)
(2)方法二:netstat –lntup
参数:
-l 是列表
-n 不列出进程的服务名称,以端口号显示
-t tcp协议
-u udp协议
-p 显示端口对应的pid
[root@linzhongniao ~]# netstat -lntup|grep 22 tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1528/sshd tcp0 0 :::22 :::*LISTEN 1528/sshd
例如:baidu的网站有问题
ping -c3 -i2 -s512 www.baidu.com
各个高速节点有没有修通traceroute,windows用tracert -d
参数:-n Do not try to map IP addresses to host names when displaying them
不解析ip地址和主机名
[root@linzhongniao ~]# traceroute -n www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets 1 192.168.1.1 3.424 ms 4.903 ms 4.781 ms 2 192.168.18.1 4.699 ms 4.567 ms 7.154 ms 3 111.166.52.1 7.155 ms 7.271 ms 7.217 ms 4 117.8.161.249 35.808 ms 35.745 ms 35.574 ms 5 117.8.151.33 6.894 ms 117.8.154.29 5.127 ms 117.8.154.9 4.641 ms 6 117.8.223.5 39.023 ms 117.8.222.73 32.862 ms 117.8.223.101 31.424 ms 7 219.158.18.165 31.282 ms 219.158.7.37 31.208 ms 219.158.18.165 31.110 ms 8 124.65.194.30 28.378 ms 123.126.0.230 30.869 ms 124.65.194.18 30.817 ms 9 123.126.6.198 32.625 ms 202.106.230.122 32.779 ms 123.126.9.126 32.684 ms 10 61.49.168.90 32.581 ms 8.570 ms 61.49.168.86 11.628 ms 11 * * *
查询出来的ip可能就是每个省的地址,浏览器输入ip138.com能够查询ip是哪的,例如查询61.49.168.90
例如检查baidu的服务器的服务开没开,若是这个地方没通用ping和telnet是通的就说明,你本身的这个端口对应的服务没开或防火墙挡住了。
也能够用nmap 检查端口开没开,nmap 接ip也能够接域名,看到open就说明http服务是开启的
[root@linzhongniao ~]# nmap www.baidu.com -p 80 Starting Nmap 5.51 ( http://nmap.org ) at 2018-08-29 16:23 CST Nmap scan report for www.baidu.com (61.135.169.121) Host is up (0.0071s latency). Other addresses for www.baidu.com (not scanned): 61.135.169.125 PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
不通:
一、80服务没开或端口不存在。
二、防火墙阻挡了。
三、服务监听的端口不在链接的IP上。
四、运营商默认不开端口,申请开端口。
tcpdump文件接口数据包捕获器
参数:
-n 指定协议 -X 能够列出十六进制以及ASCII的数据包内容,对于监听数据包内容颇有用 -i 接口,指定网卡设备,例如eth0,eth1 -c 监听数据包的次数,若是没有这个参数会一直监听 -nn 直接以IP以及port number显示,而非主机名与服务名称
所捕获的数据包的数据格式:咱们能够专门针对默认协议或者IP来源进行数据包捕获。就能够就简化输出结果获得想要的信息,常见的表示方法有:
'host foo' 'host 127.0.0.1' 针对单台机器来进行数据包的获取 'net 192.168' 针对某个网络来进行数据包的捕获 'src host 127.0.0.1' 'dst net 192.168' 同时加上来源src和目标dst限制 'tcp port 21' 还能够针对通讯协议检测如tcp udp arp等 还能够用and与or来进行数据包数据的整合
演示:使用tcpdump监听来自eth0网卡且通讯协议为icmp的数据包的来源
[root@linzhongniao ~]# tcpdump -n icmp -i eth0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
这时候会不继续显示内容,由于没有ping etho网卡,下面咱们用电脑ping eth0网卡对应的ip地址。
若是ping不通就又问题了,那么网络通过的每个点,每个路由都要监听
例题:如何使用tcpdump①监听来自eth0网卡且②通讯协议为port 22,③目标数据包来源为192.168.1.108的数据包?
tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.108'
临时方法:
hostname linzhongniao
退出当前shell从新登陆失效,只能临时修改文件名,重启系统后失效
永久方法:
方法以:
修改/etc/sysconfig/network配置文件。将HOSTNAME的值改为linzhongniao
[root@linzhongniao ~]# grep "HOSTNAME" /etc/sysconfig/network HOSTNAME=linzhongniao
修改/etc/hosts文件,将127.0.0.1对应的主机名也修改成linzhongniao
方法二:
用setup工具 执行setup-网络配置-- Edit DNS configuration--> DNS configuration x x x Hostname linzhongniao_______ x ===========>修改这里 x Primary DNS 202.106.0.20___ x x Secondary DNS 211.147.6.3____ x x Tertiary DNS _______________ x x Search_______________ x
修改完这里还须要把/etc/hosts里面的127.0.0.1对应的主机名修改为linzhongniao。不用重启服务器的方法是临时方法和永久方法都要设置,这样不重启服务器主机名也是生效的。
提示:若是/etc/hosts不改,之后会遇到一些问题,如sendmail启动缓慢,ldap服务解析慢,sudo切换用户缓慢等等都是主机名和/etc/hosts中的解析不对应致使的。
[root@linzhongniao ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 ==》这里是eth0网卡设备的默认配置文件 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 ================》这里是网卡名称第一块网卡为eth0,第二块为eth1... BOOTPROTO=static============》static为固定IP地址,非动态DHCP获取 BROADCAST=10.0.0.255 =======》这里是广播地址,通常为网络地址的最后一个地址。 HWADDR=00:0C:29:0E:5F:63 ===》这里mac地址,不一样的机器不能重复,尤为是在刻隆虚拟机或复制网卡配置时要注意。 IPADDR=10.0.0.161 ==========》这里是IP地址 NETMASK=255.255.255.0=======》子网掩码/24 NETWORK=10.0.0.0 =========》网段设置 ONBOOT=yes =================》开机网卡自启动 GATEWAY=10.0.0.254==========》网关的配置,也能够命令行经过route添加删除。 TYPE=Ethernet===============》类型以太网
提示:第一块网卡为ifcfg-eth0,第二块为ifcfg-eth1...
配置服务器以及DNS等网路配置的方法
方法一:
setup-网络配置,而后修改
方法二:
直接编写网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf==》dns的配置文件,网卡配置文件和setup设置的dns优先于dns配置文件配置的dns
提示:以上两种方法通常须要从新加载网卡生效。
方法一:修改/etc/sysconfig/network
[root@linzhongniao ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=linzhongniao NTPSERVERARGS=iburst
方法二:修改网卡配置文件
特别注意:
/etc/sysconfig/network-scripts/ifcfg-bond0中配置的网关优先于/etc/sysconfig/network配置的网关,GATEWAY要大写。
方法三:经过命令行修改网关
添加默认网关:route add default gw 192.168.1.1
删除默认网关:route del default gw 192.168.1.1
注意:这种方法只是临时修改了网关从新加载或者启动网卡就会失效,解决办法就是将route add default gw 192.168.1.1添加到/etc/rc.local中或者/etc/init.d/network中让系统自动加载或者重启网卡也生效。
方法一:setup图形操做
方法二:修改/etc/resolv.conf 《==修改系统的dns配置文件
[root@linzhongniao ~]# cat /etc/resolv.conf ; generated by /sbin/dhclient-script search DHCP HOST nameserver 192.168.18.1 nameserver 114.114.114.114
方法三:也能够修改网卡配置文件
提示:网卡配置文件里面修改的dns优先于dns配置文件配置的dns
用ifconfig,ifconfig eth0(指定网卡)或者ip addr
[root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 00 bond0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 bond0 [root@linzhongniao ~]# netstat –rn 《==这种方法能够不记,记route便可 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 0 0 bond0
方法一:
[root@linzhongniao ~]# cat /etc/resolv.conf 《==这是常见的检查 ; generated by /sbin/dhclient-script search DHCP HOST nameserver 192.168.18.1 nameserver 114.114.114.114
方法二:
[root@linzhongniao ~]# ping g.cn 《这是最多见的检查方法返回地址说明是通的 PING g.cn (203.208.41.88) 56(84) bytes of data. 64 bytes from 203.208.41.88: icmp_seq=1 ttl=115 time=35.5 ms 64 bytes from 203.208.41.88: icmp_seq=2 ttl=115 time=34.0 ms
方法三:
[root@linzhongniao ~]# host www.baidu.com 《==这也是最经常使用的方法返回ip说明是通的 www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 61.135.169.125 www.a.shifen.com has address 61.135.169.121
方法四:
[root@linzhongniao ~]# nslookup 《==这也是最经常使用的方法 > www.baidu.com Server: 192.168.18.1 Address:192.168.18.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 61.135.169.125 Name: www.a.shifen.com Address: 61.135.169.121
方法五:
临时生效:
ifconfig [device] [IP] netmask [netmask ip] [up|down] ifconfig eth0:1 192.168.1.167 netmask 255.255.255.0 up
设置ip别名的做用
(1)测试用
测试www接口的浏览,创建一个虚拟的网络接口。能够马上链接上ip路由器,也不会影响原来的网络参数配置
(2)有设备没法提供更多实体网卡时
若是某台机器须要链接多个网络,但该设备确没法提供安装更多网卡,能够设置ip别名提供服务。
永久生效:
添加虚拟设备的配置文件ifcfg-eth0:1
解答:缺省网关路由
默认网关就是数据包不匹配任何设定的路由规则,最后都流经的地址关口。网关按字面意思就是网络的关口,就至关于咱们家里房子的门同样,若是外出都要通过房门,数据包也是同样的都要通过网关。
[root@linzhongniao ~]# route del default gw 192.168.1.1 《==这个命令是删除默认网关 添加指定网关default 至关于-net 192.168.1.0 netmask 255.255.255.0,这个部分。 [root@linzhongniao ~]# route –n 《==查看路由表 Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 00 bond0 [root@linzhongniao ~]# route add default gw 192.168.1.1 《==添加默认网关也是本题的答案 至关于route add –net 0.0.0.0/0 gw 192.168.1.1 [root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 00 bond0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 bond0 《==又回来了
特别强调:实际上route add default gw 192.168.1.1就至关于route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1
网络路由:即去往某一网络或网段的路由
解答实践:192.168.1.0网段的机器想经过192.168.1.1网关出去与172.16.1.0网段的机器互通。
方法一:
[root@linuxyunweijichu ~]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1 [root@linuxyunweijichu ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 00 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 172.16.1.0 192.168.1.1 255.255.255.0 UG0 00 eth0 《==添加的路由 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 00 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 eth0
方法二:想访问172.16.1.0网段从eth0网卡出去
[root@linuxyunweijichu ~]# route add -net 172.16.1.0 netmask 255.255.255.0 dev eth0 《==指定网卡设备不指定ip [root@linuxyunweijichu ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 00 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 172.16.1.0 0.0.0.0 255.255.255.0 U 0 00 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 00 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 eth0
总结:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 route add -net 192.168.1.0/24 dev eth0 route del -net 192.168.1.0/24 dev eth0
特别强调:以上方法重启服务都会失效。怎么可以不失效呢?
方法一:
编辑/etc/sysconfig/network-scripts/route-eth0
默认不存在此文件须要建立。推荐生产环境使用
添加以下方式:
172.16.1.0/24 via 192.168.1.1 dev eth0 目标网络 经过的网关 设备
提示:重启网卡或系统都会生效
方法二:
vi /etc/sysconfig/static-routes
#默认不存在此文件
加入以下内容:
any net 192.168.1.0/24 gw 192.168.1.1
提示:写到配置文件里,重启系统和系统都会生效
方法三:
编辑/etc/rc.local
加入以下内容:
route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
提示:方法三只是在开机时加载,重启网络服务会失效,可是重启系统会生效
若是是默认网关能够添加到网卡配置里
[root@linzhongniao ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-bond0 GATEWAY=192.168.1.1
主机路由:就是去往某一个主机地址如何配置路由
解答实践:
/sbin/route add -host 192.168.2.13 dev eth1 [root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.2.130.0.0.0 255.255.255.255 UH0 00 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 00 bond0 172.16.1.0 192.168.1.1 255.255.255.0 UG0 00 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 00 bond0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 bond0
route命令扩展:
删除一条默认路由即Destination栏为0.0.0.0:
route del default gw 169.254.0.0
删除一条静态路由:
如:route del -net 169.254.0.0 netmask 255.255.255.0
或者route –net 169.254.0.0/24
[root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 00 bond0 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 bond0 [root@linzhongniao ~]# route del -net 169.254.0.0 netmask 255.255.0.0 [root@linzhongniao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG0 00 bond0
删除主机路由:
route del -host 192.168.1.10 dev eth1
既然主机想要将数据传送到不一样的网段是须要经过路由器的帮忙,那么,路由器的主要功能就是转发网络数据包,也就是说,路由器会分析来源数据包的ip包头,在包头内找出须要的目标IP后,经过路由器的的路由表来将这个数据包向下一个目标传送,这就是路由功能,那么路由功能使如何实现呢?
硬件功能:如cisco等公司的硬件路由器,能够负责不一样网段间的数据包的翻译与传递功能。
软件功能:如linux操做系统的内核就提供了数据包的传递的功能。
那么在以太网中最简单的路由器功能,创建两个不一样的网段的链接在linux系统中是怎么实现的呢?
这个转发数据包的功能也是linux内核提供的,很简单查看内核功能的显示文件
[root@linzhongniao ~]# cat /proc/sys/net/ipv4/ip_forward 0《==0表示没有启动,1表明启动了
要让0改为1最简单的方法就是直接编译/proc/sys/net/ipv4/ip_forward
,可是在下次从新启动系统时生效,因此建议直接修改系统内核配置文件的内容,即修改/etc/sysctl.conf
[root@linzhongniao ~]# sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf [root@linzhongniao ~]# grep "net.ipv4.ip_forward = 1" /etc/sysctl.conf net.ipv4.ip_forward = 1 《==将这个地方的值改成1便可 [root@linzhongniao ~]# sysctl –p 《==马上让配置生效,sysctl在内核工做时是用来直接修改内核参数的一个命令
一般路由规划有两种:
静态路由:相似route这个命令直接设置路由表到内核功能当中,设置只与网段环境相符合便可,不够当网段有变化时,路由表就要从新设置了。
动态路由:相似Quagga或zebra软件的功能,这些软件安装在linux路由器上,它能够动态检测网络的变化,并直接修改linux路由表的信息