① Linux下同一个网卡多个同网段的地址,如何永久指定源地址
1、CentOS添加路由有很多方法,你用的是命令,没有保存下来
ip route change default dev ens160 src 192.168.3.10
当一个主机有多个网卡配置了多个 IP 的时候,对于它产生的网络包,可以在路由选择时设置源 IP 地址。src 选项只会影响该 host 上产生的网络包。如果是一个被路由的外来包,明显地它已经带有了一个源 IP 地址,这时候,src 参数的配置对它没有任何影响,除非你使用 NAT 来改变它。
2、默认src是ens160,你可以把ens160:1和ens160的IP对换一下
默认路由如果在 vi /etc/sysconfig/network
删除GATEWAY=192.168.3.254
ip route ls
默认会包含
src 192.168.3.10
3、vi /etc/sysconfig/network-scripts/ifcfg-ens160:0
添加GATEWAY=192.168.3.10
4、或者vi /etc/sysconfig/network-scripts/route-ens160:0
0.0.0.0/0 via 192.168.3.254 dev ens160:0 src 192.168.3.10
192.168.3.0/24 via 192.168.3.254 dev ens160:0 src 192.168.3.10
default via 192.168.3.254 dev ens160:0 src 192.168.3.10
5、或者将静态路由加到/etc/sysconfig/static-routes
any net any gw 192.168.3.254
any net 192.168.3.0/24 gw 192.168.3.254
any net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.254
② 中兴路由器带源地址ping命令
中兴路由器带源地址ping命令:
方法是:点击电脑左下角开始-运行-框内输入cmd按回车-弹出的窗口上输入ping192.168.1.1。ping和192之间有个空格,然后回车。
如果出现Requesttimeout则表示你的路由器连接不到你请求的地址(192.168.1.1)。pingwww..com也一样。学会2个ping命令就能定位问题所有非常简单。此方法还适用与192.168.1.1登陆页面打不开的故障。
③ 怎么使用ping ip-n命令,指定测试次数为10次
1、首先在开始菜单中的命令框中输入CMD这个命令。
2、单击 “确定” 后,会出现如下 DOS 命令。
3、在光标后键入 “ping" 空格后,键入要查询的网络程序的代码(可以是IP地址,网络地址),假如你需要PING 的IP是192.168.0.1,就输入ping 192.168.0.1 -n 10 然后按enter键。这个就是对IP地址是192.168.0.1测试网络10次。
④ 路由器里的常用命令
路由器常用的命令如下:
1、Router>(用户模式)、Router>enable (进入特权模式)、Router#(特权模式) 、Router#configure terminal(进入全局配置模式) 、Router(config)# (全局配置模式) 。
2、Router(config)#hostnameXXX (设置路由器主机名) 、Router(config)#enable password 123(设置特权非密口令) 、Router(config)#enable secret123 (设置特权加密口令) 。
3、Router(config)#interface f0/6 (进入端口配置模式 ) 、Router(config-if)# (端口配置模式) 、Router(config)#line consode 0 (进入控制台端口)。
4、Router(config)#line vty 0 4(进入虚拟终端配置模式) 、Router(config- line)# (虚拟终端配置模式) 、Router(config)#router rip (进入rip路由协议配置模式)。
5、Router(config-router) ( rip路由协议配置模式)、Router(config-router)network 159.105.0.0(设置参与RIP协议的网络地址,不支持可变长掩码,只有IP网络号)。
6、Router(config)#router ospf 63(进入ospf路由协议配置模式)、Router(config-router) # (ospf路由协议配置模式)。
7、Router#write memory(保存配置到路由器的NVRAM中) 、Router#write network tftp (保存配置到 TFTP服务器中)。
路由器原理:
路由器通过路由决定数据的转发。转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。
作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP 的国际互联网络Internet的主体脉络,也可以说,路由器构成了Internet的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。
⑤ iptable masquerade中源地址选择问题
在iptable/ip6table上可以在nat table上完成SNAT和DNAT操作。SNAT指将匹配ip包的源地址进行修改,DNAT指将匹配ip包的目的地址进行修改。
在iptables命令上,SNAT书写规则需要写下SNAT转换的目标地址,这里必须明确写出自己需要转换成的地址
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat –to-source 192.168.5.3-192.168.5.5
但是在某些场合,iptable规则编写的时候源ip地址并不固定或可获取。那么此时Linux引入了masquerade动作,这个规则的意思就是Ip包从哪个interface出去,那么src ip就转换为此interface的ip地址。
那么当一个interface上有多个ip地址的时候怎么办呢?例如下面的接口eth0有两个相同网段的ip地址,那么masquerade会选择哪一个ip作为源ip地址呢?例如下面的情况
总体上来讲,masquerade在选择源ip地址时刻的选择规则其实和路由选择的源地址选择是一致的。最简单的获取masquerade源地址的方法是通过下面命令:
ip route get <dstip>
这在Linux源码上看得更清楚,下面是ipv4场景下masquerade选源路由的方法
上表中inet_select_addr(out,nh,RT_SCOPE_UNIVERSE)就是根据out,路由,选择源ip地址的过程。
在ipv4场景上,masquerade 源地址选择和路由源地址选择是也就是一致的,但是在ipv6场合就有一定的区别了。
ipv6场景下masquerade动作的执行函数为:
可见它的核心函数为ipv6_dev_get_saddr(),此函数执行的就是ipv6地址协议规定的源地址选择逻辑。而ipv6路由选择源地址函数实现为:
可以看到在ipv6 路由选择源地址中,并不是第一选择ipv6_dev_get_saddr()函数的。而是先选择ipv6 route 表中选路结果是否设置了prefsrc。上述函数中入参rt表示的是ipv6 route 路由表选择的entry。ipv6路由选择具体由ip6_route_output()—>fib6_fule_lookup查询而来。
是否设置了ipv6路由的prefer src可以通过ip -6 route list 命令查看到,例如:
可以看到针对2001::/64网段的dest ip,选路是eth0,prefer src为 2001::dbc:71
设置路由entry的prefer src命令为:ip -6 route add 2001::/64 dev eth0 scope link src 2001::dbc:71 metric 15
ipv6协议中规定了严格源地址/目标地址选择机制,主要涉及到RFC 3484.也就是说当ipv6源地址尚未确定时刻,按照RFC3484规定的 8条规则 选择一个源ip地址。这8条规则(rules)是有优先级的,从优先级从高到低排列如下:
所谓ipv6地址的scope(作用域)分为下面几类:
ipv6在选择地址时刻,还会进行目的地址和源地址的Label匹配,当匹配到固定的一对label时刻,匹配完成:
1.匹配时刻是按照目标地址最长前缀匹配方式,就是前缀匹配长度最长的label获胜,如此选出一个目标label;
2.按照源地址最长前缀匹配方式,找到一个label,这就是源label;
下面命令可以查看lpv6 address label
ip addrlabel list
单接口上有多个ip地址的时刻,masquerade源地址选择方式如下:
blog.csdn.net/dog250/article/details/87815123
⑥ tracert 是什么意思
tracert是一个dos下的网络命令,主要作用是对路由进行跟踪,常用的参数为-d,
tracert命令后可跟IP地址也可直接键入服务器域名。 tracert命令是用于探索源地址到目标地址当中所经过的路线。而每到达一个点,就会向源地址返回一个信号。例如A要访问D,那么当中经过B,再经过 C。当经过B时,会向A返回一个信号,当经过C时,再向A返回一个信号,最后到达D时,返回信号,结束整个过程。在这当中需要注意的是两点,经过的节点需要有IP地址才能返回信号,像普通交换机或hub,没有IP地址,是不可能有信号返回的。二是,网络都是双向的,像上面的例子,如果我们发现 tracert D,但到了C已经没有信号返回了,并不能说明信号到不了D,也有可能是信号到了,但中途有节点无法返回信号而已。判断时需注意。
⑦ 使用什么命令来查看目的主机接收到的报文
tcpmp常用命令:
#抓取所有经过 eth0,目的或源地址是 192.168.29.162 的网络数据
命令:tcpmp -n -i eth0 host 192.168.29.162
# 源地址
命令:tcpmp -i eth1 src host 192.168.29.162
# 目的地址
命令:tcpmp -i eth1 dst host 192.168.29.162
#抓取当前服务器eth0网卡端口8080的网络数据
命令:tcpmp -n -i eth0 port 8080
#抓取mysql执行的sql语句
命令:tcpmp -i eth1 -s 0 -l -w - dst port 3306 | strings
#抓取mysql通讯的网络包(cap用wireshark打开)
命令tcpmp -n -nn -tttt -i eth0 -s 65535 'port 3306' -w 20160505mysql.cap
#抓取SMTP 数据
命令:tcpmp -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'
#抓取HTTP GET数据,"GET "的十六进制是 47455420
命令:tcpmp -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'
#抓取SSH返回,"SSH-"的十六进制是 0x5353482D
命令:tcpmp -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'
#实时抓取端口号8080的GET包,然后写入GET.log
命令:tcpmp -i eth0 '((port 8080) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log
#抓取指定SYN个数,-c 参数指定抓多少个包。
命令:time tcpmp -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10