① 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