初心易得,始終難守
C'est la vie.© 2002 - 2026
  • 我是誰-Who Am I
  • 我在哪-Where Am I
  • 我是什麼-What Am I
  • 年鑑-YearBook
    • 二零零六年终总结
    • 一吻定情—二零零八年年终总结
    • 突如其来的明天—二零零九年年终总结
    • 人生大起大落得太快——二零一零年年终总结
    • 贰零①①年年终总结-女朋友已经成家了
    • 贰零壹贰年年终总结-奔波的肿瘤
    • 贰零壹叁年年终总结
    • 雪字怎么写-贰零壹肆年年终总结
    • 每个不曾表白的今天,都是对青春的亏欠-贰零壹伍年年终总结
    • 按部就班的IT 人生-貳零貳肆年年終總結
    • 真正的閱讀-貳零貳伍年年終總結
  • 連結
RSS
7 月 6 日, 2024 年

IPsec VPN between pfSense and AWS with BGP routing

Ken Tech 0 Comments

IPsec VPN這個話題很常見,但是也很不常見,常見是因為企業應用中必然有他的影子,不常見是因為他配置好之後就幾乎再也不會去動他。

使用static routing 方式配置pfSense 到AWS的IPsec VPN,網路上的blog和youtube 有很多很多很多。

但是,使用BGP routing的我沒看到,我也不會,因為我跟BGP沒有很熟,直到我昨天發現了有一個人使用Azure 配置IPsec VPN with BGP routing的示例,所以我就照著畫葫蘆,不錯,方案可行。

AWS 提供的IPsec VPN 默認就是使用BGP routing的方式,也就是說,網路上所有配置為static routing的blog和youtube,都是手動修改為static routing的,我的理解是,他們也不會。

BGP routing的好處在於,一個connection 上的兩條tunnel 可以HA方式同時運行,畢竟兩條tunnel後面就是兩台ec2 instance,偶爾壞個一次,也並非是很難見到的情形,而企業應用中,高可用在很多場景下都是必要的元素。

而在我之前的使用經驗中,使用static routing的方式,flapping的情形還是很多的。

環境描述:

雲端 10.2.0.0/16
地端 10.1.2.0/24

在AWS上創建IPsec VPN 只需要點幾下,首先在VPC中創建cgw,然後創建vgw,把vgw attach到VPC,

然後創建VPN connection,在該頁面選擇之前創建好的vgw和cgw,在routing options 請保留為默認的Dynamic,也就是BGP。

在VPN connection 創建完成後,會根據客人本地使用的防火牆型號提供一個詳細的配置說明文件,文件中包含了AWS側的public IP,phase1和phase2的協商加密方式,pre-share key,BGP配置信息等,對於pfSense 來說,需要選擇Generic。

和static routing方式配置不一樣的地方是,該配置說明文件中包含了BGP配置信息,其中有雲端的AS,地端的AS,以及私有互聯IP。

到這裡,AWS上的配置就已經完成了,是不是很簡單。

接下來進行pfSense的配置,首先從Package Manager 來安裝FRR。

FRR routing daemon for BGP, OSPF。

安裝完成後,啟用FRR。

創建Route Maps,為他起個名字,Action設置為permit。

進入BGP配置,啟用BGP Routing,並設置Local AS和Networks to Distribute,這裡我們要advertise的就是本地網路10.1.2.0/24,而Local AS 65000 來自於剛才從AWS下載的配置說明文件。

接下來再打開從AWS下載的配置說明文件,裡面除了Local AS,還有AWS側的Remote AS,以及neighbor address,那麼兩條tunnel,就會有兩個neighbor。

依次添加兩個neighbor:

將neighbor添加完成後,啊,VPN還沒創建呢。

在pfSense上創建VPN的方式就不多說了,phase1 和static routing 方式一模一樣,區別在於,phase2 mode 需要修改為VTI方式,並在Networks 中填入由AWS下載的配置說明文件中分配的雲端和地端私有IP地址。

當VPN創建完成,連結成功建立後,可以從Status中來查看BGP的狀態,也可以斷掉一條測試看看。

從AWS側,你將會看到提示,有1 BGP route up,也就是上面的10.1.2.0/24。

參考文件:https://www.linkedin.com/pulse/site-to-site-vpn-between-pfsense-azure-bgp-allow-dynamic-mario-brenes-ud10e/

7 月 5 日, 2024 年

Install pfSense on AWS

Ken Tech 0 Comments

