arp ubuntu(arp地址解析协议)
本篇文章给大家谈谈arp ubuntu,以及arp地址解析协议对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
如何查看我电脑的mac地址 我系统是ubuntu
在Ubuntu系统中查看Mac地址的方法有多种。首先,可以使用"ifconfig"命令。打开终端,输入 ifconfig命令并回车,终端将显示所有网络接口的详细信息。查找名称以"eth"开头的行,然后找到与之对应的 HWaddr列。这部分信息即为Mac地址。
另一种方法是使用"arp"命令。在终端输入 arp-a命令并回车。终端将显示所有已解析的网络地址。在输出信息中,查找以"MAC"开头的行,然后找到与之对应的 MAC地址。这即为Mac地址。
还有一种方法是使用"lshw"命令。在终端输入 sudo lshw-C network命令并回车,以管理员权限运行命令以查看所有网络接口信息。查找名称以"Ethernet"或"Network"开头的行,然后在 serial列中找到的字符串即为Mac地址。
综上所述,根据Ubuntu系统中不同的网络接口查找对应信息,即可找到Mac地址。这些方法操作简便,能够快速获取所需信息,无需复杂的设置或软件。
新人请教,Ubuntu14.04怎样通过PPPoE联网
一、实现前的网络拓扑
========================================
1、PPPOE服务端是笔记本电脑,运行Ubuntu12.04系统,有一个网卡,和一个无线网卡。
2、PPPOE客户端是一个测试板,运行嵌入式linux系统MontaVista(R) Linux(R) Professional Edition 5.0.0,有一个网卡。
3、笔记本和测试板网卡口直连互通(便于测试板挂载笔记本的nfs根文件系统,若不直连通过路由器和笔记本同网段互联也行),网段:192.168.0.0/24。
4、笔记本的无线网卡和无线路由连接,网段:192.168.1.0/24。
5、网络接口情况
(1)服务端:
quietheart@quietheart-ThinkPad-E420:~/work$ ifconfig
eth0 Link encap:以太网硬件地址 f0:de:f1:f0:08:60
inet地址:192.168.0.116广播:192.168.0.255掩码:255.255.255.0
inet6地址: fe80::f2de:f1ff:fef0:860/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500跃点数:1
接收数据包:2270错误:0丢弃:0过载:0帧数:0
发送数据包:4735错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:1000
接收字节:377210(377.2 KB)发送字节:5218298(5.2 MB)
中断:41基本地址:0x6000
lo Link encap:本地环回
inet地址:127.0.0.1掩码:255.0.0.0
inet6地址:::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436跃点数:1
接收数据包:129错误:0丢弃:0过载:0帧数:0
发送数据包:129错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:0
接收字节:12349(12.3 KB)发送字节:12349(12.3 KB)
wlan0 Link encap:以太网硬件地址 44:6d:57:5e:28:6c
inet地址:192.168.1.100广播:192.168.1.255掩码:255.255.255.0
inet6地址: fe80::466d:57ff:fe5e:286c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500跃点数:1
接收数据包:165错误:0丢弃:0过载:0帧数:0
发送数据包:218错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:1000
接收字节:71986(71.9 KB)发送字节:34459(34.4 KB)
(2)客户端:
# ifconfig
eth0 Link encap:Ethernet HWaddr 74:37:2F:20:20:14
inet addr:192.168.0.120 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7637:2fff:fe20:2014/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4718 errors:0 dropped:0 overruns:0 frame:0
TX packets:2303 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5259832(5.0 MiB) TX bytes:383574(374.5 KiB)
Interrupt:52 Base address:0x7000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:148(148.0 B) TX bytes:148(148.0 B)
二、服务端搭建PPPOE的过程
========================================
1、安装pppoe服务软件
#sudo apt-get install ppp
2、配置服务
2.1、设置验证信息
#vim/etc/ppp/pppoe-server-options
#使用chap验证协议,如果使用pap验证协议,则此行为 require-pap
require-chap
#vim/etc/ppp/options
#(设置验证方式)
-pap
+chap
#(允许本地验证)
local
这里:
(1)、如果使用pap验证方式,windowsxp以上系统自带的pppoe拨号,无法拨通。可能原因是pap使用明文密码验证,而windows保存的密码是加密的,而且是不可恢复的加密,所以windows无法提供密码明文。
(2)、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置无论写在哪个文件中,都能够起到作用
2.2、添加用户信息
#vim/etc/ppp/chap-secrets
#添加用户名和密码
# client server secret IP addresses
myuser* mypassword*
3、启动和关闭PPPOE服务
3.1、启动pppoe服务
#pppoe-server-I eth0-L 172.168.0.1-R 172.168.0.210-N 20
-I eth0指定pppoe服务器在哪个网卡接口监听连接请求
-L 172.168.0.1指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP,和网卡eth0的地址无关,实际网卡eth0没有IP也可以)
-R 172.168.0.210 pppoe服务器分配给客户端的IP地址,从192.168.27.210开始,递增。
-N 20指定最多可以连接pppoe服务器的客户端数量
3.2、关闭PPPOE服务器
killall pppoe-server
三、客户端连接PPPOE服务端
========================================
安装:
1、使用pppoe拨号链接:
#pppoe-setup
...
USER NAME
>>>...:myuser
...
INTERFACE
>>>...:eth0
...
PASSWORD
>>>...:mypassword
>>>...:mypassword
...
这里,"pppoe-setup"进入交互操作,具体选择如上,其它默认(如dns为server,防火墙为0等),"pppoe-setup"是一个脚本,用于生成连接服务所需的配置信息。
#pppoe-start
. Connected!
这样,连接之后,客户端会有一个ppp0的设备如下:
# ifconfig
eth0 Link encap:Ethernet HWaddr 74:37:2F:20:20:14
inet addr:192.168.0.120 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7637:2fff:fe20:2014/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6763 errors:0 dropped:0 overruns:0 frame:0
TX packets:3576 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6045812(5.7 MiB) TX bytes:674773(658.9 KiB)
Interrupt:52 Base address:0x7000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:148(148.0 B) TX bytes:148(148.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:172.168.0.210 P-t-P:172.168.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:45(45.0 B) TX bytes:45(45.0 B)
同时,服务端也多出一个ppp0,如下:
root@quietheart-ThinkPad-E420:/home/quietheart/work# ifconfig
eth0 Link encap:以太网硬件地址 f0:de:f1:f0:08:60
inet地址:192.168.0.116广播:192.168.0.255掩码:255.255.255.0
inet6地址: fe80::f2de:f1ff:fef0:860/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500跃点数:1
接收数据包:3580错误:0丢弃:0过载:0帧数:0
发送数据包:6890错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:1000
接收字节:676540(676.5 KB)发送字节:6055600(6.0 MB)
中断:41基本地址:0x6000
lo Link encap:本地环回
inet地址:127.0.0.1掩码:255.0.0.0
inet6地址:::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436跃点数:1
接收数据包:536错误:0丢弃:0过载:0帧数:0
发送数据包:536错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:0
接收字节:49149(49.1 KB)发送字节:49149(49.1 KB)
ppp0 Link encap:点对点协议
inet地址:172.168.0.1点对点:172.168.0.210掩码:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492跃点数:1
接收数据包:6错误:0丢弃:0过载:0帧数:0
发送数据包:6错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:3
接收字节:45(45.0 B)发送字节:45(45.0 B)
wlan0 Link encap:以太网硬件地址 44:6d:57:5e:28:6c
inet地址:192.168.1.100广播:192.168.1.255掩码:255.255.255.0
inet6地址: fe80::466d:57ff:fe5e:286c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500跃点数:1
接收数据包:273错误:0丢弃:0过载:0帧数:0
发送数据包:229错误:0丢弃:0过载:0载波:0
碰撞:0发送队列长度:1000
接收字节:110356(110.3 KB)发送字节:36760(36.7 KB)
这样我们可见,两者的ppp0设备互相有对方的网址,这里可能都是ppp0,也可能不都是。
3、断开链接
#pppoe-stop
四、应用
========================================
1、利用pppoe链接共享上网
假设采用以上的设置,通过上面配置信息我们可知:ppp服务器和客户端(板子)通过eth0直连,服务器有wlan0无线网卡。这里,无线网卡wlan0可以连接外网,那么,我们可以如下设置,使得pppoe客户端也能通过服务器的无线网卡共享上网。
(1)服务器上
首先,给pppoe服务添加默认网关使之能访问外网:
root@quietheart-ThinkPad-E420:/home/quietheart# route add default gw 192.168.1.1 dev wlan0
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
......
这里,因为可能笔记本默认网关不是无线路由而是eth0对应的192.168.0.1,这个不能访问外网(因为它和测试板直连了),所以添加一个网关,这样笔记本能访问外网了,(注意,如果此时优先匹配eth0的网关的话,笔记本还是不能上网,所以最好先将eth0的网关在路由表中删除)192.168.1.1是无线网卡所使用的网关一般就是无线路由的网址。
其次,打开服务端的ip转发:
root@quietheart-ThinkPad-E420:/home/quietheart# echo"1">/proc/sys/net/ipv4/ip_forward
或/et/sysctl.conf的net.ipv4.ip_forward= 1
最后,只添加路由还是不够的,还要转发pppoe上的数据到无线网卡上:
iptables-t nat-A POSTROUTING-s 172.168.0.0/24-o wlan0-j MASQUERADE
至此,可以用板子链接上外网了。
(2)客户端上
添加ppp0为默认路由网关出口:
#route add default gw 172.168.0.1 dev ppp0
这里同样注意,如果此时优先匹配其它网口的网关的话,还是不能经过pppoe上网,所以最好先将其它网口的网关在路由表中删除。
#ping www.baidu.com
PING www.a.shifen.com(115.239.210.26) 56(84) bytes of data.
64 bytes from 115.239.210.26: icmp_req=1 ttl=53 time=398 ms
64 bytes from 115.239.210.26: icmp_req=2 ttl=53 time=31.6 ms
^C64 bytes from 115.239.210.26: icmp_req=3 ttl=53 time=30.1 ms
至此,我们可以看到,测试板可以访问外网。访问时会经过ppp0,到达笔记本的ppp0,然后笔记本又将其转发给能够连接外网的wlan0,实现通过pppoe访问外网(www.baidu.com)。
五、其它补充
========================================
1.iptables
关于iptables,是一个内核防火墙模块,可以实现数据包的过滤和转发,具体请参见iptables的man手册。
可以以如下命令以及上述设置路由的相关命令为起点研究。
root@quietheart-ThinkPad-E420:/home/quietheart/work# iptables-A INPUT-i eth0-s 172.168.0.0/24-j DROP
root@quietheart-ThinkPad-E420:/home/quietheart/work# iptables-t nat-A POSTROUTING-s 172.168.0.0/24-j SNAT--to-source 172.168.0.1
2.关闭ICMP,防止别人Ping。
echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all
3.内核的支持
注意需要对内核相应配置以支持pppoe,如下:
开发板内核配置中应当支持所有的ppp选项,如下修改内核配置---使内核支持PPP
修改的地方:
(1),Device Drivers-->
Network device driver-->
PPP下面所有的选项
(2),Device Drivers-->
Networking-->
Universal TUN/TAP
4.数据包大小
以太网帧最大长度为1518个字节,其中14个字节是帧头的长度,4个字节是校验码,所以1500个字节是数据载荷也就是说以太帧最大传输单元MTU为1500个字节,而pppoe头有6个字节,封装ppp协议时ppp协议域又占2个字节,所以pppoe接口MTU为1492个字节。一般连接时会自动设置,如果手动设置,请参见ifconfig的手册。
linuxarp命令linuxarp
如何在我的linux查看我的arp表格?
LinuxArp命令显示和修改地址解析协议(ARP)使用的“IP到物理”地址转换表。
ARP-sinet_addreth_addrARP-dinet_addrARP-a-a通过询问当前协议数据,显示当前ARP项。
如果指定inet_addr,则只显示指定计算机的IP地址和物理地址。
如果不止一个网络接口使用ARP,则显示每个ARP表的项。-g与-a相同。
-v在详细模式下显示当前ARP项。所有无效项和环回接口上的项都将显示。
inet_addr指定Internet地址(IP地址)。
-Nif_addr显示if_addr指定的网络接口的ARP项。
-d删除inet_addr指定的主机。
inet_addr可以是通配符*,以删除所有主机。-s添加主机并且将Internet地址inet_addr与物理地址eth_addr相关联。
物理地址是用连字符分隔的6个十六进制字节。该项是永久的。
eth_addr指定物理地址。
if_addr如果存在,此项指定地址转换表应修改的接口的Internet地址。如果不存在,则使用第一个适用的接口。
示例:添加静态项。
这个很有用,特别是局域网中中了arp病毒以后#arp-s123.253.68.20900:19:56:6F:87:D2#arp-a....显示ARP表。但是arp-s设置的静态项在用户登出之后或重起之后会失效,如果想要任何时候都不失效,可以将ip和mac的对应关系写入arp命令默认的配置文件/etc/ethers中例如:引用root@ubuntu:/#vi/etc/ethers211.144.68.25400:12:D9:32:BF:44写入之后执行下面的命令就好了引用arp-f/etc/ethers为保证重起之后绑定仍然有效,需要把上述命令写入/etc/ethersARP(AddressResolutionProtocol),或称地址解析协议。
本地机向某个IP地址--目标机IP地址发送数据时,先查找本地的ARP表,如果在ARP表中找到目标机IP地址的ARP表项,(网络协议)将把目标机IP地址对应的MAC地址放到MAC包的目的MAC地址字段直接发送出去;如果在ARP表没有找到目标机IP地址的ARP表项,则向局域网发送广播ARP包(目的MAC地址字段==FF:FF:FF:FF:FF:FF),目标机将向本地机回复ARP包(包含目标机的MAC地址)
linux防火墙发展史?
1.认识防火墙
从逻辑上讲防火墙可以分为主机防火墙和网络防护墙。
主机防火墙:针对个别主机对出站入站的数据包进行过滤。(操作对象为个体)
网络防火墙:处于网络边缘,针对网络入口进行防护。(操作对象为整体)
从物理上讲防火墙可以分为硬件防火墙和软件防火墙。
硬件防火墙:通过硬件层面实现防火墙的功能,性能高,成本高。
软件防火墙:通过应用软件实现防火墙的功能,性能低,成本低。
2.系统防火墙发展过程
防火墙的发展史就是从墙到链再到表,也是从简单到复杂的过程。
防火墙工具变化如下:
ipfirewall--->ipchains--->iptables-->nftables(正在推广)
Linux2.0版内核中:包过滤机制为ipfw,管理工具是ipfwadm。
Linux2.2版内核中:包过滤机制为ipchain,管理工具是ipchains。
Linux2.4,2.6,3.0+版内核中:包过滤机制为netfilter,管理工具是iptables。
Linux3.1(3.13+)版内核中:包过滤机制为netfilter,中间采取daemon动态管理防火墙,管理工具是firewalld。
#目前低版本的firewalld通过调用iptables(command),它可以支持老的iptables规则(在firewalld里面叫做直接规则),
#同时firewalld兼顾了iptables,ebtables,ip6tables的功能。
3.iptables和nftables
nftables
nftables诞生于2008年,2013年底合并到Linux内核,从Linux3.13起开始作为iptables的替代品提供给用户。
它是新的数据包分类框架,新的linux防火墙管理程序,旨在替代现存的{ip,ip6,arp,eb}_tables,它的用户空间管理工具是nft。
由于iptables的一些缺陷,目前正在慢慢过渡用nftables替换iptables,同时由于这个新的框架的兼容性,
所以nftables也支持在这个框架上运行直接iptables这个用户空间的管理工具。
nftables实现了一组被称为表达式的指令,可通过在寄存器中储存和加载来交换数据。
也就是说,nftables的核心可视为一个虚拟机,nftables的前端工具nft可以利用内核提供的表达式去模拟旧的iptables匹配,
维持兼容性的同时获得更大的灵活性。
而未来最新的firewalld(0.8.0)默认使用将使用nftables。详情可以看www.firewalld.org
iptables、nftables和firewalld之间的区别与联系
firewalld同时支持iptables和nftables,未来最新版本(0.8.0)默认将使用nftables。
简单的说firewalld是基于nftfilter防火墙的用户界面工具。而iptables和nftables是命令行工具。
firewalld引入区域的概念,可以动态配置,让防火墙配置及使用变得简便。
准确的说:iptables(command)的最底层是netfilter,它的用户空间管理工具是iptables
nftables(command)是iptables(command)的一个替代品并兼容iptables(command),最底层依然是netfilter,它的用户空间管理工具是nft,
同时未来firewalld最新版(0.8.0)也将默认支持nftables(command)。
iptables会把配置好的防火墙策略交给内核层的netfilter网络过滤器来处理
firewalld会把配置好的防火墙策略交给内核层的nftables包过滤框架来处理
下图为iptables、firewalld、nftables之间的关系图:
?
4.centos6.X到centos7.X
centos6.X:防火墙由netfilter和iptables构成。其中iptables用于制定规则,又被称为防火墙的用户态;
而netfilter实现防火墙的具体功能,又被称为内核态。简单地讲,iptables制定规则,而netfilter执行规则。
centos7.X:防火墙在6.X防火墙的基础之上提出了新的防火墙管理工具,提出了区域的概念,通过区域定义网络链接以及安全等级。
5.怎样学好防火墙的配置?
1)OSI7层模型以及不同层对应哪些协议必须很熟悉#基础必备
2)TCP/IP三次握手,四次断开的过程,TCPHEADER,状态转换#基础必备
3)常用的服务端口要非常清楚了解。#基础必备
4)常用服务协议的原理,特别是http协议,icmp协议。#基础必备
5)能够熟练的利用tcpdump和wireshark进行抓包并分析,这样会更好#拓展
6)对计算机网络有研究,至少基本路由交换要很熟悉#拓展
6、企业中安全配置原则
尽可能不给服务器配置外网IP,可以通过代理转发或者通过防火墙映射。
并发不是特别大情况有外网IP,可以开启防火墙服务。
大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全。
Linux的协议栈是什么呢?
Linux网络协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。Linux网络协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好。Linux的协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。物理层主要提供各种连接的物理设备,如各种网卡,串口卡等;链路层主要指的是提供对物理层进行访问的各种接口卡的驱动程序,如网卡驱动等;网路层的作用是负责将网络数据包传输到正确的位置,最重要的网络层协议当然就是IP协议了,其实网络层还有其他的协议如ICMP,ARP,RARP等,只不过不像IP那样被多数人所熟悉;传输层的作用主要是提供端到端,说白一点就是提供应用程序之间的通信,传输层最着名的协议非TCP与UDP协议末属了;应用层,顾名思义,当然就是由应用程序提供的,用来对传输数据进行语义解释的“人机界面”层了,比如HTTP,SMTP,FTP等等,其实应用层还不是人们最终所看到的那一层,最上面的一层应该是“解释层”,负责将数据以各种不同的表项形式最终呈献到人们眼前。Linux网络核心架构Linux的网络架构从上往下可以分为三层,分别是:用户空间的应用层。内核空间的网络协议栈层。物理硬件层。其中最重要最核心的当然是内核空间的协议栈层了。Linux网络协议栈结构Linux的整个网络协议栈都构建与LinuxKernel中,整个栈也是严格按照分层的思想来设计的,整个栈共分为五层,分别是:
1,系统调用接口层,实质是一个面向用户空间应用程序的接口调用库,向用户空间应用程序提供使用网络服务的接口。
2,协议无关的接口层,就是SOCKET层,这一层的目的是屏蔽底层的不同协议(更准确的来说主要是TCP与UDP,当然还包括RAWIP,SCTP等),以便与系统调用层之间的接口可以简单,统一。简单的说,不管我们应用层使用什么协议,都要通过系统调用接口来建立一个SOCKET,这个SOCKET其实是一个巨大的sock结构,它和下面一层的网络协议层联系起来,屏蔽了不同的网络协议的不同,只吧数据部分呈献给应用层(通过系统调用接口来呈献)。
3,网络协议实现层,毫无疑问,这是整个协议栈的核心。这一层主要实现各种网络协议,最主要的当然是IP,ICMP,ARP,RARP,TCP,UDP等。这一层包含了很多设计的技巧与算法,相当的不错。
4,与具体设备无关的驱动接口层,这一层的目的主要是为了统一不同的接口卡的驱动程序与网络协议层的接口,它将各种不同的驱动程序的功能统一抽象为几个特殊的动作,如open,close,init等,这一层可以屏蔽底层不同的驱动程序。
5,驱动程序层,这一层的目的就很简单了,就是建立与硬件的接口层。可以看到,Linux网络协议栈是一个严格分层的结构,其中的每一层都执行相对独立的功能,结构非常清晰。其中的两个“无关”层的设计非常棒,通过这两个“无关”层,其协议栈可以非常轻松的进行扩展。在我们自己的软件设计中,可以吸收这种设计方法。