看個例子:
1.on server
ifconfig eth4 192.168.1.10/24 up
ifconfig eth5 192.168.1.11/24 up
2.on client
ifconfig eth4 192.168.1.20/24 up
3.on client
ping 192.168.1.10 -c 3
ping 192.168.1.11 -c 3
actual results:
[root@client ~]# arp
address hwtype hwaddress flags mask iface
192.168.1.11 ether 00:1b:21:4a:fe:98 c eth4 <***** 錯了吧?
192.168.1.10 ether 00:1b:21:4a:fe:98 c eth4
expected results:
[root@client ~]# arp
address hwtype hwaddress flags mask iface
192.168.1.11 ether 00:1b:21:4a:fe:99 c eth4
192.168.1.10 ether 00:1b:21:4a:fe:98 c eth4
additional info:
23:28:23.272726 arp reply 192.168.1.10 is-at 00:1b:21:4a:fe:99 (oui unknown)
23:28:23.272783 arp reply 192.168.1.10 is-at 00:1b:21:4a:fe:98 (oui unknown)
23:28:46.750823 arp reply 192.168.1.11 is-at 00:1b:21:4a:fe:99 (oui unknown)
23:28:46.750850 arp reply 192.168.1.11 is-at 00:1b:21:4a:fe:98 (oui unknown)
這個問題是是由linux的路由和arp機制造成的,主要是路由。
在linux中,ip位址是主機的屬性,而不是介面的屬性。
這就造成在反向路由查詢時,可以考慮包進入的介面,也可以不考慮。
此時arp請求包會有兩個應答,client會選擇後乙個。
關鍵是server會接著發乙個arp請求,並且始終從eth4發出來(因為eth4的路由在前邊),
這樣client在應該該arp請求時,又會更新arp表。
所以我們在client上看到arp表中始終是eth4的mac。
解決方法:
1 echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
2 ip route add 192.168.1.20/32 nexthop via 192.168.1.10 weight 1 nexthop via 192.168.1.11 weight 1
這裡,新增的新路由的作用是以192.168.1.20作為目標位址進行反向路由檢查時,依次迴圈選擇eth4和eth5。
而arp_filter的作用是,只有通過了反向路由檢查的包才會發出去。
一台機器同時啟動2個tomcat
1.特別要注意 不要設定catalina home 2.分別修改安裝目錄下的conf子目錄中的server.xml檔案 a.修改http訪問埠 預設為8080埠 將8080修改為tomcat不在使用的埠號。此處所設的埠號即是以後訪問web時所用的埠號。b.修改shutdown埠 預設為8005埠 將...
怎麼在一台機器上同時啟動2個tomcat
設定 server.xml 檔案 a.修改http訪問埠 預設為 8080埠 將8080修改為tomcat不在使用的埠號。此處所設的埠號即是以後訪問web時所用的埠號。b.修改shutdown埠 預設為8005埠 將8005修改為沒有在使用的埠號,例如8055。c.修改8009埠,將8009修改為沒...
linux 2臺機器之間建立ssh互信
環境說明 192.168.157.101 vms001 rhel7.1 192.168.157.102 vms002 rhel7.1 vms001伺服器操作 1.vms001生成公鑰私鑰 命令執行成功,會在 ssh目錄下生成2個檔案 id rsa.pub為公鑰檔案,現實生活中相當於鎖 id rsa ...