眾所周知Netgate 在去年的時候取消了CE版本使用家庭版許可證升級到Plus 版本的選項。所有的CE版本選擇升級到Plus版本都會需要付出129美金的年費,但是對於已經升級為Plus版本的個體,Netgate官方含糊其辭,只是建議重灌為CE版本,對於是否會取消許可並沒有說得很清楚,取消免費升級的時候,網路上一陣哀號,也有人破口大罵。

當然,大量中國製造的廉價noname box 在美國傾銷並濫用家庭許可Plus 版本是原因之一,Netgate 自有設備銷售價格非常不合理也是原因之一。

根據多方不明確的信源,pfSensePlus的許可證是綁定在網卡的mac地址上,我簡單的測試了一下,激活過許可證的實體確實可以從安裝好的CE版在升級菜單中選擇升級到Plus版本而無需再次激活,通過已經激活的實體dd clone過去的Plus版鏡像在另外一個已經激活的實體上也可以正常啟動和升級,但問題是我沒有測試更換硬碟,不能明確硬碟的serial number是否會對許可證產生影響。

Netgate的早期設備使用的是PC Engines的APU,這是由台灣生產,瑞士賣家在全球銷售的一款熱門主機板,他使用了AMD的低功耗APU,和Intel的內置顯卡多合一是一個概念,當然主要是低功耗。

後來Netgate開始在台灣尋找其他的貼牌代工,也就是現在的產品線,不得不說,這家公司的設計師審美真的很差,做出來的產品外型,果粉不想買,Geek也沒有要想買。

今天要說的是如何在AWS上安裝pfSense,在AWS的Marketplace裡面有pfSensePlus版本,是需要付費的,一年799美金,還只是授權費用,沒算上instance和traffic fees。

我原本想要安裝CE版本上去,因為在2017年Netgate曾經有一篇Blog,說明從pfSense 2.4.1版本開始,Netgate發布的版本會支持AWS的ena network driver。

https://www.netgate.com/blog/aws-elastic-network-adapter-ena-now-supported

Amazon Drivers:https://github.com/amzn/amzn-drivers

但是,經過我的測試,他們已經悄悄的把這個driver拿掉並且用某種方式限制自行編譯的driver 從kldload加載,為什麼會這麼說呢?

因為每一個版本的pfSense 他們都使用了FreeBSD的current版本,目前CE2.7.2是FreeBSD 14.0-current,我使用從12.0-release,13.0-release,14.0-release,14.1-release,15.0-current 編譯出來的ena driver 都不能在CE2.7.2中正確加載,當然,也可能是因為必須要使用14.0-current,但是我找不到這個版本的source code。

在2017年的這篇Blog最後,有寫到

Complete instructions for enabling AWS ENA features are available in the Netgate AWS documentation.

但是,這篇Netgate AWS documentation 連結已經404 找不到了,我想,如果不是我的方法有問題,那就是這篇文件中有一些特別的設置。

https://docs.netgate.com/pfsense/en/latest/solutions/aws-vpn-appliance/enabling-elastic-network-adapter-ena.html

Netgate 這家公司小動作很多,當然我是希望他們能賺錢$$$,不然不知道又要搞出什麼花兒來,然而,他們在許可證這件事情上做的並不嚴謹。

我想他們是出於簡化安裝過程或是多年來客人要求可以直接安裝Plus版本的目的(在此之前你不能直接安裝Plus版本,只能先安裝CE版本後從CE版本註冊升級為Plus版本),推出了一個新的installer,這個installer iso是二合一,他的模式是啟用一個具備網路環境的txt interface,然後根據選擇從網路下載相應的CE版本或Plus版本來安裝,在安裝的時候就會連線Netgate 的server 進行驗證當前實體是否具備安裝Plus的許可。

如果你在一台沒有激活過許可的物理機上使用這個installer,那麼你將無法安裝Plus版本,但是,你可以在AWS上,直接安裝Plus版本。

這有兩種可能,

第一,這個installer把AWS的mac地址範圍加入了白名單,但我觀察AWS的mac地址並沒有明顯特徵(AWS的mac地址不能修改,這是我懷疑的原因之一,因為mac地址在很多軟體中都會被設置為許可證相關的元素)。

第二,這個installer把來自於AWS source ip的安裝請求加入了白名單。

安裝的必要條件:

第一,AWS VPC中至少有兩個subnet,一個public subnet,一個private subnet,在兩個subnet中創建兩個eni,public subnet那張eni需要分配public IP。

第二:去pfSense官方網站下載iso。

第三:錢。

安裝的步驟如下:

使用本地的虛擬化平台,esxi或者proxmox 啟動一台linux,啟動後,加載pfSense官方的install iso,再添加一塊8GB 硬碟。

然後從linux 中,將iso 直接 dd 到8GB硬碟上。

