亚洲成无码人在线观看丨久久精品国产亚洲77777丨亚洲不卡av一区二区三区丨69麻豆天美精东蜜桃传媒潘甜甜丨久久综合之久久綜合

路由器

當前位置:首頁>IT運維>路由器
全部 17 路由器 17

重定向網關

時間:2025-03-24   訪問量:1255

示例:將默認網關重定向到 VPN 上的主機
可以讓一個節點將其所有網絡流量轉發到 VPN 上的主機,從而有效地使用此 VPN 主機作為默認網關。在 OpenVPN 中,有一個 --redirect-gateway為客戶端執行此操作的選項。使用 tinc,沒有這樣的選項,但可以使用 host-up 和 host-down 腳本復制此行為。首先解釋重定向默認網關背后的理論,然后是示例腳本。

示例:將默認網關重定向到 VPN 上的主機
理論
腳本
進一步配置
路由器與交換機模式
理論
通常,路由表中有兩個條目。一個是本地網絡的路由,它告訴內核哪些 IP 地址可直接訪問。第二個是“默認網關”,它告訴內核,為了到達互聯網的其余部分,流量應發送到本地網絡的網關。通常網關是路由器或防火墻設備,其 IPv4 地址通常以 結尾.1。Linux 上的示例輸出route -n:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
這里,LAN 的 IPv4 地址范圍為 192.168.1.0/24,網關為 192.168.1.1。假設我們有一個地址范圍為 172.16.0.0/16 的 VPN,其中存在一個地址為 172.16.1.1 的服務器。如果我們有一個 VPN 連接,并且客戶端想要用指向 172.16.1.1 的默認路由替換標準默認路由,那么就會出現問題:內核不再知道如何將封裝的 VPN 數據包發送到服務器。因此,我們需要為 VPN 服務器的真實 IP 地址的流量添加例外。假設其真實地址為 192.0.32.10,則路由表應變為:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.1      0.0.0.0         255.255.255.255 UH    0      0        0 vpn
192.0.32.10     192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 vpn
這將確保本地 LAN 可達、VPN 服務器的真實 IP 地址可通過原始網關可達、VPN 服務器的 VPN IP 地址可通過 VPN 接口可達,并且所有其他流量都通過 VPN 上的服務器進行。

最好不要刪除原始默認網關路由,因為有人可能會終止該tincd進程,這樣它就沒有機會恢復原始路由。相反,我們使用一個技巧,即添加兩個 /1 路由而不是一個 /0 路由:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.1      0.0.0.0         255.255.255.255 UH    0      0        0 vpn
192.0.32.10     192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
128.0.0.0       172.16.1.1      128.0.0.0       UG    0      0        0 vpn
0.0.0.0         172.16.1.1      128.0.0.0       UG    0      0        0 vpn
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
由于兩個 /1 覆蓋所有可能的地址,因此當存在兩個 /1 路由時,永遠不會使用真正的默認路由。

腳本
假設我們有兩個節點,分別稱為client和 server,網絡名稱為myvpn。此外,我們假設服務器已正確配置為在 VPN 和 Internet 之間為將其用作默認網關的客戶端執行路由或偽裝。然后,客戶端上只需要兩個腳本。以下腳本是 Linux 專用的:

/etc/tinc/myvpn/hosts/server-up:

#!/bin/sh
VPN_GATEWAY=172.16.1.1
ORIGINAL_GATEWAY=`ip route show | grep ^default | cut -d ' ' -f 2-5`

ip route add $REMOTEADDRESS $ORIGINAL_GATEWAY
ip route add $VPN_GATEWAY dev $INTERFACE
ip route add 0.0.0.0/1 via $VPN_GATEWAY dev $INTERFACE
ip route add 128.0.0.0/1 via $VPN_GATEWAY dev $INTERFACE
/etc/tinc/myvpn/hosts/server-down:

#!/bin/sh
ORIGINAL_GATEWAY=`ip route show | grep ^default | cut -d ' ' -f 2-5`

ip route del $REMOTEADDRESS $ORIGINAL_GATEWAY
ip route del $VPN_GATEWAY dev $INTERFACE
ip route del 0.0.0.0/1 dev $INTERFACE
ip route del 128.0.0.0/1 dev $INTERFACE
這些腳本使用 iproute2 命令,因為它們更易于使用。VPN_GATEWAY必須手動填寫變量。ORIGINAL_GATEWAY變量從原始默認路由復制相關信息,以創建到 VPN 服務器的例外路由。

進一步配置
還必須確保 tinc 守護進程知道將所有數據包發送到哪個節點。確保以下行位于 /etc/tinc/myvpn/hosts/server:

Subnet = 0.0.0.0/0
確保服務器上設置了偽裝或其他形式的路由。不要忘記允許轉發數據包;檢查防火墻設置,并確保內核中啟用了轉發:

echo 1 >/proc/sys/net/ipv4/ip_forward
您還可以設置端口轉發或代理,以便能夠從 Internet 的其余部分連接到客戶端上運行的服務。

路由器與交換機模式
上述示例適用于路由器和交換機模式。然而,在路由器模式下,實際上沒有網關路由。在該模式下,tinc-up 腳本中的以下四行:

VPN_GATEWAY=...

ip route add $VPN_GATEWAY dev $INTERFACE
ip route add 0.0.0.0/1 via $VPN_GATEWAY dev $INTERFACE
ip route add 128.0.0.0/1 via $VPN_GATEWAY dev $INTERFACE
可以用下面兩行替換,沒有任何問題:

ip route add 0.0.0.0/1 dev $INTERFACE
ip route add 128.0.0.0/1 dev $INTERFACE


上一篇:代理 ARP 作為橋接的替代方案

下一篇:簡單橋接與 DHCP 客戶端

發表評論:

評論記錄:

未查詢到任何數據!

在線咨詢

點擊這里給我發消息 售前咨詢專員

點擊這里給我發消息 售后服務專員

在線咨詢

免費通話

24小時免費咨詢

請輸入您的聯系電話,座機請加區號

免費通話

微信掃一掃

微信聯系
返回頂部
主站蜘蛛池模板: 威信县| 新密市| 建水县| 阿克苏市| 博客| 洪江市| 奉贤区| 安达市| 灵台县| 苗栗县| 湖州市| 盐亭县| 同心县| 蒲江县| 扶风县| 蓝田县| 星座| 九龙城区| 永州市| 探索| 古交市| 精河县| 张家界市| 德兴市| 南岸区| 长白| 长武县| 酉阳| 南部县| 彰化市| 西昌市| 全州县| 蕲春县| 曲沃县| 吴忠市| 屯门区| 冀州市| 庄浪县| 雅安市| 泽州县| 东至县|