星期三, 12月 25, 2024

[CCNA] Vlan Routing - SubInterface

延續該筆記 - [CCNA] switch 上設定 trunk,在 Router 上設定 SubInterface,讓不同 Vlan 之間可以互通,網路拓樸圖說明如下
  • 上方為 Vlan2 (192.168.20.0)、下方為 Vlan3 (192.168.30.0)
  • Router0 負責 Vlan Routing
  • Switch0、Switch1、Rounter0 彼此之間使用 Trunk 連接
Switch0 g0/1 Port 設定 Trunk 

語法如下,要注意執行 show interface trunk 語法時,router0 g0/1 Port 要先 ON 起來,線路是通的狀態下,才會顯示出 g0/1 trunk 資訊

Router 上設定 SubInterface

步驟為
  • 建立 SubInterface
  • 指定 Vlan (dot1Q 即為 802.1Q)
  • 設定 SubInterface ip
最後要把終端設備 PC 和 Laptop gateway,指定到對應的 SubInterface 去
觀察封包內的 vlan tag

從 PC0 ping Laptop0,使用 Simulation 模式在 Router0 上觀察封包
  • 在 Inbound 上可以看見 TCI vlan 2
  • Outbound TCI valn 3 


實際測試

星期三, 12月 18, 2024

[EF] ExecuteSqlCommand 呼叫 Store Procedure - Output 參數

下列筆記
都是把 Store Procedure 匯進 Entity 內去使用,該筆記紀錄直接使用 ExecuteSqlCommand 呼叫 Store Procedure 並透過 output 回傳資料

TSQL - Store Procedure

在 AdventureWorks 上建立 SP 來存取 Person.Person Table 並回傳指定資料的全名 (LastName + FirstName)
use AdventureWorks2022
go 

CREATE OR ALTER PROCEDURE uspEF_ExecuteSqlCommand_Output
(
	@BusinessEntityID int ,
	@FullName varchar(100) OUTPUT
)
AS
	BEGIN
		SELECT 
			@FullName = TRIM(LastName) + '-' + TRIM(FirstName)
		FROM Person.Person
		WHERE BusinessEntityID = @BusinessEntityID
	END

C# EF edmx 呼叫 SP
namespace EFSPOutput_ExecuteSqlCommand
{
    internal class Program
    {
        static void Main(string[] args)
        {
            AdventureWorks2022Entities dbContext = new AdventureWorks2022Entities();

            string TSQL = @"EXEC uspEF_ExecuteSqlCommand_Output @BusinessEntityID , @FullName OUTPUT";

            List<SqlParameter> parameters = new List<SqlParameter>();
            parameters.Add(new SqlParameter("@BusinessEntityID", SqlDbType.Int) { Value = 1 });

            var outputPara = new SqlParameter("@FullName", SqlDbType.VarChar, 100)
            {
                Direction = ParameterDirection.Output
            };
            parameters.Add(outputPara);

            dbContext.Database.ExecuteSqlCommand(TSQL, parameters.ToArray());

            Console.WriteLine(outputPara.Value.ToString());
        }
    }
}

星期一, 12月 09, 2024

[CCNA] switch 上設定 trunk

trunk 用途在於讓不同 switch 上的 vlan 可以互通,下圖為練習拓樸圖
終端設備為 PC 歸屬在 vlan2 內、終端設備為 Laptop 歸屬在 vlan3 內,並在 switch 上設定 trunk,讓兩台 switch 上的 vlan 彼此可以互通,主要分為三個設定步驟
  • 在 switch 上設定為 trunk
  • 在 switch 上設定 vlan 並把 port 劃進歸屬的 vlan 內
  • 在終端設備上使用 ping 來確認網路設定是否正確
下述筆記內容只記錄在 switch0 上設定截圖,switch1 也必須有相同設定

trunk

在兩台 switch 上的 fa0/1 設定 trunk
vlan

新增 vlan 2、vlan 3 並命名為 lab2、lab3
把 PC (fa0/10) 歸屬在 vlan2、Laptop (fa0/11) 歸屬在 vlan3 內
ping

確認 trunk 和 vlan 設定值
跨 switch 的同一個 vlan 彼此可以 ping 通

IDE 操作
CLI 相關語法整理
-- 把介面轉成 trunk
switchport mode trunk

-- 顯示目前設定為 trunk 的介面
show interface trunk

星期日, 12月 01, 2024

[CCNA] switch 上設定 vlan

在 switch 上設定 vlan 並記錄相關語法,下圖為簡易網路拓樸圖


CLI 語法

show vlan brief 確認 switch 上 port 所屬 vlan,vlan1 為預設值

新增 vlan 2 和 vlan 3 並更名為 lab2 和 lab3

把 switch 上的 
  • fa0/1、fa0/2 設定為 vlan2:對單一 Port 進行設定
  • fa0/3、fa0/4 設定為 vlan3:對多個 Port 進行設定

再次使用 show vlan brief 確認 vlan 設定

測試 vlan 設定
  • 從 PC0 上 ping 同為 vlan2 的 PC1 (192.169.10.2):O
  • 從 PC0 上 ping 在 vlan3 的 laptop1 (192.168.10.4):X

CLI 相關語法整理
-- 顯示 switch 上的 vlan 設定
show vlan brief

-- 新增 vlan
vlan vlan數字

-- 刪除 vlan
no vlan vlan數字

-- vlan 更名
name vlan名稱

-- 指定多個 Port
interface range PortRange (EX:fa0/3 - fa0/4)

-- 指定 Port 所屬 vlan
switchport 存取模式 (access/trunk) vlan vlan數字

IDE 操作