dd if=/dev/sr0 of=/dev/sdb bs=1M status=progress

接下來,將8GB硬碟導出為vmdk,將這個vmdk上傳到S3,使用AWS的vmimport,將這個vmdk導入為snapshot。

aws ec2 import-snapshot –disk-container file://containers.json

—containers.json—
{
“Description”: “pfSense-installer”,
“Format”: “VMDK”,
“UserBucket”: {
“S3Bucket”: “s3-bucket”,
“S3Key”: “pfSense-installer.vmdk”
}
}
—containers.json—

aws ec2 describe-import-snapshot-tasks –import-task-id import-snap-0000000000631379

這中間你可能首先需要創建vmimport的IAM role,然後需要為vmimport的role 添加各種policy ,跟著錯誤提示走就可以,當snapshot 導入完成後,從這個snapshot創建一個ami,使用這個ami,啟動一台有serial console 的instance,例如t3.small,此時只需要有root volume和public subnet的那張eni。

啟動後,為這個instance 再添加一塊8GB的硬碟,從serial console來進行安裝,需要注意的是,你必須在剛開始的高級選項中開啟pfSense的 serial,否則安裝完成後,他不會輸出到ec2的serial console,你將會變成無頭蒼蠅,同時,在選擇硬碟的時候,請選擇第二塊。

Netgate的官方文件說明AWS Marketplace中的pfSensePlus初始化,是需要在user-data中設置password,這讓我懷疑,官方版本的ami沒有開啟serial,使得他沒有輸出到ec2的serial console,才需要從user-data去設置password,當然,這也可能是一種簡化用戶動作的辦法。

整個安裝過程很簡單,這個installer 檢測到是AWS之後,他就會自行安裝Plus版本,甚至你需要手動更改,才能變更安裝CE版本,當然,CE版本安裝上去會因為缺少ena network driver 而無法使用。

在AWS上運行的第三方防火牆軟體,需要遵循三個基本的原則,

第一,具備public IP的WAN口eni在public subnet,而LAN口eni在private subnet。

第二,關閉eni 的source/destination check。

第三,WAN和LAN均開啟為DHCP獲取IP地址。

安裝完成後,首先從serial console進行WAN口初始化,此時,只設置WAN口,不要設置LAN口,同時重置管理密碼。

當WAN口設置完成,再從AWS webconsole為ec2添加位於private subnet的那張eni,

此時我們應該可以從public IP進行連結,使用上一步重置的管理密碼登入,首先進入NAT設置,修改Outbound NAT方式為manual Outbound NAT rule generation,然後,從Interface Assignments 添加LAN口interface並設置為dhcp獲取IP地址,LAN口interface 添加完成後,再進入Outbound NAT,為需要進行nat 轉換的地址範圍手動添加nat rule。

不可以使用自動喔,否則你會連不上去。

最後,為我們的private subnet添加一條默認路由,指向LAN口的那張eni。

這樣所有在private subnet 裡面的instances 都可以把pfSense 作為nat gateway 來上網了。

安裝完成的pfSensePlus在註冊頁面並不能顯示為已註冊版本,和有正常許可證的顯示不太一樣,但這並不影響他升級,升級到新版本完全沒有任何問題。

而在物理機上通過dd clone的pfSensePlus 版本安裝在未激活許可證的實體上,不但顯示為未註冊,而且是不能升級的。

所以,我相信Netgate對於運行在AWS上的pfSensePlus 升級應該是採用了針對AWS source IP的白名單。

這也許是Netgate 故意要讓CE版本無法運行在AWS上的原因,因為,如果許可證檢測方式簡化為針對AWS source IP的白名單,在AWS上成功安裝的CE版本將會可以直接升級到Plus版本,這可不妙。

參考文件:https://yhf8377.medium.com/replace-aws-nat-gateway-with-pfsense-vm-5454066585c2

6 月 22 日, 2024 年

迷惑的台北路牌拼音

Ken 隨筆

當我在台北捷運的指示牌上同時看到英語,威妥瑪拼音和漢語拼音的時候,我才真正意識到台北確實很藍,國民黨下一步是不是想要廢除正體字改成殘體?

我第一次看到漢語拼音是在西門町的路牌上,那是很早以前了,當時不以為意,覺得可能威妥瑪也是那麼拼。

台北市路牌改漢語拼音是馬英九當市長的時候改的,而中華民國的漢語拼音路牌方案是馬英九當總統的時候訂立的,馬英九為了統一真是殫精竭慮。

馬英九所謂國際化的理由只是一個藉口,在我看來要國際化應該全部改成英語,畢竟本土台灣人也不看下面那行字母,改成漢語拼音,馬英九就是赤裸裸的要追求和中國統一的國際化。

