成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

配置路由時指定源地址

網絡 路由交換
如果你的一塊網卡上配置了多個IP地址,那么在數據包發出時會使用哪一個呢?在Linux上,使用iproute2工具可以設置src參數強制封裝源地址:

如果你的一塊網卡上配置了多個IP地址,那么在數據包發出時會使用哪一個呢?在Linux上,使用iproute2工具可以設置src參數強制封裝源地址:

ip route add 1.2.3.4/32 via 4.3.2.1 src 3.3.3.3

但是在Windows上,一切都是內部邏輯自動選擇的,其原則如下:

單網卡時,選擇和默認網關在同一網段的最匹配IP地址為源;

多網卡時,首先選擇默認網關所在的網卡作為發送網卡,然而在該網卡上按照單網卡原則選擇一個IP地址作為源。

因此,如果你的目標地址是1.2.3.4,默認網關是4.3.2.1,本地連接上兩個IP地址:4.3.2.2和3.3.3.3,很顯然,4.3.2.2會作為源IP地址被選擇,這樣在發包的時候,4.3.2.2將作為數據包的源IP地址。

然而有時候為了實現自己的一些策略或者小技巧,并不希望系統為我如此自動地封裝源IP地址,比如顯而易見地是在使用OpenVPN的時候。

首先我們看下所謂的默認網關的本質意義是什么。默認網關其實是一個更加特殊的“下一跳”,它其實就是一個下一跳地址,這個地址的目的在于將數據包扔給下一跳(廢話),其實它只是一個輔助作用,真正起作用的是由它解析到的MAC地址,因為MAC地址才會真正封裝在以太幀當中,那個默認網關只是用來得到這個 MAC地址的,因此如果能靜態指定一個MAC地址,那么這個默認網關可以是任意的。于是就有了一個辦法:

1.為一條路由生成一個和欲選擇的源IP地址在同一個網段的假的默認網關,即假的下一跳;

2.為該假網關IP地址建立一條靜態的到真網關的MAC地址的arp映射;

如此一來,源IP地址的選擇過程將完全符合Windows的選擇邏輯,我們也就從內核外部繞開了它的限制,從而可以選擇任意的本地連接上配置的地址作為源IP地址。

為了將手工配置的過程實現成一個自動的過程,編程是必不可少的,然而我又不想去調用那復雜的API(為了實現一個很簡單的功能不得不做超級多的準備工作...),只能寄希望于腳本了,然而Windows命令行功能實在太弱,很為難。問同事,百度,google,一遍遍地嘗試,折騰了太久,終于寫出一個批處理腳本,發現Windows XP的腳本功能還是很強大的,更不必說Power Shell了。腳本如下(沒有echo off):

[plain]

set destination=%1

set mask=%2

set origw=%3

set source=%4

::獲取默認網關(可以自動發現默認網關,太花哨,不提倡)

:::GetGW

::set origw=

::for /f "delims=: tokens=2" %%i in ('"ipconfig | find /i "default gateway"| findstr [0-9]."') do set origw=%%i

::獲取默認網關的MAC地址

:GetMac

set mac=

for /f "skip=3 tokens=2" %%i in ('arp -a %origw%') do set mac=%%i

echo %mac%|findstr \-

::這里有個問題,實際上ping失敗(比如網關禁止ping)也無所謂,我們需要的只是它的MAC地址

::如果連MAC地址都不讓解析,那就別當默認網關了。因此正確的做法應該搞一個計數器,連續

::兩次獲取MAC失敗就算失敗。

if ERRORLEVEL 1 (

ping %origw% -n 1

if ERRORLEVEL 1 goto end

goto GetMac

)

set gw=

set i=

::生成假網關地址(很簡單的一個算法,欲使用的源IP地址減去1)

for /f "delims=. tokens=4" %%i in ('echo %source%') do set /a host=%%i-1

set i=

set j=

set k=

for /f "delims=. tokens=1,2,3" %%i in ('echo %source%') do set gw=%%i.%%j.%%k.%host%

::設置假網關的arp映射

arp -s %gw% %mac%

::添加路由

route add %destination% mask %mask% %gw%

:end

將上述腳本保存為"route2.bat"就可以直接用了。

其實,選擇和默認網關不屬于同一網段的IP作為源IP地址對于主機而言并非一個常規的做法,如果如此一來,在數據包返回的時候,當初選擇的源IP地址作為目標地址,本網段的默認網關在路由的時候會出現問題,除非它將下一跳指向該IP地址所在的主機的相同網段的地址,否則數據包可能會因為目標地址不可達而被丟棄。

另外,上述的腳本在靜態建立arp映射的時候有一個問題,那就是沒有和Windows的“死網關檢測”功能關聯,這樣就可以在網關失效后被Notofy了,或者說網關并沒有失效,只是換了臺機器,換了MAC,此時就需要更新那個MAC映射了。

博客地址:http://blog.csdn.net/dog250/article/details/10044433

責任編輯:張存 來源: 博客
相關推薦

2009-12-11 09:51:25

策略路由配置

2012-11-02 15:31:05

2013-05-14 11:29:05

H3C路由器源地址

2010-05-25 14:15:20

2021-11-23 10:58:08

IP源地址DDoS攻擊網絡攻擊

2011-09-05 18:27:46

Ubuntu

2010-12-12 00:01:00

Windows Pho

2009-12-11 10:03:30

策略路由配置

2011-04-01 16:28:59

策略路由

2009-12-11 13:31:25

CISCO路由交換機策略路由

2020-07-24 16:00:47

Vueswagger-ui前端

2009-12-28 16:55:36

Fedora 11

2009-12-17 10:44:36

思科路由器

2009-12-17 14:01:46

2010-02-07 14:31:43

LAN交換機

2025-04-18 10:32:10

ACL訪問控制列表網絡

2013-11-18 09:26:28

思科交換機ACL配置

2011-03-14 17:50:27

訪問控制列表

2009-12-08 11:09:00

路由器配置MAC地址

2009-12-04 11:01:54

路由器地址
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久网站 | 天天插天天射天天干 | www亚洲精品| 国产国产精品 | 日本中文字幕在线视频 | 久久久综合久久 | 中国美女一级黄色片 | 精品久久99 | 日韩视频免费在线 | 一区二区三区亚洲 | 91香蕉视频在线观看 | 国产视频精品免费 | 欧美片网站免费 | 一道本不卡视频 | 美国一级毛片a | 国产99精品| 国产精品69毛片高清亚洲 | 精品福利一区二区三区 | www.国产视频| 视频1区2区| 男人的天堂中文字幕 | 精品久久久久久亚洲精品 | 欧美一区在线视频 | 成人亚洲精品久久久久软件 | 日韩爱爱网站 | 国产精品免费一区二区三区 | 亚洲欧美一区二区三区视频 | 日韩在线国产 | 日韩一区二区三区在线 | 亚洲在线免费观看 | 欧美二区在线 | 国产精品国产成人国产三级 | 伊人久久免费 | 真人一级毛片 | 一级做a爰片性色毛片16美国 | 精品亚洲一区二区三区 | 国产aaaaav久久久一区二区 | 日韩欧美高清dvd碟片 | 国产乱码一二三区精品 | 99爱免费 | 国产精品一区一区三区 |