環境: CentOS 6.9 指令: route
原因:
伺服器上的服務原本運作在一條線路上好好的,
但突然間有人想要再這台伺服器上加一條線路,
讓服務運作再兩條線路上,且都可以正常使用。
但又不想再加購其他可以達成這個功能的硬體設備。
處理方式
* 前置作業
- em1 設定完整的連線設定。[用於遠端連線操作用]
- em2 只要設定IP & Netmask (不要gateway)。
此處設第1條線路的網段,只從em1網卡出去
=!========================================================
#master Line
ip route add [em1網段] dev em1 src [em1 IP位址] table [Line1<名稱自訂>]
ip route add default via [em1 的GW] table [Line1<名稱自訂>]
ip rule add from [em1 IP位址] table [Line1<名稱自訂>]
=!========================================================
此處設第2條線路的網斷,只從em2網卡出去
=!========================================================
#other Line
ip route add [em2網段] dev em2 src [em2 IP位址] table [Line2<名稱自訂>]
ip route add default via [em2 的GW] table [Line2<名稱自訂>]
ip rule add from [em2 IP位址] ttable [Line2<名稱自訂>]
=!========================================================
最後要做一個scope
因為前面有設定table說 : 「從邊來的就往哪回去」
設定scope時用add遇到" RTNETLINK answers: File exists "問題,
原因是規則已經存在route裏面,你再加上去是個錯誤的操作。
所以這邊用append <附加> 取代add 將規則置入。
用 add ,要先把目前已存在的規則delete,再使用add加上去.
但若是遠端操作的狀況下,你delete後就會連不到主機了,
所以還是建議append。
=!========================================================
#scope
ip route append default scope global nexthop via [em1 IP位址] dev em1 weight 1 nexthop via [em2 IP位址] dev em2 weight 4
=!========================================================
# weight 1 (設定權重。通常都設1 )
但因為之前已經設定從哪來從哪回去,所以設定1 ,1 也可以。
# nexthop NEXTHOP (這是多條線路使用,下一個線路往哪)
# via <IP> (下一站往哪走)
# dev <網卡> (輸出設備在哪)
如果這是要長駐使用的,記得將規則寫成一個shell。
讓它會在開機時執行,以避免哪天重開規則就不見了。
<本篇完>