linux策略路由
發布時間: 2024-12-28 13:15:45
如果一個linux伺服器有三個口接三個不同的網路,對應的網路信息是如下
傳統情況下,如果是為了從內向外訪問獲得更好的速度,讓訪問電信走電信,訪問網通走網通,那麼配置是網關只能夠配置一個。
比如以電信為主的,那麼網關就只設置電信的1.1.1.254,而針對網通和教育網設置不同的路由,路由下一跳指向網通和教育網對應的 網關。
如果這樣做的目的只是實現內部訪問外面,那麼是沒問題了,但是如果是為了讓外面的用戶能夠正常訪問到伺服器上的服務就會出問題。比如電信用戶會無法訪問網通和教育網的ip,網通用戶會無法訪問電信和教育網的ip。而且只有設置了默認路由的那個網路能被跨網路訪問,其它兩個網路只能被本子網的設備訪問。
要解決這個問題,思路就是由哪個網口進來的流量希望全部就由哪個回去。用lartc裡面提到的方法就是來源的口不同,走不同的路由表。在默認的路由表基礎上再建立三個路由表。
用 ip route show 可以看到默認有local,main,default三個路由表,這三個路由表的名稱命名來自 /etc/iproute2/rt_tables ,這里先在這個配置文件裡面添加三個不同的路由表表名,
之後建立這三個路由表的內容,因為這三個路由表的只是用來響應來自不同介面的,而不是用來相應從哪個介面出去的,所以只需要每個路由表裡面建立默認網關即可。
之後再加上三條規則,使來自不同的口的走不同的路由表
至此無論是電信還是網通還是教育網用戶,訪問三個ip的任意一個地址都能夠連通了。即便是伺服器上本身的默認路由都沒有設置,也能夠讓外面的用戶正常訪問。三個網路的IP都能被跨網路訪問了。
命令匯總:
熱點內容