NicSetSettingμ μ¬μ©νμ¬ νλΈμ κ°μ νλ κ°μ NICμ MAC μ£Όμλ₯Ό μ€μ νμ΅λλ€. μ μ μλλ₯Ό μ¬μ© νμΌλ―λ‘ MAC μ£Όμλ NICκ° κ°μ ΈμμΌνλ IP μ£Όμλ₯Ό ν¨κ³Όμ μΌλ‘ κ²°μ ν©λλ€.
κ·Έλ¬λ MAC μ£Όμμ λ³κ²½μ Softether λ°μ΄ν°μ κΈ°λ‘λμ΄ μμ§λ§ VPN ν΄λΌμ΄μΈνΈ μ체λ₯Ό λ€μ μμν λκΉμ§ μ€μ OSμ λ°μλμ§ μμ΅λλ€. μ΄κ²μ μ²μ μ°λ½ ν λ λ΄ NICκ° μλͺ»λ IP μ£Όμλ‘ κ΅¬μ±λμμμ μλ―Έν©λλ€.
λλ λν μλνλ€ :
κ·Έλ¬λ vpnclient stop && vpnclient start
μλν©λλ€. λ κ°μ κ°λ³ ν΄λΌμ΄μΈνΈλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
λ λ€ λμΌν λμμ λνλ λλ€. λ²κ·Έμ λκΉ, κΈ°λ₯μ λκΉ?
μ΄ λ¬Έμ κ° κ³μ λ°μνλμ§ νμΈν΄ μ£Όμκ² μ΅λκΉ?
@ moatazelmasry2 μλ΅μ΄ λλ €μ μ£μ‘ν©λλ€. λͺ λ¬ λμ Softetherλ₯Ό μ¬μ©νμ§ μμμ΅λλ€.
μ€λ μ λ μ΄κ²μ 보μμ΅λλ€.
κ·Έλμμ΄ λ¬Έμ λ μ¬μ ν μ΄μμλ κ² κ°μ΅λλ€. μλ² λ° ν΄λΌμ΄μΈνΈ λ²μ μ λ€μκ³Ό κ°μ΅λλ€.
@ moatazelmasry2 μ λ μ€μ λ‘ C ++ μ¬λμ μλμ§λ§ μ¬κΈ°μ μ½λ λ΄λΆ λλ μ£Όλ³μ λ¬Έμ κ°μλ κ² κ°μ΅λλ€.
r
μ΄ κ²½μ° r = Search(c->UnixVLanList, &t);
μ κ²°κ³Όμ
λλ€. κ·Έ ν CiSaveConfigurationFile
λ° CiNotify
λ° CiSendGlobalPulse
λν νΈμΆμ΄ μμ΅λλ€.μ΄ μ€ μ΄λ κ²λ OS μμ€μμ λ§μ μμ
μ μννμ§ μλ κ² κ°μ΅λλ€. κ·Έλ λ€λ©΄ λ΄λΆ λͺ©λ‘μ MACμ μ€μ νκ³ κ΅¬μ±μ μ μ₯ ν λ€μ μ€μ λ‘ κ°μ μ΄λν° μ
λ°μ΄νΈλ₯Ό μλνμ§ μμ μλ μμ΅λλ€.
λ¬Όλ‘ ν΄λΌμ΄μΈνΈκ° λ€μ μμλλ©΄ ꡬμ±μμ μ°Ύμ λ΄μ©μΌλ‘ μ΄λν°λ₯Ό μ¬λ°λ₯΄κ² μ΄κΈ°νν©λλ€.
κ°μ NICμ λν TAP μ₯μΉμ μ΄κΈ°νλ₯Ό μμΈν μ΄ν΄λ³΄λ©΄ initμμ MAC μ£Όμλ₯Ό μ€μ νλ κ²μ²λΌ 보μ΄λ λ€μ μ€μ΄ μμ΅λλ€.
μ΄κ²μ UnixCreateTapDeviceEx
λΌλ ν¨μμ μμ΅λλ€. κ·Έλμ μ°λ¦¬μκ² νμν κ²μ UnixModifyTapDevice
νΈμΆμΈλ°, μ€μ λ‘λ μ MACμμ ioctl
λ₯Ό νΈμΆν©λλ€. μ΄κ²μ΄ μ΄λ―Έ μ‘΄μ¬νμ§ μλλ€λ μ μ κ°μν λ μλ§λ μ’μ μ΄μ κ°μμ κ²μ
λλ€!
μμ§ ν μ€νΈνμ§ μμμ§λ§ μ΄κ²μ λ§€μ° μ’μ λΆμμ²λΌ 보μ λλ€. νλ μΌ!!!. μ΄μ μ°λ¦¬λ κ·Έκ²μ ꡬνν λκ΅°κ°κ° νμν©λλ€ :)
κ°μ₯ μ μ©ν λκΈ
@ moatazelmasry2 μ λ μ€μ λ‘ C ++ μ¬λμ μλμ§λ§ μ¬κΈ°μ μ½λ λ΄λΆ λλ μ£Όλ³μ λ¬Έμ κ°μλ κ² κ°μ΅λλ€.
https://github.com/SoftEtherVPN/SoftEtherVPN/blob/bed99f9a56e29a0fcd7a9e3d02f84f9d8621eb3d/src/Cedar/Client.c#L8104
r
μ΄ κ²½μ°r = Search(c->UnixVLanList, &t);
μ κ²°κ³Όμ λλ€. κ·Έ νCiSaveConfigurationFile
λ°CiNotify
λ°CiSendGlobalPulse
λν νΈμΆμ΄ μμ΅λλ€.μ΄ μ€ μ΄λ κ²λ OS μμ€μμ λ§μ μμ μ μννμ§ μλ κ² κ°μ΅λλ€. κ·Έλ λ€λ©΄ λ΄λΆ λͺ©λ‘μ MACμ μ€μ νκ³ κ΅¬μ±μ μ μ₯ ν λ€μ μ€μ λ‘ κ°μ μ΄λν° μ λ°μ΄νΈλ₯Ό μλνμ§ μμ μλ μμ΅λλ€.λ¬Όλ‘ ν΄λΌμ΄μΈνΈκ° λ€μ μμλλ©΄ ꡬμ±μμ μ°Ύμ λ΄μ©μΌλ‘ μ΄λν°λ₯Ό μ¬λ°λ₯΄κ² μ΄κΈ°νν©λλ€.
κ°μ NICμ λν TAP μ₯μΉμ μ΄κΈ°νλ₯Ό μμΈν μ΄ν΄λ³΄λ©΄ initμμ MAC μ£Όμλ₯Ό μ€μ νλ κ²μ²λΌ 보μ΄λ λ€μ μ€μ΄ μμ΅λλ€.
https://github.com/SoftEtherVPN/SoftEtherVPN/blob/d7d0e6d36fe1d73eca6205d9b2144ded67f52b13/src/Cedar/VLanUnix.c#L527
μ΄κ²μ
UnixCreateTapDeviceEx
λΌλ ν¨μμ μμ΅λλ€. κ·Έλμ μ°λ¦¬μκ² νμν κ²μUnixModifyTapDevice
νΈμΆμΈλ°, μ€μ λ‘λ μ MACμμioctl
λ₯Ό νΈμΆν©λλ€. μ΄κ²μ΄ μ΄λ―Έ μ‘΄μ¬νμ§ μλλ€λ μ μ κ°μν λ μλ§λ μ’μ μ΄μ κ°μμ κ²μ λλ€!