北京已經把Peking改成了Beijing,馬英九怎麼不把Taipei改成Taibei?

不就是想從沒人注意的地方先動手嗎,你改個Taibei試試看,看有沒有人罵你。

在我看來拼音遠遠不如注音設計優秀,只不過注音基於漢字的偏旁部首,對於洋人而言難度著實有一些,對於從小學習漢語拼音的人而言,也是有難度的。

上個月用力過猛,卷到了全站第一,發了3000塊台幣的代金券,似乎還好,學習到很多東西,也發現很多的東西都不會。

當我得知這個消息,第一時間浮現出來的念頭大概是下面這個意思。

最近台北總是下午下雨,所以只有很少的晚上出去騎車,即使已經是在這個城市的最中心,很多的道路都相當平靜,看起來並不像一個繁華的都市,當然,即使如此,也不能和花蓮和墾丁的那種寧靜相比。

6 月 4 日, 2024 年

聊齋

Ken 隨筆

多年前我在微博上發了一張坦克人的照片,然後就被封號了,那時候計算機算力還不太強,過了好久才被封,但是那個時候管理員還算有人性,封禁理由是:侮辱管理員。

我想要講的不是35年前,而是那張A4白紙,我不願意稱之為運動,因為我認為不足以稱之為一場運動。

很多人並不了解為什麼是白紙,當然這並不妨礙他們知道舉著白紙的意思是你們覺得我說了什麼那就是什麼。

紅場上發白紙是一個很典型的蘇聯笑話,那位第一個舉起白紙的大學女生不知道命運會如何,想來升學,考研,工作,必定會被處處刁難。

搬著腳踏車下樓,剛要準備出門,一陣雷雨劈裡啪啦的下來,出門前我仔細的看了一下天氣預報,Next-hour forecast是沒雨,12-hour forecast是有雨,一般正常人都應該認為Next-hour的更準確吧?難不成是我的誤解?

這個腳踏車還是要裝個腳架,不然出門確實是不太方便,原本以為胡亂丟一丟應該就可以,本來想著下午去車行裝一個的。

6 月 1 日, 2024 年

第三台腳踏車

Ken 隨筆 0 Comments

因為我買了一台Gogoro給Miley,所以她買了一輛腳踏車給我,不過,我的腳踏車比她的Gogoro更貴一些。

Birdy已經不是當年第一次見到的樣子了,雖然對於我來說Dahon似乎騎起來也沒有太大的差別。

找出以前的Garmin GPS支架,婷妹前夫買的Btwin count 4碼表,再去迪卡儂買了前後燈,安全帽,差不多可以完整上路。

我想劣幣逐良應該是這個世界運行的規律才對,Youtube上假裝在露營的無論哪國比基尼妹紙,都開始有了Made in China的裝備,就連日本人也不例外,就像我常說的,人類世界終將走向毀滅,人類之於地球,就是病毒之於人類一樣的存在。

不過我在想是不是中國的那些商家給了業配費用。

當然,也是有真的在露營的妹紙,不過他們都在賣自己品牌的裝備。

台灣的Garmin圖資很好尋覓,因為沒有中國國測局那幫低能兒開發的火星座標,OpenstreetMap的資源非常豐富,隨手可得,以至於根本沒有人要買Garmin台灣的地圖,除了那些使用手錶來導航的人,如果未來台灣警察單位增加測速科技執法,Garmin能拿到官方測速點數據的話,也許官方圖資還有那麼一點點價值。

今天的雨要下不下的,騎出門的時候還好,回來的時候雨就有一點點大,不過還好,上樓了才開始變得更大一些。

«‹ 11 12 13 14›»

過 客

  1. R2 on 卷進了美商5 月 15 日, 2024 年

    终于回来了,好。

  2. Ken on Mommy最後的樣子11 月 6 日, 2023 年

    也沒有很久吧,最近終於閒下來

  3. R2 on Mommy最後的樣子10 月 26 日, 2023 年

    好久不见

  4. Ken on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    哈哈哈,祝福你,好人一生平安

  5. liu on 天朝Loli控组曲(带歌词,修正版)10 月 12 日, 2023 年

    hello,我在找天朝lolicon组曲时发现了你的博客,感谢你十四年前做出的贡献,祝一切安好

January 2026
S M T W T F S
 123
45678910
11121314151617
18192021222324
25262728293031
« Dec    

Spam Blocked

102,164 spam blocked by Akismet

↑

© 初心易得,始終難守 2026
Powered by WordPress • Themify WordPress Themes